Contract Management
Track contracts linked to vendors and owners, with status, value, expiry, and automated renewal 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 | ||
| 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.
