Salesforce B2B Commerce Cloud
Salesforce B2B Commerce Cloud is a comprehensive e-commerce platform designed for business-to-business transactions, enabling companies to create personalized buying experiences, manage complex pricing structures, and streamline B2B sales processes.

Power end-to-end data operations for your Salesforce B2B Commerce Cloud API with Nexla. Our bi-directional Salesforce B2B Commerce Cloud connector is purpose-built for Salesforce B2B Commerce Cloud, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Salesforce B2B Commerce Cloud or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Salesforce B2B Commerce Cloud workflows fast, secure, and fully governed.
Features
Type: API
- Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
- Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
- API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
- Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Prerequisites
Nexla connects to Salesforce B2B Commerce Cloud over OAuth 2.0. You sign in to Salesforce and approve access — Nexla never asks for or stores a Salesforce password. Before you begin, check that:
-
Your Salesforce edition includes API access. Enterprise, Unlimited, Performance, and Developer editions include it. Professional Edition requires the API add-on. If you aren't sure, ask your Salesforce administrator.
-
Your Salesforce user has the API Enabled permission. This is standard on most profiles, but restricted profiles sometimes have it turned off. An administrator can enable it under Setup > Users, on the user's profile or an assigned permission set, under System Permissions.
-
That user can see the commerce data you want to move. Nexla operates under the permissions of whoever authorizes the connection, so it can read exactly what that person can. For production flows, authorize with a dedicated integration user rather than a personal account.
Set up Salesforce
Nexla connects either through an app you create in your own Salesforce org, or through Nexla's Salesforce app. Each needs a one-time action from a Salesforce administrator. After that, creating credentials in Nexla is the same either way.
| Your own Salesforce app | Nexla's Salesforce app | |
|---|---|---|
| One-time Salesforce setup | An administrator creates an external client app | An administrator approves Nexla for your org |
| Scopes, token policies, and IP restrictions | Set by you, in your org | Set by Nexla |
| Sandbox orgs | Supported | Not supported — production only |
| Choose this if | Your security team wants control over the app's permissions and policies | You want to connect without creating an app |
- Your own Salesforce app
- Nexla's Salesforce app
Ask your Salesforce administrator to follow these steps and send you the resulting Consumer Key and Consumer Secret. Everything happens in Salesforce Setup — no Nexla access is needed.
-
Go to Setup. In the Quick Find box, enter
External Client, select External Client App Manager, and click New External Client App. -
Enter a name that identifies the integration, such as
Nexla, and a Contact Email. Set Distribution State to Local, which keeps the app private to your org. -
Expand the API (Enable OAuth Settings) section and select Enable OAuth.
-
In the Callback URL field, enter both of these, one per line:
https://dataops.nexla.io/oauth2Auth
https://dataops.nexla.io/nexla-api/oauth/callbackEach has to match exactly, or Salesforce rejects the authorization with a
redirect_uri_mismatcherror. If your organization runs a dedicated Nexla installation, replacehttps://dataops.nexla.iowith your own Nexla address. -
From Available OAuth Scopes, move these three to Selected OAuth Scopes:
- Manage user data via APIs (
api) — reads your commerce records over the REST API. - Perform requests at any time (
refresh_token,offline_access) — keeps scheduled flows running without anyone re-authorizing. - Access the identity URL service (
id,profile,email,address,phone) — confirms which user and org the credential is connected to.
These cover the product, category, and object endpoints this connector reads. Other Salesforce products need their own scope on top — CRM Analytics (
wave_api) or Data Cloud (cdp_query_api), for example. - Manage user data via APIs (
-
In the same section, set the three security options:
- Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows — enable. Nexla sends a PKCE challenge on every authorization.
- Require Secret for the Web Server Flow — leave disabled. Nexla uses PKCE instead of a client secret at this step, so enabling this stops the authorization from completing.
- Require Secret for Refresh Token Flow — enable. Nexla does send the client secret when it refreshes a token.
-
Click Create. Salesforce may ask you to verify your identity by email.
-
Open the new app, select the Settings tab, expand OAuth Settings, and click Consumer Key and Secret. These are the two values to send back — in Nexla they're entered as Client ID and Client Secret.
Optional hardening. On the app's Policies tab, you can also:
- Set Permitted Users to Admin approved users are pre-authorized, then assign the profiles or permission sets allowed to connect Nexla.
- Enable Refresh Token Rotation, and set Refresh Token Policy to expire the refresh token if it isn't used for 30 days. Nexla refreshes tokens continuously, so an active credential is never affected.
- Set IP Relaxation to Enforce IP restrictions, and add Nexla's addresses —
34.231.167.112,54.209.27.1, and35.245.202.207— to the login IP ranges of the profiles permitted to use the app.
A sandbox has its own external client apps. To connect a sandbox, repeat these steps in the sandbox org — a consumer key from your production org won't work there.
Since September 2025, Salesforce requires an administrator to approve Nexla's app for your org before anyone can use it. Until that's done, the first person to connect sees an authorization error.
-
Go to Setup. In the Quick Find box, enter
Connected Apps, and select Connected Apps OAuth Usage. -
Find Nexla in the list and click Install.
-
Click Manage App Policies and set Permitted Users to control who can connect, assigning the profiles or permission sets allowed to use it.
If Nexla isn't in the list, it's because nobody has tried to connect yet. Have someone start the authorization from Nexla once — the app then appears and can be installed.
This method connects to production orgs only. To connect a sandbox, use your own Salesforce app.
Authenticate
Credentials required
- Nexla's Salesforce App
- Your Own Salesforce App (Production)
- Your Own Salesforce App (Sandbox)
Connect using Nexla's shared Salesforce app — no app setup required. A Salesforce admin must approve Nexla for your org once.
This method requires no credential fields.
Connect to a production org using an external client app created in your own Salesforce org. Requires the app's consumer key and secret.
| Field | Required | Secret | Description |
|---|---|---|---|
| Client ID | Yes | No | Consumer Key from your Salesforce external client app |
| Client Secret | Yes | Yes | Consumer Secret from your Salesforce external client app |
Connect to a sandbox org using an external client app created in your Salesforce sandbox. Requires the app's consumer key and secret.
| Field | Required | Secret | Description |
|---|---|---|---|
| Client ID | Yes | No | Consumer Key from your Salesforce external client app |
| Client Secret | Yes | Yes | Consumer Secret from your Salesforce external client app |
Create a credential in Nexla
- After selecting the data source type, click the Add Credential tile to open the Add New Credential overlay.
New Credential Overlay – Salesforce B2B Commerce Cloud

-
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
-
Select the authentication method from the Authentication Type pulldown menu, and follow the corresponding instructions below.
Configure Authentication Settings
- Your Own Salesforce App (Production)
- Your Own Salesforce App (Sandbox)
- Nexla's Salesforce App
Connect to a production org using the external client app created in your Salesforce org.
- Enter the Consumer Key of your external client app in the Client ID field, and the Consumer Secret in the Client Secret field. Your Salesforce administrator obtains both when they create the app.
- Click the Authorize button, sign in to Salesforce, and approve access. Sign in as the user whose permissions this connection should operate under.
- Click Save. Nexla checks the connection before saving, so any configuration problem surfaces now rather than when a flow first runs.
Connect to a sandbox org using the external client app created in your Salesforce sandbox.
- Enter the Consumer Key and Consumer Secret of the external client app in your sandbox org in the Client ID and Client Secret fields.
- Click the Authorize button, sign in with your sandbox credentials, and approve access.
- Click Save.
Connect to a production org using Nexla's Salesforce app. No client ID or secret is needed.
- Click the Authorize button, sign in to Salesforce, and approve access.
- Click Save. If authorization fails because the app isn't installed for your org, a Salesforce administrator needs to approve Nexla once.
- The credential now appears as a tile on the Authenticate screen and can be selected for any Salesforce B2B Commerce Cloud data source.
Nexla refreshes Salesforce access tokens automatically, so scheduled flows keep running without anyone re-authorizing. If a credential does stop working — because an administrator revoked access, or the refresh token expired under your org's policy — Nexla flags it, and reconnecting is a matter of opening the credential and clicking Authorize again. The flows using it are unaffected.
Use as a data source
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Salesforce B2B Commerce Cloud connector tile, then select the credential that will be used to connect to your Salesforce B2B Commerce Cloud account, and click Next; or, create a new Salesforce B2B Commerce Cloud credential for use in this flow.
Endpoint templates
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Salesforce B2B Commerce Cloud endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Manual configuration
Salesforce B2B Commerce Cloud data sources can also be manually configured to ingest data from any valid Salesforce B2B Commerce Cloud API endpoint, including endpoints not covered by the pre-built templates or endpoints that require chained API calls or custom query parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
Salesforce B2B Commerce Cloud API typically uses the GET method. The endpoint URL should include your instance URL (e.g., https://your-instance.salesforce.com/services/apexrest/ccrz/cccategory/v8/fetch). For the Response Data Path, use $.records[*] for SOQL query results, $.categoryList[*] for the category list, $.productList[*] for the product list, or $ for single-record endpoints, depending on the endpoint. Salesforce B2B Commerce Cloud API uses next URL-based pagination (via $.nextRecordsUrl) for some endpoints, and offset-based pagination (offset/limit parameters) for others; select the pagination type that matches your endpoint.
Once all of the relevant settings have been configured, click the Next button to proceed with the rest of the data flow configuration, or click the Save button to save the new Salesforce B2B Commerce Cloud data source for later use.