Setup Guide

Get SFCC Copilot running in your Business Manager in under 5 minutes.

Requirements

1. Install the Chrome Extension

1
Install from the Chrome Web Store Go to the SFCC Copilot listing and click Add to Chrome.
2
Open any Business Manager page The Copilot button will appear in the bottom-right corner automatically.
✓ The Copilot button appears on any BM page matching *.commercecloud.salesforce.com or *.demandware.net.

2. Configure OCAPI Settings (Site-scoped)

SFCC Copilot uses the OCAPI Data API to create promotions, campaigns, coupons, and customer groups. These resources are site-scoped and must be configured per site.

1
Open OCAPI Settings in Business Manager Go to Administration → Site Development → Open Commerce API Settings
2
Select Type: Data — Context: your site Select Data from the Type dropdown, then select your site (e.g. RefArch) from the Context dropdown.
3
Add the required resources Add the JSON below for your API client ID. If other clients already exist, append this as a new object in the clients array.
Resource Methods Purpose
/sites/*/campaigns/* GET PUT Create & read campaigns
/sites/*/campaigns/*/promotions/* PUT Link promotions to campaigns
/sites/*/campaigns/*/customer_groups/* PUT DELETE Assign & remove customer groups
/sites/*/campaigns/*/coupons/* PUT Link coupons to campaigns
/sites/*/promotions/* GET PUT Create & read promotions
/sites/*/coupons/* GET PUT Create coupons
/sites/*/customer_groups/* GET PUT Create customer groups

3. System Object Attributes (optional)

Creating custom attributes on system objects (Profile, Order, Product, etc.) requires an additional OCAPI permission. This is a global resource — it must be configured in the Global context, not the site context.

⚠ This step is only needed if you want to use the "create a custom attribute" feature. You can skip it if you only need promotions, navigation, and the BM guide.
1
Open OCAPI Settings — Global context Go to Administration → Site Development → Open Commerce API Settings. Set Type to Data and Context to Global.
2
Add the system_object_definitions resource Add the following resource to your client's resources array in the Global Data context:
{
  "_v": "24.1",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        {
          "resource_id": "/system_object_definitions/**",
          "methods": ["get", "put", "patch", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        }
      ]
    }
  ]
}
ℹ The system_object_definitions endpoint uses the global Data API path (/s/-/dw/data/v24_1/system_object_definitions/...) — it does not include a site ID. This is why it must be configured in the Global context, separate from your site-scoped resources.
Resource Context Global Methods Purpose
/system_object_definitions/** Global GET PUT Create & read custom attributes on any system object

4. Configure Export (optional)

The export feature allows you to download orders, customers, products, promotions, campaigns and coupons as CSV files directly from the Copilot chat.

Enable order export (Shop API)

Orders use the Shop API and require a separate configuration.

1
Open OCAPI Settings — Shop context Go to Administration → Site Development → Open Commerce API Settings. Set Type to Shop and Context to your site (e.g. Climate_US).
2
Add the order_search resource
{
  "_v": "21.3",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        {
          "resource_id": "/order_search",
          "methods": ["post"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        }
      ]
    }
  ]
}
3
Enable Order Incremental Indexing Go to Search → Search Indexes and enable Order Indexes. Without this, order_search returns HTTP 500.

Enable other exports (Data API — site context)

Add these to Data → your site. These use search endpoints — not simple list endpoints.

{
  "_v": "21.3",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        {
          "resource_id": "/sites/*/promotion_search",
          "methods": ["post"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/campaign_search",
          "methods": ["post"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/coupon_search",
          "methods": ["post"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/customer_lists/*/customer_search",
          "methods": ["post"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        }
      ]
    }
  ]
}

Enable product export (Data API — Global context)

Products use the global catalog. Add these to Data → Global (organization-wide).

{
  "_v": "21.3",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        {
          "resource_id": "/product_search",
          "methods": ["post"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/products/*",
          "methods": ["get"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        }
      ]
    }
  ]
}
✓ Once configured, you can type "export orders from June", "export all customers", "export promotions" in the Copilot and the CSV downloads automatically.

Supported export objects

ObjectAPI / ContextExample command
OrdersShop API — site"export orders from July"
CustomersData API — Global"export all customers"
ProductsData API — Global"export all products"
PromotionsData API — site"export all promotions"
CampaignsData API — site"export all campaigns"
CouponsData API — site"export all coupons"

5. Create an API Client in Account Manager

If you don't have an API client yet, create one at account.demandware.com.

1
Go to API Client section Login → API ClientAdd API Client
2
Add required roles Under Roles, add Sandbox API User and Salesforce Commerce API for your tenant (e.g. bjjp_004).
3
Copy your Client ID and Client Secret You'll need these in the next step.
⚠ The Client Secret is only shown once. Save it securely before leaving the page.

6. Enter Credentials in the Extension

1
Open the Copilot in Business Manager Click the Copilot button in the bottom-right corner of any BM page.
2
Open Settings Click the icon in the Copilot header.
3
Fill in your credentials Enter your Base URL (e.g. https://xxxx-001.dx.commercecloud.salesforce.com), Client ID, Client Secret, API Version (v24_1), and License Key.
4
Click Save & Connect Credentials are stored locally in your browser — never sent to any third-party server.
✓ You're ready! Describe a promotion, ask how to do something, or tell Copilot where to navigate.

Full OCAPI JSON Reference

Replace YOUR_CLIENT_ID with your actual API client ID.

Site-scoped (Data → your site)

Add this to Administration → Site Development → Open Commerce API Settings → Data → [your site].

{
  "_v": "24.1",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        {
          "resource_id": "/sites/*/campaigns/*",
          "methods": ["get", "put", "patch", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/campaigns/*/promotions/*",
          "methods": ["put", "patch", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/campaigns/*/customer_groups/*",
          "methods": ["put", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/campaigns/*/coupons/*",
          "methods": ["put", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/promotions/*",
          "methods": ["get", "put", "patch", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/coupons/*",
          "methods": ["get", "put", "patch", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        },
        {
          "resource_id": "/sites/*/customer_groups/*",
          "methods": ["get", "put", "patch", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        }
      ]
    }
  ]
}

Global (Data → Global) — required for System Object Attributes only

Add this separately in Administration → Site Development → Open Commerce API Settings → Data → Global.

{
  "_v": "24.1",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        {
          "resource_id": "/system_object_definitions/**",
          "methods": ["get", "put", "patch", "delete"],
          "read_attributes": "(**)",
          "write_attributes": "(**)"
        }
      ]
    }
  ]
}
ℹ If you already have other clients in your OCAPI Settings, add this as an additional object inside the existing "clients": [...] array — do not replace the entire JSON.

Full OCAPI JSON — Copy & Paste Reference

Replace YOUR_CLIENT_ID with your API client ID throughout. Apply each block in the corresponding context.

1. Data API — your site context

Administration → Site Development → Open Commerce API Settings → Data → [your site]

{
  "_v": "21.3",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        { "resource_id": "/sites/*/campaigns/*", "methods": ["get","put","patch","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/campaigns/*/promotions/*", "methods": ["put","patch","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/campaigns/*/customer_groups/*", "methods": ["put","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/campaigns/*/coupons/*", "methods": ["put","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/promotions/*", "methods": ["get","put","patch","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/coupons/*", "methods": ["get","put","patch","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/customer_groups/*", "methods": ["get","put","patch","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/promotion_search", "methods": ["post"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/campaign_search", "methods": ["post"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/coupon_search", "methods": ["post"], "read_attributes": "(**)", "write_attributes": "(**)" }
      ]
    }
  ]
}

2. Data API — Global context

Administration → Site Development → Open Commerce API Settings → Data → Global (organization-wide)

Customer groups and system object attributes require Global context in addition to site context.

{
  "_v": "21.3",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        { "resource_id": "/system_object_definitions/**", "methods": ["get","put","patch","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/sites/*/customer_groups/*", "methods": ["get","put","patch","delete"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/product_search", "methods": ["post"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/products/*", "methods": ["get"], "read_attributes": "(**)", "write_attributes": "(**)" },
        { "resource_id": "/customer_lists/*/customer_search", "methods": ["post"], "read_attributes": "(**)", "write_attributes": "(**)" }
      ]
    }
  ]
}

3. Shop API — your site context

Administration → Site Development → Open Commerce API Settings → Shop → [your site]

{
  "_v": "21.3",
  "clients": [
    {
      "client_id": "YOUR_CLIENT_ID",
      "resources": [
        { "resource_id": "/order_search", "methods": ["post"], "read_attributes": "(**)", "write_attributes": "(**)" }
      ]
    }
  ]
}
ℹ If you already have other clients in your OCAPI Settings, add your client as an additional object inside the existing "clients": [...] array — do not replace the entire JSON.

Troubleshooting

Error: ClientAccessForbiddenException

Your API client doesn't have permission for the requested resource. Check that:

Error: OCAPI auth failed

Authentication with the Salesforce Account Manager failed. Check that:

Copilot button not appearing

The extension only injects on Business Manager URLs matching *.commercecloud.salesforce.com or *.demandware.net. Make sure you're on a BM page and the extension is enabled in chrome://extensions.

Still having issues?

Contact us at thiago@bloomcreate.com.br and include the error message from the Copilot chat.