One covered-scope line of a service/maintenance agreement: the catalog Item covered or supplied, quantity and pricing (unit price, cost price, discount), the count of customer assets covered, contracted hours, and the preventive-maintenance visit cadence. Multi-year agreements are split into one line per contract year (YearNumber against ContractYears). Billing and delivery can be redirected per line via Bill To Account and Ship To Account, which may differ from the owning Account. It is the parent of PMTask (the individual scheduled maintenance visits). Important: in first-party metadata ContractLine has no foreign key to the Contract header — its only relations are to Account, Item and PMTask — so an agent cannot join Contract to ContractLine without tenant customization.
Fields
| Field | Label | Type | Required | What it does |
AccountId | Account | Lookup → Account | | The customer Account this line serves. This is the line's anchor relationship: ContractLine has no foreign key to the Contract header in first-party metadata. |
Assetcount | Asset count | Number | | Number of customer assets covered by this line. A stored count, not a rollup — no first-party code recomputes it from asset records. |
BilledAmount | Billed Amount | Decimal | | Amount billed against this line so far. A stored value maintained by entry or import — no first-party handler recalculates it from invoices. |
BillingTreatment | BillingTreatment | PickList | | Classification of how the line is billed. Picklist-typed but with no first-party values seeded — the vocabulary is tenant-defined. |
BillToAccountId | Bill To Account | Lookup → Account | | Account invoiced for this line when billing is redirected; it may differ from the line's owning Account. |
ContractHours | Contract Hours | Number | | |
ContractYears | Contract Years | Number | | Total duration of the parent agreement in years; used together with YearNumber when a multi-year agreement is split into one line per year. |
CostPrice | Cost Price | Decimal | | |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
Discount | Discount | Percent | | |
Id | Id | Guid | Yes | |
Ispartssupply | Is parts supply | Boolean | | Flags a parts-supply line as opposed to a service/maintenance line. Defaults to false; no first-party server logic branches on it. |
Isunderwarranty | Is under warranty | Boolean | | Flags that the equipment covered by this line is still under warranty. Defaults to false and is informational in first-party code — no billing logic branches on it. |
ItemId | Item | Lookup → Item | | Lookup to the catalog Item (service or part) that this line covers or supplies. |
Lineitemdescription | Line item description | Text | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
Quantity | Quantity | Number | | |
RecordTypeId | Record Type | Guid, hidden | | |
Remarks | Remarks | Text | | |
Series | Series | Text | | |
ShipToAccountId | Ship To Account | Lookup → Account | | Account receiving the delivery or service for this line when it differs from the owning Account. |
SubscriptionKey | Subscription Key | Guid, hidden | Yes | |
UnitPrice | Unit Price | Decimal | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Vendorname | Vendor name | Text | | Vendor name captured as free text — not a lookup to Account or any supplier entity. |
VisitFrequency | Visit Frequency | PickList | | How often preventive-maintenance visits are due under this line. Picklist-typed with no first-party values seeded, and informational only: no first-party scheduler creates PMTask rows from it. |
YearNumber | Year Number | Number | | Which contract year this line covers when a multi-year agreement is split into per-year lines; read alongside ContractYears. |
Actions
| Action | Label | Type | What it does |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
delete | delete | Delete | Delete |
New | New | NewInline | New |
- Item — looks up via
ItemId - Account — looks up via
ShipToAccountId - Account — looks up via
AccountId - Account — looks up via
BillToAccountId - PMTask — referenced by via
ContractLineId