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

# Salesforce

> Connect Salesforce to Concord through Salesforce's hosted MCP server.

Salesforce connects to Concord as a **Custom MCP** connector. Concord talks to Salesforce's hosted MCP server and authenticates with OAuth 2.1, using an External Client App that you create in your Salesforce org.

<Card title="Open Connectors" icon="plug" href="https://app.concord.ad/settings/connectors" horizontal>
  Add a Custom MCP from Settings → Connectors.
</Card>

The setup has four parts:

1. Create an External Client App in Salesforce
2. Configure its OAuth settings
3. Add the Salesforce credentials to a Custom MCP in Concord
4. Authorize the connection

<Note>
  You need Salesforce permissions to manage External Client Apps in your org, and the org must have access to Salesforce hosted MCP servers. Salesforce's own guide, [Create an External Client App for MCP](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/create-external-client-app.html), covers the Salesforce side in detail.
</Note>

## 1. Create an External Client App in Salesforce

<Steps>
  <Step title="Open External Client App Manager">
    In Salesforce, open **Setup** and search for **External Client App Manager**, or go to **Apps → External Client Apps → External Client App Manager**.

    You can also open it directly, replacing the domain with your org's My Domain:

    ```
    https://YOUR_SALESFORCE_DOMAIN/lightning/setup/ManageExternalClientApplication/home
    ```
  </Step>

  <Step title="Create the app">
    Click **New External Client App** and name it:

    ```
    Concord
    ```
  </Step>
</Steps>

## 2. Configure OAuth

Enable OAuth for the External Client App, then set the callback URL and scopes.

<Steps>
  <Step title="Set the callback URL">
    Use exactly:

    ```
    https://api.concord.ad/integrations/mcp/callback
    ```
  </Step>

  <Step title="Add the OAuth scopes">
    Add both of these scopes:

    * **Perform requests at any time** (`refresh_token, offline_access`)
    * **Access Salesforce hosted MCP servers** (`mcp_api`)
  </Step>
</Steps>

## 3. Configure the authorization flow

The connection uses Authorization Code with PKCE.

<Steps>
  <Step title="Enable the flow">
    Under **Flow Enablement**, enable **Authorization Code and Credentials Flow**.
  </Step>

  <Step title="Require PKCE">
    Under **Security**, make sure **Require Proof Key for Code Exchange (PKCE) extension for Supported Authorization Flows** is enabled.
  </Step>

  <Step title="Save">
    Save the External Client App.
  </Step>
</Steps>

## 4. Get the Consumer Key and Secret

Open the **Concord** External Client App and go to **Settings → OAuth Settings → Consumer Key and Secret**.

Retrieve both values:

* **Consumer Key**
* **Consumer Secret**

You will enter them in Concord in the next step.

## 5. Create the Custom MCP in Concord

In Concord, go to **Settings → Connectors** and add a new **Custom MCP**. Configure it as follows:

| Field               | Value                                                              |
| ------------------- | ------------------------------------------------------------------ |
| Name                | `Salesforce`                                                       |
| URL                 | `https://api.salesforce.com/platform/mcp/v1/platform/headless-360` |
| Transport           | `HTTP (Streamable)`                                                |
| Authentication      | `OAuth 2.1`                                                        |
| OAuth Client ID     | The Salesforce **Consumer Key**                                    |
| OAuth Client Secret | The Salesforce **Consumer Secret**                                 |
| Custom headers      | None                                                               |

Make sure **Enabled** is checked, then click **Add connector**.

<Info>
  Salesforce requires a pre-registered client, so the Client ID and Client Secret fields are mandatory here. Leaving them empty would make Concord attempt automatic registration, which Salesforce does not support.
</Info>

## 6. Connect

Once the connector is saved:

<Steps>
  <Step title="Open the connector">
    Open the Salesforce connector in Concord.
  </Step>

  <Step title="Start the authorization">
    Click **Connect**. Concord discovers the Salesforce authorization server and starts the OAuth flow with PKCE.
  </Step>

  <Step title="Authorize in Salesforce">
    Sign in to Salesforce if prompted, then authorize the **Concord** application.
  </Step>
</Steps>

When authorization completes, the Salesforce MCP is connected and its tools are available in Concord.

## Configuration reference

### Salesforce

| Setting                  | Value                                              |
| ------------------------ | -------------------------------------------------- |
| External Client App name | `Concord`                                          |
| Callback URL             | `https://api.concord.ad/integrations/mcp/callback` |
| OAuth scopes             | `refresh_token, offline_access` and `mcp_api`      |
| Authorization            | Authorization Code + PKCE                          |

### Concord

| Setting             | Value                                                              |
| ------------------- | ------------------------------------------------------------------ |
| Name                | `Salesforce`                                                       |
| URL                 | `https://api.salesforce.com/platform/mcp/v1/platform/headless-360` |
| Transport           | `HTTP (Streamable)`                                                |
| Authentication      | `OAuth 2.1`                                                        |
| OAuth Client ID     | Salesforce Consumer Key                                            |
| OAuth Client Secret | Salesforce Consumer Secret                                         |

## Useful links

* [Create an External Client App for MCP](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/create-external-client-app.html) — Salesforce's official guide
* External Client App Manager in your org: `https://YOUR_SALESFORCE_DOMAIN/lightning/setup/ManageExternalClientApplication/home`

## Related

[Connectors overview](/integrations/integrations-overview)
