What I'm building
A custom Lightning Web Component that embeds inside a cloned Product Configurator Screen Flow (the standard "Save As" third-party-configurator extension pattern — lightning__FlowScreen). The component calls the Product Configurator Business APIs directly via Apex HTTP callout (Named Credential auth, OAuth 2.0 Client Credentials Flow via an External Client App — not UserInfo.getSessionId(), which is rejected for interactive-UI sessions anyway).
Environment
- Developer Edition org with Revenue Cloud / Agentforce Revenue Management enabled (enableProductConfigurator = true)
- API version v64.0
- Not a scratch org, no source tracking — deployed directly
- Native in-app configurator UI works correctly for the running user; this is only about the headless REST layer
What works
POST /services/data/v64.0/connect/cpq/configurator/actions/configure — works reliably. Returns transactionContext.SalesTransaction[].SalesTransactionItem[], prices lines correctly, runs configuration rules, surfaces rule violations in messages. This endpoint alone is not gated.
What fails
Every other documented action in the same family returns a 403:
POST /services/data/v64.0/connect/cpq/configurator/actions/load-instancePOST /services/data/v64.0/connect/cpq/configurator/actions/get-instancePOST /services/data/v64.0/connect/cpq/configurator/actions/add-nodesPOST /services/data/v64.0/connect/cpq/configurator/actions/save-instance
Response body:
{ "errorCode": "FUNCTIONALITY_NOT_ENABLED", "message": "[IHeadlessConfiguratorFamily]"}(403 status, same error regardless of payload shape or whether the call carries a transactionContextId.)
#Revenue Cloud #Salesforce Revenue Cloud #Lightning Product Setup Configurator #CPQ #Revenue Management System @* Salesforce Revenue Cloud *