Transaction line-level system fields

  • Release version: Australia
  • Updated May 7, 2026
  • 10 minutes to read
  • 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

    Table 1. 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.

    Table 2. Product fields
    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

    Table 3. 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.

    Table 4. Configuration fields
    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.

    Table 5. Core quoting experience line fields
    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.

    Table 6. Line-level pricing fields
    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.

    Table 7. Opportunity sync line field
    Variable name Description Default value
    txn.line.opportunity.lineItem Reference to the opportunity line item this line is synced to. Empty. Modifiable by: System