A service/maintenance agreement header for a customer Account, optionally tied to a single Asset. It carries the commercial frame: the coverage window (ContractStartDate/ContractEndDate), the term length in months, the signature block (company and customer signed dates, signatory title, the signing Contact) and a Draft, Pending Approval, Verified, Active status flow. Line-level scope, pricing and visit cadence live on ContractLine — but note that in first-party metadata ContractLine has no foreign key back to Contract, so the two cannot be joined out of the box. Also note this is the Contract Management app's agreement record only: service documents (ServiceOrder, Invoice, Quote, Claim) never reference it — they link to ItemServiceContract or AssetServiceContract instead, so use those entities when tracing a service document's contract coverage.
Fields
| Field | Label | Type | Required | What it does |
AccountId | Account | Lookup → Account | | |
ActivatedDate | Activated Date | Date | | Date the agreement was activated (moved to the Active status), as distinct from ContractStartDate, which is the contractual start of coverage. |
AssetId | Asset | Lookup → Asset | | Optional lookup tying the agreement header to a single covered Asset. Multi-asset coverage is expressed at line level (ContractLine's asset count) and per visit (PMTask.AssetId) instead. |
BillingAddress | Billing Address | Text | | |
CompanySignedDate | Company Signed Date | DateAndTime | | |
ContactId | Contact | Lookup → Contact | | Lookup to Contact. Note a naming mismatch: the domain model's only Contact reference on Contract is CustomerSignedById (the customer-side signatory), and the seeded Contract-to-Contact relation binds to that column — so treat this lookup as the customer signatory, pairing with CustomerSignedDate and CustomerSignedTitle. |
ContractEndDate | Contract End Date | Date | | |
ContractName | Contract Name | Text | | Business title of the agreement, held separately from the platform-level record Name field. |
ContractNumber | Contract Number | Number | | Numeric identifier of the agreement, stored as an integer and held separately from both the record Name and the ContractName title. |
ContractStartDate | Contract Start Date | Date | | |
ContractTerms | Contract Terms (Months) | Number | | Committed contract term length in whole months, stored as a number. It complements ContractStartDate/ContractEndDate rather than being derived from them — no first-party code computes or reconciles it against the dates. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
CustomerSignedDate | Customer Signed Date | Date | | |
CustomerSignedTitle | Customer Signed Title | Text | | |
Description | Description | Text | | |
Id | Id | Guid | Yes | |
LOB | LOB | PickList | | Line of business the contract belongs to. Picklist with a single seeded value (Automobile); the working vocabulary is tenant-defined. Values: Automobile. |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
OwnerExpiration | Owner Expiration | PickList | | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
RecordTypeId | Record Type | Guid, hidden | | |
ShippingAddress | Shipping Address | Text | | |
SpecialTerms | Special Terms | Text | | |
Status | Status | PickList | | Lifecycle stage of the agreement. Seeded picklist values: Draft (the default), Pending Approval, Verified, Active. No terminal state (expired/cancelled) is seeded; tenants add their own. Values: Draft, Pending Approval, Verified, Active. |
SubscriptionKey | Subscription Key | Guid, hidden | Yes | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Edit | Edit | Edit | Edit |
New | New | New | New |
NewCreate | New Create | UIAction | New |
- Contact — looks up via
CustomerSignedById - Asset — looks up via
AssetId - Account — looks up via
AccountId