Transaction line-level system fields
Reference for the system-provided fields at the transaction line level in ServiceNow CPQ ServiceNow Quote Experience, including variable names, descriptions, who can modify each field, and default values.
Field naming conventions
ServiceNow Quote Experience uses a consistent prefix convention for line-level field variable names.
- System-generated line-level fields use the prefix
txn.line.followed by the field name — for example,txn.line.id. - Custom line-level fields created by administrators use the prefix
txn.line.custom.followed by the field name — for example,txn.line.custom.agreementDiscount.
For header-level field naming conventions, see Transaction-level system fields.
Modifiable by
- System
- The field value is set only by the application. Users cannot edit system-modifiable fields, and administrators cannot set them using determination rules.
- User
- Any user with the appropriate permissions can update the field value. Determination rule actions can also modify user-modifiable fields.
Line identity and audit fields
| Variable name | Description | Default value |
|---|---|---|
txn.line.id |
UUID of the transaction line. Must be unique across sectors and regions for one tenant; may not be unique across tenants. | Auto-generated by the system. Modifiable by: System |
txn.line.parent.id |
ID of the parent line. Used to establish parent-child relationships between lines in the quote lines grid. | Empty. The user passes this value. Modifiable by: System |
txn.line.created |
Timestamp when the transaction line was added. | Auto-generated by the system. Modifiable by: System |
txn.line.createdBy |
Name of the user who added the transaction line. | Auto-generated by the system. Modifiable by: System |
txn.line.modified |
Timestamp when the transaction line was last modified. | Auto-generated by the system. Modifiable by: System |
txn.line.modifiedBy |
Name of the user who last modified the transaction line. | Auto-generated by the system. Modifiable by: System |
txn.line.isNew |
Indicates whether a line is new (true) or existing (false). The value is true only during the event that creates the line. |
Empty. Generated when the line is added. Modifiable by: System |
Product fields
Product fields are populated automatically when a product is added to the quote. Fields marked with a refresh note are also updated when the Refresh Product Data stage setting is enabled.
| Variable name | Description | Default value |
|---|---|---|
txn.line.isProduct |
Boolean indicating whether the product to be added is available in the catalog. | false Modifiable by: System |
txn.line.product.id |
Product ID of the product added to the line. Refreshed if Refresh Product Data is enabled. | Auto-generated by the system. Modifiable by: System |
txn.line.product.name |
Name of the product added to the line. Refreshed if Refresh Product Data is enabled. | Auto-generated by the system. Modifiable by: System |
txn.line.product.externalId |
External ID of the product, as defined in ServiceNow CPQ Admin utilities. Refreshed if Refresh Product Data is enabled. | Auto-generated by the system. Modifiable by: System |
txn.line.product.partnerId |
Partner ID of the product, as defined in ServiceNow CPQ Admin utilities. Refreshed if Refresh Product Data is enabled. | Auto-generated by the system. Modifiable by: System |
txn.line.product.productCode |
Product code of the product, as defined in ServiceNow CPQ Admin utilities. Refreshed if Refresh Product Data is enabled. | Auto-generated by the system. Modifiable by: System |
txn.line.product.description |
Description of the product added to the line. Refreshed if Refresh Product Data is enabled. | Auto-generated by the system. Modifiable by: System |
Line behavior fields
| Variable name | Description | Default value |
|---|---|---|
txn.line.isVisible |
Controls whether the line appears in the quote lines grid. Set to false to hide a line from the user without deleting it. |
true Modifiable by: System |
txn.line.isReorderable |
Indicates whether the line can be reordered within the quote lines grid. | true Modifiable by: System |
txn.line.selected |
Used in rule conditions to perform actions on selected lines. Set to true when a line-level event runs on the line. Reset to false after all event actions
complete. |
false Modifiable by: System |
Configuration fields
Configuration fields are populated when a configurable product is added to the quote. Fields in the txn.line.configuration.item.* group relate to items in the bill of materials (BOM). These fields are empty
if the line has no configuration.
| Variable name | Description | Default value |
|---|---|---|
txn.line.isConfigured |
Boolean indicating whether the line is a configured product or the top-level line of a parent-child configuration. Set to true automatically when a configuration is added. |
false Modifiable by: System |
txn.line.configuration.id |
UUID of the configuration. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.solutionId |
UUID of the solution the configuration belongs to. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.status |
Configuration validation status. Supports the Validate configured items event setting. | Empty. Generated when lines are added. Modifiable by: System |
txn.line.configuration.validatedAt |
Date of the last configuration validation. Supports the Validate configured items event setting. | Empty. Generated when lines are added. Modifiable by: System |
txn.line.configuration.item.id |
Configuration item ID in the BOM once a configuration is added. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.price |
Price of a BOM item once a configuration is added. | 0. Does not exist if there is no configuration. Modifiable by: System |
txn.line.configuration.item.quantity |
Quantity of a BOM item once a configuration is added. | 0. Does not exist if there is no configuration. Modifiable by: System |
txn.line.configuration.item.type |
Type of a BOM item once a configuration is added. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.notes |
Notes for a BOM item once a configuration is added. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.description |
Description of the BOM item as defined when the configuration item was created. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.parentProduct
|
Configuration item ID of the parent product for a BOM item in a parent-child configuration. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.uom |
Unit of measure for the BOM item, as defined when the item was created. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.bomType |
BOM type of the configuration item, as defined when the item was created. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.extPrice |
Extended price of the BOM item, as defined in the extPrice column of the configuration item. |
0. Does not exist if there is no configuration. Modifiable by: System |
txn.line.configuration.item.orderNumber
|
Order number of the BOM item when it was added. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.rollUpPrice
|
Rollup price of the BOM item, as defined in the rollupPrice column when the item was created. |
0. Does not exist if there is no configuration. Modifiable by: System |
txn.line.configuration.item.uniqueIdentifier
|
Unique identifier for a BOM item, used to match configuration items on reconfiguration. Cannot be changed after creation. | Empty if no configuration. Modifiable by: System |
txn.line.configuration.item.key |
Fallback key used to match BOM items on reconfiguration when the unique identifier cannot be used. | Empty. Generated when lines are added. Modifiable by: System |
Fields installed with the quoting experience
The following fields are installed when the ServiceNow CPQ quoting experience is enabled and are available to all tenants.
| Variable name | Description | Default value |
|---|---|---|
txn.line.account |
Account associated with the line. Set from the transaction header. | Empty. Set from header. Modifiable by: System |
txn.line.contact |
Contact name associated with the line. | Empty. Modifiable by: System |
txn.line.displayNumber |
User-facing display number of the line. | Empty. Modifiable by: System |
txn.line.sysId |
ServiceNow system ID of the line. | Empty. Modifiable by: System |
txn.line.parentBomLineId |
ID of the line's parent BOM line. | Empty. Modifiable by: System |
txn.line.product.uom |
Product unit of measurement of the line. | Empty. Modifiable by: System |
txn.line.product.model |
Product model associated with the line. | Empty. Modifiable by: System |
txn.line.product.specification |
Product specification associated with the line. | Empty. Modifiable by: System |
txn.line.product.characteristics |
Product characteristics of the line. | Empty. Modifiable by: System |
txn.line.serviceLocation |
Service location associated with the line. | Empty. Modifiable by: System |
txn.line.startDate |
Start date of the line. | Empty. Modifiable by: System |
txn.line.endDate |
End date of the line. | Empty. Modifiable by: System |
txn.line.term |
Difference in months between the start date and end date for the recurring product on this line. Calculated automatically from the contract start date and contract end date. | Empty. Modifiable by: System |
txn.line.lineType |
Describes the change being made to the transaction line. Values: New, Renew, Upsell, Amend, Cancel, No Change. | Empty. Modifiable by: System |
txn.line.lineAction |
Indicates the action applied to the sold product. Values: Add, Change, Disconnect, No Change. | Empty. Modifiable by: System |
txn.line.isAutoGeneratedForRenewal |
Indicates whether this line was automatically generated from a renewal workflow. | Empty. Modifiable by: System |
txn.line.isAutoRenewContract |
Indicates whether the contract line is eligible for automatic renewal based on its expiration end date. | Empty. Modifiable by: System |
txn.line.source.entitlement |
References the entitlement from which this line was renewed. | Empty. Modifiable by: System |
txn.line.source.soldProduct |
Reference to the underlying sold product record from which this line was created. | Empty. Modifiable by: System |
txn.line.source.splitFromSoldProduct |
When a line is split due to an amendment, this field contains a reference to the underlying sold product record from the original line. Used for delta pricing calculations. | Empty. Modifiable by: System |
txn.line.source.contract |
References the existing contract from which this line was derived. | Empty. Modifiable by: System |
txn.line.source.contract.line |
Reference to the contract line from which this line was renewed. | Empty. Modifiable by: System |
txn.line.source.line |
Reference to the parent line item when a line was split due to an amendment. Used in the pricing payload as split_from. |
Empty. Modifiable by: System |
txn.line.source.rootLine |
Reference to the root (original) line in a split or amendment chain. | Empty. Modifiable by: System |
Pricing fields
The following fields are installed when the Pricing tenant setting is enabled.
| Variable name | Description | Default value |
|---|---|---|
txn.line.pricebook |
Reference to the price list from which this line's list price is read. | Empty. Modifiable by: System |
txn.line.pricing.extendedPrice |
Extended Price. Calculated as Unit Net Price × Quantity. | Empty. Modifiable by: System |
txn.line.pricing.cost |
One-Time Cost. Cost for a product that is not recurring. | Empty. Modifiable by: System |
txn.line.pricing.unitCost |
Unit Cost. List cost as read from the cost book. | 0 Modifiable by: System |
txn.line.pricing.margin.amount |
Unit Margin Amount. Calculated as Unit Net Price minus Unit Net Cost. | 0 Modifiable by: System |
txn.line.pricing.margin.percentage |
Unit Margin %. Calculated as Unit Margin Amount divided by Unit Net Price × 100. | Empty. Modifiable by: System |
txn.line.pricing.rollupPrice |
Cumulative One-Time Price. An aggregate of the one-time price of itself and its child lines. | Empty. Modifiable by: System |
txn.line.pricing.rollupCost |
Cumulative One-Time Cost. An aggregate of the one-time cost of itself and its child lines. | Empty. Modifiable by: System |
txn.line.pricing.rollupNetCost |
Cumulative Net Cost. An aggregate of the one-time cost and monthly recurring cost over the term. | 0 Modifiable by: System |
txn.line.pricing.rollupNetPrice |
Cumulative Net Price. An aggregate of the unit net price of itself and its child lines. | 0 Modifiable by: System |
txn.line.pricing.rollupMargin.percentage |
Cumulative Margin %. An aggregate of the margin of itself and its child lines. Calculated as the rollup of Unit Margin Amount divided by Unit Net Price × 100. | Empty. Modifiable by: System |
txn.line.pricing.netPriceRecurring |
Monthly Recurring Price. For a recurring product, the monthly unit price. | Empty. Modifiable by: System |
txn.line.pricing.costRecurring |
Monthly Recurring Cost. The monthly cost of the product. Typically used in margin calculations. | Empty. Modifiable by: System |
txn.line.pricing.annualPriceRecurring |
Annual Recurring Price. Calculated as Monthly Recurring Price × 12 months. | 0 Modifiable by: System |
txn.line.pricing.rollupExtendedPriceRecurring
|
Cumulative Monthly Price. Calculated as Net Unit Price per month × Quantity. | Empty. Modifiable by: System |
txn.line.pricing.rollupCostRecurring |
Cumulative Monthly Cost. An aggregate of the monthly recurring cost of itself and its child lines. | Empty. Modifiable by: System |
txn.line.pricing.rollupAnnualPriceRecurring
|
Cumulative Annual Price. An aggregate of the annual recurring price of itself and its child lines. | Empty. Modifiable by: System |
txn.line.pricing.adjustment.manual |
Manual Adjustment. Stores the calculated adjustment amount derived from manual adjustments on the line. | 0 Modifiable by: System |
txn.line.pricing.adjustment.net |
Net Adjustment. Total adjustment amount for the line. Includes manual adjustments and any auto-applied adjustments per pricing rules. | 0 Modifiable by: System |
txn.line.pricing.adjustment.unit |
Unit Adjustment. Calculated as Total Adjustment divided by Quantity. | 0 Modifiable by: System |
txn.line.pricing.priceAdjustments |
JSON store for price adjustments, consumed by the adjustments UI. | Empty. Modifiable by: System |
txn.line.pricing.isDerived |
Flag indicating whether this product's price is derived from other products on the transaction. | 0 Modifiable by: System |
txn.line.pricing.adjustment.renewalBasis |
Renewal Adjustment Basis. Specifies the starting renewal price to use. List Price or Net Price of last ramp segment. Overrides the header-level setting if specified. | list_price Modifiable by: System |
txn.line.pricing.adjustment.renewalType |
Renewal Adjustment Type. Indicates whether the renewal adjustment value is a percentage or absolute amount. | Empty. Modifiable by: System |
txn.line.pricing.adjustment.renewalValue |
Renewal Adjustment Value. The percentage or amount to adjust the renewal price by, according to the Renewal Adjustment Type. | Empty. Modifiable by: System |
txn.line.source.rollupPrice |
Renewal Amount. Reference to the original cumulative net price prior to renewal. | 0 Modifiable by: System |
txn.line.pricing.delta.priceTreatment |
Delta Price Treatment. Determines the pricing treatment applied to the line based on line type, action, and whether product offer characteristics have changed. | list_price Modifiable by: System |
txn.line.pricing.delta.netPrice |
Delta Unit Net Price. Calculated as Current Unit Net Price minus Original Unit Net Price. | Empty. Modifiable by: System |
txn.line.pricing.delta.price |
Delta One-Time Price. Calculated as Current One-Time Price minus Original One-Time Price. | Empty. Modifiable by: System |
txn.line.pricing.delta.rollupNetPrice
|
Delta Cumulative Net Price. Calculated as Current Cumulative Net Price minus Original Cumulative Net Price. | Empty. Modifiable by: System |
txn.line.pricing.delta.rollupPriceRecurring
|
Delta Monthly Recurring Price. Calculated as Current Monthly Recurring Price minus Original Monthly Recurring Price. | Empty. Modifiable by: System |
txn.line.delta.upsellDownsellAmount |
Upsell or Downsell Amount. Calculated as the Current Cumulative Net Price minus Original Cumulative Net Price. | Empty. Modifiable by: System |
Opportunity sync fields
The following field is seeded when the Opportunity Sync tenant setting is enabled.
| Variable name | Description | Default value |
|---|---|---|
txn.line.opportunity.lineItem |
Reference to the opportunity line item this line is synced to. | Empty. Modifiable by: System |