# Get Started with Conversation Data API

Use the Conversation Data API to manage enhanced messaging conversations, such as retrieving conversation entry data and deleting messaging end user information.

## Enable Conversation Data API

1. From Setup, in the Quick Find box, enter Conversation Service API, and click **Conversation Service API**.
2. Click the toggle to **On**.

## Configure an External Client App

1. Configure an [External Client App](https://help.salesforce.com/s/articleView?id=xcloud.external_client_apps.htm) and [Enable OAuth Settings for API Integration](https://help.salesforce.com/s/articleView?id=xcloud.connected_app_create_api_integration.htm).
   1. From Setup, enter `App` in the Quick Find box, and select **External Client App Manager**.
   2. Click **New External Client App**.
   3. Enter the external client app name, API name, and contact email fields.
   4. For distribution state, select **Local**.
   5. In the OAuth Settings area of the page, select **Enable OAuth**.
   6. For callback URL, enter any valid URL. For example: `https://login.salesforce.com/services/oauth2/success`.
   7. For OAuth scopes, select **Access the Salesforce API Platform (sfap_api)**.
   8. Enable **Enable Client Credentials Flow**.
   9. Disable **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**.
   10. Disable **Require Secret for Web Server**.
   11. Disable **Require Secret for Refresh Token**.
   12. Enable **Issue JSON Web Token (JWT)-based access tokens for named users**.
   13. Save the new external client app.
2. [Configure External Client App OAuth Policies](https://help.salesforce.com/s/articleView?id=xcloud.configure_external_client_app_policies.htm).
   1. Navigate to the **Policies** tab of your newly created external client app, expand the **OAuth Policies** dropdown, and click **Edit**.
   2. Enable **Enable Client Credentials Flow**.
   3. To allow Salesforce to return access tokens, you must select an execution user for the flow. This user must have the API Only User permission. We recommend creating a user specifically for this integration. Set **Run As** to select the user that you want to assign the client credentials flow.
   4. Under **Named User JWT-Based Access Token Settings**, select a token timeout time that meets your needs.
   5. (Optional) Under **App Authorization**, relax IP restrictions if your integration is calling from outside trusted Salesforce IP ranges.
   6. Save your changes.
3. Retrieve Your Credentials.
   1. Navigate to the **Settings** tab of your external client app, expand the OAuth Settings dropdown and click **Consumer Key and Secret**.
   2. Copy your **Consumer Key** (client ID) and **Consumer Secret**.
4. Use the Consumer Key and Consumer Secret to follow the steps outlined in [OAuth 2.0 Client Credentials Flow for Server-to-Server Integration](https://help.salesforce.com/s/articleView?id=xcloud.remoteaccess_oauth_client_credentials_flow.htm) to obtain an access token.

## Call Conversation Data API

Use the access token you generated to call the Conversation Data API by setting the Authorization header to `Bearer YOUR_ACCESS_TOKEN`.

You can also call the delete operations from Salesforce Flow or Apex, which handle authentication for you and don't require an External Client App. See [Delete Conversation Data with Flow or Apex](/docs/service/conversation-data-api/guide/delete-with-flow-and-apex.md).

See Also

[External Client Apps](https://help.salesforce.com/s/articleView?id=xcloud.external_client_apps.htm)
