Source: https://manu-tests-all-orgs.docs-staging.pageloop.ai/product/assets-objects/custom-objects/patterns/contracts

# Contract Management

Contracts are one of the most common things organizations track in spreadsheets long after they should have moved on. They have their own lifecycle, they involve multiple parties, they expire, they renew, and multiple people need visibility into them — none of which a spreadsheet handles well once you have more than a few dozen.

A Contract object type in Atomicwork gives you structured, searchable records linked to the real people and vendors in your system, with automation to handle the parts that shouldn't require human memory.

---

## The Data Model

Contracts in production use two linked object types:

- **Vendor** — the external company you have a contract with. Has its own name and internal manager.
- **Contract** — the agreement itself. References its owner (an internal employee) and its vendor (the Vendor record).

This is a real example: the Contract type has three fields in production — `Name` (short text), `Owner` (relationship to person), and `Vendor` (relationship to the Vendor object type). Every contract record shows its vendor and owner pulled from live records.

You'll build on top of this base to add the operational fields your team needs.

---

## Setting Up the Vendor Object Type

If you don't have a Vendor type yet, start here.

Go to **Settings → Custom Objects → New Object Type**.

- **Name**: Vendor (plural: Vendors)
- **Display ID prefix**: `VEN`
- **Scope**: Global

### Suggested fields

| Field           | Type                   | Notes                                                  |
| --------------- | ---------------------- | ------------------------------------------------------ |
| Vendor Name     | Short text             | Required — primary identifier                          |
| Manager         | Relationship to person | Internal owner of the vendor relationship              |
| Category        | Dropdown               | e.g. Software, Hardware, Consulting, Legal, Facilities |
| Status          | Dropdown               | Active, Under Review, Suspended, Offboarded            |
| Website         | URL                    |                                                        |
| Primary Contact | Short text             | Name of the vendor's main contact                      |
| Contact Email   | Email                  |                                                        |
| Notes           | Long text              | Relationship history, caveats                          |

---

## Setting Up the Contract Object Type

Go to **Settings → Custom Objects → New Object Type**.

- **Name**: Contract (plural: Contracts)
- **Display ID prefix**: `CON`
- **Scope**: Global

### Suggested fields

Organize into two sections: **Contract Details** and **Parties**.

**Contract Details section**

| Field                | Type       | Notes                                                             |
| -------------------- | ---------- | ----------------------------------------------------------------- |
| Contract Name        | Short text | Required — e.g. "Okta Enterprise License 2026"                    |
| Contract Type        | Dropdown   | SaaS, Hardware Lease, Consulting, Maintenance, NDA, MSA           |
| Status               | Dropdown   | Draft, Active, Under Review, Renewal Pending, Expired, Terminated |
| Contract Value       | Decimal    | Annual or total value                                             |
| Start Date           | Date       |                                                                   |
| End Date             | Date       | Expiry or renewal date                                            |
| Auto-Renewal         | Checkbox   | Whether this contract renews automatically                        |
| Notice Period (days) | Number     | Days required to cancel before renewal                            |
| Document Link        | URL        | Link to the signed contract in your document system               |

**Parties section**

| Field  | Type                   | Notes                                                      |
| ------ | ---------------------- | ---------------------------------------------------------- |
| Owner  | Relationship to person | Required — internal employee responsible for this contract |
| Vendor | Relationship to Vendor | Required — links to the Vendor record                      |

The Vendor field is a **custom-to-custom relationship** — it points to a record in your Vendor object type, not just a text string. When you open a contract, you see the vendor's name, status, and manager pulled live from the Vendor record. When a vendor changes its contact or status, every contract referencing it reflects that automatically.

---

## Creating Records

Publish both object types, then start creating records.

Create vendors first — you'll need them to link from contracts. Go to **Directory → Vendors → New Vendor**, fill in the details, and save.

Then create contracts from **Directory → Contracts → New Contract**. The Owner field searches your employee directory. The Vendor field searches your Vendor records. Both are live lookups — no typing raw names that go stale.

---

## Views That Actually Get Used

**All Contracts** — unfiltered table view. Sortable by End Date, Contract Value, or Status. Your procurement team's default view.

**Expiring This Quarter** — filter: `End Date is within 90 days` AND `Status is Active`. Pin this for the team leads who own renewals.

**My Contracts** — filter: `Owner is current user`. Each person sees their own contracts without having to scan the full list.

**By Vendor** — group by `Vendor`. See all contracts with a given vendor in one place. Useful during vendor reviews and offboarding.

**High Value Active** — filter: `Status is Active` AND `Contract Value is greater than [your threshold]`. Keeps the contracts that matter most visible.

---

## Automations

**Renewal alert** — trigger: `End Date is 30 days from today` AND `Status is Active`. Action: notify `Owner` — "Contract \[Contract Name] expires in 30 days. Review and initiate renewal."

**Auto-renewal cancellation window** — trigger: `End Date is [Notice Period] days from today` AND `Auto-Renewal is checked`. Action: notify `Owner` — "Your contract with \[Vendor] auto-renews in \[Notice Period] days. Cancel by \[deadline] to opt out."

**Status change notification** — trigger: `Status changes to Renewal Pending`. Action: notify `Owner` and send a service request to procurement to kick off the renewal workflow.

**Expired contract cleanup** — trigger: scheduled, run monthly. Condition: `Status is Active` AND `End Date is in the past`. Action: update `Status` to `Expired`. Keeps your active list clean without requiring anyone to manually audit it.

To build these: open the Contract object type → **Automations** → **New automation**.

---

## Asking Atom About Contracts

Once your contract records are populated, Atom can answer questions about them if the Custom Objects MCP tool is configured for your workspace. Your team can ask things like:

- "Which contracts are expiring this quarter?"
- "Who owns the Okta contract?"
- "Show me all active contracts with Acme Corp"
- "What vendors do we have in the Consulting category?"

The answers come from live record data, not from someone maintaining a summary document.
