Set up External connections for configuration rules
External connections enable enrichments in ServiceNow CPQ to retrieve data from systems outside ServiceNow CPQ for use in configuration rules, such as fetching third-party pricing or product attributes during a configuration.
Enrichments are scripts that run outside the rules engine and affect configurations in ServiceNow CPQ. The following enrichment types are available:
- On configure/reconfigure
- On BOM response
- Validation
- Picklist extension pricing
- On request
External connections can only be called from an enrichment. When an enrichment calls an external connection, ServiceNow CPQ sends a request to the configured host and path, retrieves the response, and makes the data available to the enrichment script — for example, to populate pricing or product attributes in a configuration.
External connections and connections
In ServiceNow CPQ, external connections and connections provide the same capability: they define the host, authentication credentials, and path used when ServiceNow CPQ calls an external system. The difference is where each type is used:
- External connections are referenced in configuration rules, called from enrichment scripts that run during a configuration.
- Connections are referenced in transaction rules, called from integrations that run in ServiceNow Quote Experience.
Configure an external connection when the third-party call is triggered by a configuration event. Configure a connection when the call is triggered by a transaction event.
Authentication for external connections
The authentication method required depends on the external system. The following options are available:
- No authentication — use when the external connection calls an open API that does not require credentials.
- Bearer token — use when the external system issues a static token for authentication. Supply the token directly in the connection.
- OAuth client credentials — use when the external system requires an OAuth handshake. ServiceNow CPQ exchanges a client ID and secret with the authorization server to obtain an access token before each request.
Path parameter variables
External connections support dynamic path segments using parameter variables. A parameter variable is a placeholder in the path that your enrichment script replaces with a runtime value. For example, a path defined as
/v4/latest/{{inputVariable}} accepts a value for inputVariable from the calling enrichment script.
When a path uses a parameter variable, wrap the value in encodeURIComponent() in your enrichment script to ensure the value is safe to include in a URL.