Skip to content
Release: Australia · Updated: 2026-05-07 · Official documentation · View source

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 nameDescriptionDefault value
txn.line.idUUID 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.idID 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.createdTimestamp when the transaction line was added.Auto-generated by the system. Modifiable by: System
txn.line.createdByName of the user who added the transaction line.Auto-generated by the system. Modifiable by: System
txn.line.modifiedTimestamp when the transaction line was last modified.Auto-generated by the system. Modifiable by: System
txn.line.modifiedByName of the user who last modified the transaction line.Auto-generated by the system. Modifiable by: System
txn.line.isNewIndicates 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 nameDescriptionDefault value
txn.line.isProductBoolean indicating whether the product to be added is available in the catalog.false Modifiable by: System
txn.line.product.idProduct 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.nameName 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.externalIdExternal 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.partnerIdPartner 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.productCodeProduct 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.descriptionDescription 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 nameDescriptionDefault value
txn.line.isVisibleControls 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.isReorderableIndicates whether the line can be reordered within the quote lines grid.true Modifiable by: System
txn.line.selectedUsed 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 nameDescriptionDefault value
txn.line.isConfiguredBoolean 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.idUUID of the configuration.Empty if no configuration. Modifiable by: System
txn.line.configuration.solutionIdUUID of the solution the configuration belongs to.Empty if no configuration. Modifiable by: System
txn.line.configuration.statusConfiguration validation status. Supports the Validate configured items event setting.Empty. Generated when lines are added. Modifiable by: System
txn.line.configuration.validatedAtDate 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.idConfiguration item ID in the BOM once a configuration is added.Empty if no configuration. Modifiable by: System
txn.line.configuration.item.pricePrice 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.quantityQuantity 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.typeType of a BOM item once a configuration is added.Empty if no configuration. Modifiable by: System
txn.line.configuration.item.notesNotes for a BOM item once a configuration is added.Empty if no configuration. Modifiable by: System
txn.line.configuration.item.descriptionDescription of the BOM item as defined when the configuration item was created.Empty if no configuration. Modifiable by: System
txn.line.configuration.item.parentProductConfiguration 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.uomUnit of measure for the BOM item, as defined when the item was created.Empty if no configuration. Modifiable by: System
txn.line.configuration.item.bomTypeBOM type of the configuration item, as defined when the item was created.Empty if no configuration. Modifiable by: System
txn.line.configuration.item.extPriceExtended 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.orderNumberOrder number of the BOM item when it was added.Empty if no configuration. Modifiable by: System
txn.line.configuration.item.rollUpPriceRollup 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.uniqueIdentifierUnique 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.keyFallback 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 nameDescriptionDefault value
txn.line.accountAccount associated with the line. Set from the transaction header.Empty. Set from header. Modifiable by: System
txn.line.contactContact name associated with the line.Empty. Modifiable by: System
txn.line.displayNumberUser-facing display number of the line.Empty. Modifiable by: System
txn.line.sysIdServiceNow system ID of the line.Empty. Modifiable by: System
txn.line.parentBomLineIdID of the line's parent BOM line.Empty. Modifiable by: System
txn.line.product.uomProduct unit of measurement of the line.Empty. Modifiable by: System
txn.line.product.modelProduct model associated with the line.Empty. Modifiable by: System
txn.line.product.specificationProduct specification associated with the line.Empty. Modifiable by: System
txn.line.product.characteristicsProduct characteristics of the line.Empty. Modifiable by: System
txn.line.serviceLocationService location associated with the line.Empty. Modifiable by: System
txn.line.startDateStart date of the line.Empty. Modifiable by: System
txn.line.endDateEnd date of the line.Empty. Modifiable by: System
txn.line.termDifference 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.lineTypeDescribes the change being made to the transaction line. Values: New, Renew, Upsell, Amend, Cancel, No Change.Empty. Modifiable by: System
txn.line.lineActionIndicates the action applied to the sold product. Values: Add, Change, Disconnect, No Change.Empty. Modifiable by: System
txn.line.isAutoGeneratedForRenewalIndicates whether this line was automatically generated from a renewal workflow.Empty. Modifiable by: System
txn.line.isAutoRenewContractIndicates whether the contract line is eligible for automatic renewal based on its expiration end date.Empty. Modifiable by: System
txn.line.source.entitlementReferences the entitlement from which this line was renewed.Empty. Modifiable by: System
txn.line.source.soldProductReference to the underlying sold product record from which this line was created.Empty. Modifiable by: System
txn.line.source.splitFromSoldProductWhen 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.contractReferences the existing contract from which this line was derived.Empty. Modifiable by: System
txn.line.source.contract.lineReference to the contract line from which this line was renewed.Empty. Modifiable by: System
txn.line.source.lineReference 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.rootLineReference 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 nameDescriptionDefault value
txn.line.pricebookReference to the price list from which this line's list price is read.Empty. Modifiable by: System
txn.line.pricing.extendedPriceExtended Price. Calculated as Unit Net Price × Quantity.Empty. Modifiable by: System
txn.line.pricing.costOne-Time Cost. Cost for a product that is not recurring.Empty. Modifiable by: System
txn.line.pricing.unitCostUnit Cost. List cost as read from the cost book.0 Modifiable by: System
txn.line.pricing.margin.amountUnit Margin Amount. Calculated as Unit Net Price minus Unit Net Cost.0 Modifiable by: System
txn.line.pricing.margin.percentageUnit Margin %. Calculated as Unit Margin Amount divided by Unit Net Price × 100.Empty. Modifiable by: System
txn.line.pricing.rollupPriceCumulative One-Time Price. An aggregate of the one-time price of itself and its child lines.Empty. Modifiable by: System
txn.line.pricing.rollupCostCumulative One-Time Cost. An aggregate of the one-time cost of itself and its child lines.Empty. Modifiable by: System
txn.line.pricing.rollupNetCostCumulative Net Cost. An aggregate of the one-time cost and monthly recurring cost over the term.0 Modifiable by: System
txn.line.pricing.rollupNetPriceCumulative Net Price. An aggregate of the unit net price of itself and its child lines.0 Modifiable by: System
txn.line.pricing.rollupMargin.percentageCumulative 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.netPriceRecurringMonthly Recurring Price. For a recurring product, the monthly unit price.Empty. Modifiable by: System
txn.line.pricing.costRecurringMonthly Recurring Cost. The monthly cost of the product. Typically used in margin calculations.Empty. Modifiable by: System
txn.line.pricing.annualPriceRecurringAnnual Recurring Price. Calculated as Monthly Recurring Price × 12 months.0 Modifiable by: System
txn.line.pricing.rollupExtendedPriceRecurringCumulative Monthly Price. Calculated as Net Unit Price per month × Quantity.Empty. Modifiable by: System
txn.line.pricing.rollupCostRecurringCumulative Monthly Cost. An aggregate of the monthly recurring cost of itself and its child lines.Empty. Modifiable by: System
txn.line.pricing.rollupAnnualPriceRecurringCumulative Annual Price. An aggregate of the annual recurring price of itself and its child lines.Empty. Modifiable by: System
txn.line.pricing.adjustment.manualManual Adjustment. Stores the calculated adjustment amount derived from manual adjustments on the line.0 Modifiable by: System
txn.line.pricing.adjustment.netNet 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.unitUnit Adjustment. Calculated as Total Adjustment divided by Quantity.0 Modifiable by: System
txn.line.pricing.priceAdjustmentsJSON store for price adjustments, consumed by the adjustments UI.Empty. Modifiable by: System
txn.line.pricing.isDerivedFlag indicating whether this product's price is derived from other products on the transaction.0 Modifiable by: System
txn.line.pricing.adjustment.renewalBasisRenewal 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.renewalTypeRenewal Adjustment Type. Indicates whether the renewal adjustment value is a percentage or absolute amount.Empty. Modifiable by: System
txn.line.pricing.adjustment.renewalValueRenewal 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.rollupPriceRenewal Amount. Reference to the original cumulative net price prior to renewal.0 Modifiable by: System
txn.line.pricing.delta.priceTreatmentDelta 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.netPriceDelta Unit Net Price. Calculated as Current Unit Net Price minus Original Unit Net Price.Empty. Modifiable by: System
txn.line.pricing.delta.priceDelta One-Time Price. Calculated as Current One-Time Price minus Original One-Time Price.Empty. Modifiable by: System
txn.line.pricing.delta.rollupNetPriceDelta Cumulative Net Price. Calculated as Current Cumulative Net Price minus Original Cumulative Net Price.Empty. Modifiable by: System
txn.line.pricing.delta.rollupPriceRecurringDelta Monthly Recurring Price. Calculated as Current Monthly Recurring Price minus Original Monthly Recurring Price.Empty. Modifiable by: System
txn.line.delta.upsellDownsellAmountUpsell 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 nameDescriptionDefault value
txn.line.opportunity.lineItemReference to the opportunity line item this line is synced to.Empty. Modifiable by: System

Related topics

Quote transaction fields

Transaction-level system fields

Date and time field fields