> ## Documentation Index
> Fetch the complete documentation index at: https://docs.remark.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce

> Connect Salesforce CRM and Salesforce Commerce Cloud to Remark for case actions and catalog sync.

Remark supports two Salesforce integration paths:

* **Salesforce CRM** lets agents create Salesforce cases and add comments to existing open cases.
* **Salesforce Commerce Cloud** lets Remark sync product catalog data from your SFCC storefront.

You can use either integration on its own. Salesforce CRM is connected in the Dashboard. Salesforce Commerce Cloud setup is coordinated with Remark because it requires Salesforce Account Manager, Business Manager, and SLAS access.

## Salesforce CRM

Use the Salesforce CRM integration when your team wants agents to create Salesforce support cases or add comments to existing open cases from shopper conversations.

### Before you start

You need:

* Access to **Settings > Integrations** in the Remark Dashboard
* A Salesforce connected app with username-password OAuth enabled
* A Salesforce integration user with permission to query `Case`, create `Case` records, and create `CaseComment` records
* The Salesforce instance domain, connected app credentials, integration user credentials, and security token

### Connect Salesforce CRM

1. Open **Settings > Integrations** in the Remark Dashboard.
2. Find **Salesforce**.
3. Select **Connect**.
4. Enter the Salesforce instance URL, such as `yourcompany.salesforce.com` or `yourcompany.my.salesforce.com`.
5. Enter the connected app **Consumer Key** and **Consumer Secret**.
6. Enter the integration user's **Username**, **Password**, and **Security Token**.
7. Submit the connection form.

Remark tests the credentials and checks that the integration user can query the Salesforce `Case` object before saving the integration.

### Salesforce CRM fields

| Field                   | Where to find it                                                              |
| ----------------------- | ----------------------------------------------------------------------------- |
| Salesforce instance URL | Your Salesforce domain, without extra path segments                           |
| Consumer Key            | Salesforce Setup > App Manager > your connected app > Manage Consumer Details |
| Consumer Secret         | Salesforce Setup > App Manager > your connected app > Manage Consumer Details |
| Username                | The Salesforce user assigned to the connected app                             |
| Password                | The password for that Salesforce user                                         |
| Security Token          | Salesforce user settings > My Personal Information > Reset Security Token     |

### Add Salesforce actions to an intent

After Salesforce CRM is connected, add Salesforce [actions](/dashboard/actions) to the relevant [intent](/dashboard/intents). For example, a support handoff intent can tell the agent when to create a Salesforce case, what shopper details to collect, and when to add a comment to an existing open case.

The Remark Copilot can also create and update intents from the Dashboard. If you ask Copilot to set up a Salesforce support flow, review the intent criteria, instructions, and selected Salesforce actions before enabling it for live conversations.

### Supported Salesforce CRM actions

#### Create Salesforce case

Agents can create a Salesforce case when the conversation includes:

* Shopper name
* Shopper email
* Case subject
* Case description

Remark sends Salesforce the shopper name, shopper email, subject, description, and `Origin: Remark`. In live conversations, Remark also includes a Dashboard conversation URL and transcript context when available.

In the playground, Remark verifies that Salesforce credentials work but does not create a case.

#### Add comment to Salesforce case

Agents can add a comment to an existing open Salesforce case when the conversation includes:

* Shopper email
* Shopper last name
* Comment text
* Whether the comment should be public or private, if your team wants to specify that

Remark looks for open Salesforce cases where `SuppliedEmail` matches the shopper email and `SuppliedName` contains the shopper last name. If multiple open cases match, Remark comments on the most recent one. If public/private is not specified, Remark currently sends the comment as public.

In the playground, Remark can look up the matching open case but does not add the comment.

### Salesforce CRM troubleshooting

#### Authentication fails

Check the connected app Consumer Key and Consumer Secret, the integration user's username and password, and the user's Salesforce security token. If the user recently reset their password, reset the security token and update the integration in Remark.

#### Salesforce cannot be reached

Confirm that the instance URL is the Salesforce domain only, such as `yourcompany.my.salesforce.com`. Do not include `https://`, `/services`, or other path segments.

#### Case access check fails

The integration user must be able to query the `Case` object. Review the user's profile, permission sets, object permissions, and field-level access.

#### Case creation or comment creation fails

Check Salesforce validation rules, required fields, record type requirements, and permissions for `Case` and `CaseComment`. If your Salesforce org requires fields that Remark does not currently send, contact `support@remark.ai` so we can confirm the best setup path.

#### No open case is found for a comment

Remark matches open cases by `SuppliedEmail` and the shopper's last name in `SuppliedName`. Confirm the case is still open and that those fields match the shopper details used in the conversation.

## Salesforce Commerce Cloud

Use the Salesforce Commerce Cloud integration when Remark should sync product catalog data from SFCC. This is separate from Salesforce CRM case actions.

SFCC sync writes into the same Remark product catalog used by agents. If your team is sending product data by API or SFTP instead, use the [Product Import guide](/guides/product-import).

### What Remark syncs from SFCC

Remark reads product IDs through SCAPI Admin APIs, then reads shopper-facing product details through Shopper APIs. Remark can sync:

* Product names, descriptions, URLs, and images
* Master products and variants
* Variant names, SKUs, and pricing
* Inventory data when inventory sync is enabled
* Product metadata that maps to supported Remark product fields

Remark uses Shopper API access for storefront product details and pricing because pricing is not always available through Admin APIs alone.

### SFCC setup requirements

Remark needs:

* An API client configured for SCAPI Admin APIs
* Admin API client ID and secret
* Shopper API client ID and secret
* `SHORT_CODE`
* `ORGANIZATION_ID`
* `siteId`
* `realmId`
* `instanceId`
* Business Manager accounts for the Remark team members supporting the integration
* SLAS Organization Administrator access for those accounts on production and staging

Share credentials through a secure channel. Do not send secrets in plaintext email.

### Create an API client for SCAPI Admin APIs

Follow Salesforce's official instructions for creating an API client in Account Manager. Only the **Create an API Client** step is needed for this part of the setup.

<Card title="Authorization for SCAPI Admin APIs" icon="book" href="https://developer.salesforce.com/docs/commerce/commerce-api/guide/authorization-for-admin-apis.html">
  Salesforce's official guide for creating an API client in Account Manager.
</Card>

Add these scopes to the **Allowed Scopes** field:

* `sfcc.catalogs`
* `sfcc.inventory.availability`
* `sfcc.inventory.impex-inventory`
* `sfcc.inventory.reservations`
* `sfcc.orders`
* `sfcc.products`
* `sfcc.promotions`

### Share SFCC instance values

Remark needs the values used to build SFCC API requests: `SHORT_CODE`, `ORGANIZATION_ID`, `siteId`, `realmId`, and `instanceId`.

<Card title="Where to find ORGANIZATION_ID and SHORT_CODE" icon="book" href="https://developer.salesforce.com/docs/commerce/commerce-api/guide/getting-started.html">
  Salesforce's getting-started guide covers where to locate `ORGANIZATION_ID` and `SHORT_CODE`.
</Card>

### Create Business Manager accounts

Create Business Manager accounts for the Remark team members working on the integration. Your Remark contact will provide the email addresses and any account details required.

### Grant SLAS Organization Administrator access

Grant the same accounts the **SLAS Organization Administrator** role on both production and staging. This gives Remark the Shopper API access needed to validate storefront product data and pricing.

<Card title="SLAS Admin UI: Set Up User Roles and Filters" icon="book" href="https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-admin-ui.html">
  Salesforce's guide to assigning SLAS roles in the Admin UI.
</Card>

### SFCC troubleshooting

#### Admin API authentication fails

Check the Admin API client ID and secret, the SCAPI scopes, `realmId`, and `instanceId`. Authentication failures usually mean the API client is missing the required scopes or is tied to the wrong realm or instance.

#### Shopper API access fails

Check the Shopper API client ID and secret, `SHORT_CODE`, `ORGANIZATION_ID`, `siteId`, and SLAS access. If product details or pricing are missing, confirm the products are available to the site and shopper channel Remark is using.

#### Products are missing after sync

Confirm the products are active and visible in the SFCC site catalog, not only present in a master catalog. Also check that variant products have shopper-facing details and that the site has the expected price books and inventory configuration.

#### Images or product URLs look wrong

Remark uses SFCC product image groups and product URL data when available. If SFCC does not return a storefront URL, Remark falls back to a product URL based on the storefront domain and product ID.

#### Inventory or pricing is missing

Inventory sync depends on SFCC inventory data being available for the product variants. Pricing depends on Shopper API product details for the configured site. If prices appear in Business Manager but not in Remark, check site, currency, price book, and shopper-channel configuration.

## Need help?

Contact `support@remark.ai` with questions about Salesforce CRM setup, Salesforce Commerce Cloud setup, or Salesforce product catalog sync.
