Create a ServiceNow Quote Experience integration

  • Release version: Australia
  • Updated May 7, 2026
  • 4 minutes to read
  • Create an integration in ServiceNow Quote Experience to define the connection, settings, and field mapping that exchanges data between a quote and an external system in ServiceNow CPQ.

    Before you begin

    A connection to the target environment must exist before you create an integration. For more information, see Create a connection for ServiceNow Quote Experience calls.

    Role required: admin

    About this task

    Integrations define how ServiceNow Quote Experience exchanges data with external systems. Each integration specifies the HTTP operation, which lines to include, how to authenticate via a connection, and how to map external data to ServiceNow CPQ fields using a transformation template. Integrations are assigned to stages and events to trigger them during the quote lifecycle.

    Procedure

    1. Navigate to All > CPQ Administration > Transactions > Integrations
    2. Select + Add Integration.
    3. Enter a name and verify the variable name, then select Save.

      The variable name is set in camel case from the name you enter. To use a custom variable name, select the pencil icon to the right of the Variable Name field before saving.

      The Integration Editor opens.
    Configure integration settings
    1. In the HTTP Method field, select the operation to perform on the third-party endpoint.
      • Select GET to retrieve data from the external system.
      • Select POST to send new data to the external system.
      • Select PATCH to partially update a record on the external system.
      • Select PUT to replace a record on the external system.
      • Select DELETE to remove a record on the external system.
    2. In the Line Item Details to Include field, select which quote lines the integration works with.
      • Select Selected Lines to operate on the lines the user has selected.
      • Select Modified Lines to operate on lines that have changed in the current session.
      • Select Deleted Lines to operate on lines that have been removed from the quote.
    3. In the Additional Path field, enter the query command to execute on the third-party site.

      For Salesforce connections, this is typically a SOQL query. For other platforms, it may be a standard SQL query.

    4. In the Timeout field, enter the number of milliseconds the request waits for a response before declaring an error.
    5. Optional: Enable the Async toggle to run the integration in the background so the user can continue working while the request executes.
    6. Optional: In the Headers area, configure the headers to include with the request.

      Three approaches are available and can be combined.

      • ServiceNow Quote Experience field values — Reference transaction-level field values in a header using handlebar (Mustache) syntax: {{txn.fieldname}}. For example, {{txn.account.id}} passes the account ID from the quote header into the request header.
      • Static key-value pairs — Enter fixed header keys and values directly, such as an authorization token or a content type override.
      • Combined — Mix static values and field references in the same header configuration.
    7. In the connection selector, choose the connection to the target environment from the list of previously created connections.

      Connections are created in the Utilities area. If the required connection does not appear, create it first. For more information, see Create a connection for ServiceNow Quote Experience calls.

    Define the transformation template
    1. In the Transformation Template area, enter the JSON that maps external data to ServiceNow CPQ fields, or maps ServiceNow CPQ data to external system fields.

      The template uses JSON with Mustache (handlebar) syntax to extract values from the external response. Each object in the fields array contains a variableName (the ServiceNow CPQ field that receives the data) and a value (the expression that identifies the external field to extract from). Use {{#each records}} and {{/each}} to iterate over records in the query response.

      The following example maps three Salesforce fields to ServiceNow CPQ transaction fields.

      {
        "fields": [
          {
            "variableName": "txn.custom.tXNNumber",
            "value": "{{#each records}}{{Name}}{{/each}}"
          },
          {
            "variableName": "txn.opportunity.id",
            "value": "{{#each records}}{{LGK__OpportunityId__c}}{{/each}}"
          },
          {
            "variableName": "txn.custom.primaryContact",
            "value": "{{#each records}}{{Contact.FirstName}}{{/each}}"
          }
        ]
      }

      In this example, each variableName is a ServiceNow CPQ field that receives the extracted value. The {{#each records}} / {{/each}} block iterates over each record in the query response and extracts the named Salesforce field.

    2. Optional: To verify the transformation template before saving, paste a sample query response into the Sample Return Data area, then select Run Transformation below the Transformation Template area.

      To obtain sample response data, run the same query in a tool such as Postman where you can view and copy the full response, then paste it into the Sample Return Data area.

      The query response data runs through the transformation template and the mapped output is displayed in the Transformation Result area. If the result does not match the expected field values, review the template syntax and field variable names.
    3. Select Save.
      The integration is saved and available to assign to stages and events.

    What to do next

    Assign the integration to an event or a stage to trigger it during the quote lifecycle.