Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Library functions

Library functions can speed implementation and reduce maintenance costs by enabling code reuse across rules.

Library functions enable efficient code reuse across rules and enrichments. They are designed to minimize redundant logic, speed up implementation, and reduce maintenance costs, especially in complex scenarios that involve high-SKU or physics-driven configurations.

Attributes and capabilities

Centralized management: Search and manage library functions through a dedicated UI.

Reusable and namespaced: Define a library function once and invoke it using fn.functionName(params).

Configurable parameters: Define input parameters with data types and default values. Parameter schemas can be modified post-creation, allowing flexibility in managing function inputs.

Customized output: Specify return types.

Callable across modules: Library functions are callable in both the configurator and ServiceNow Quote Experience.

Managed table queries: Library functions support managed table lookups.

Enabling library functions

Submit a support ticket to enable library functions.

Note: Submit a support ticket by using the ServiceNow Support portal. For step-by-step instructions, see Create a case on Now Support for CPQ Customers.

Once library functions are enabled, turn on the new UI by navigating to Utilities > Settings > Admin Version > New, and clicking Save.

This setting can be toggled at any time.

Supported input/output data types

TypeDescription
TEXTPlain text strings
NUMBERNumeric values
BOOLEANLogical true/false values
DATEDates (without time component)
JSON OBJECTJSON formatted objects
ARRAYOrdered collections of values

Note: Empty MAP or ARRAY types are not supported. Unsupported types default to TEXT.

Usage examples

Library functions can be found in the function library (in the Utilities section).

Image omitted: cpq-library-functions-function-library.png
Function library

To add a function:

  1. On the Function Library tab, click Add Function.
  2. Name the function, specify the return type, and enter a description.

Script content:

Image omitted: cpq-library-functions-script-content.png
Sccript parameters

Calling the function:

Image omitted: cpq-library-functions-calling-the-function.png
Code

Limitations

  • Recursive calls are not supported.
  • External API calls and async operations are not supported.
  • Parameters are passed by copy, not by reference.
  • Functions must be free of side effects, external calls, and ServiceNow CPQ field references.

General guidelines

  • When a library function changes, redeploy the affected blueprints.
  • When defining a function, name and describe its inputs to provide visibility into its usage.