When to use it
Connect Salesforce when Salesforce is your system of record and you want your agents to work from it without anyone copying data between tools. It’s the right choice when you want to:- Call or text people who already exist in Salesforce. Contacts sync into Retell automatically, so your agent greets callers by name and knows their account details instead of asking for them.
- Keep Salesforce current without manual data entry. Analysis results from each conversation (qualification status, stated preferences, a corrected email address) write back to the Contact record.
- Give your sales team call history where they already work. Each call and chat lands on the Contact’s activity timeline as a Task, with the summary and duration.
- Let the agent act on Salesforce directly. Integration tools identify the caller by number, read their opportunities and cases, create a Lead when a new prospect calls in, and update records the caller corrects.
Prerequisites
- A Salesforce edition with API access: Enterprise, Unlimited, Developer, or Performance. Professional needs Salesforce’s paid API add-on; Essentials has no API access at all.
- System Administrator permissions in Salesforce, or a role that can create External Client Apps.
- A Salesforce user to run the integration as. Use a dedicated integration user rather than a person’s account, so the connection doesn’t break when someone changes roles or leaves.
Step 1: Create an External Client App
Open the External Client App Manager
The External Client App Manager in Setup.
Fill in the basic information
- External Client App Name — a descriptive name, for example
Retell AI. - API Name — auto-filled from the name; leave it as is.
- Contact Email — your admin email address.
Local. The app only needs to work inside your own org.Step 2: Enable OAuth and the client credentials flow
Enable OAuth settings
Set a callback URL
Select OAuth scopes
- Manage user data via APIs (api) — the only scope Retell requires. It covers every REST and SOQL call Retell makes.
- Perform requests at any time (refresh_token, offline_access) — optional. The client credentials flow doesn’t issue refresh tokens, so this changes nothing for Retell, but it’s harmless if your org adds it by default.
full out of the tokens it issues, and since Salesforce’s Winter ‘26 release, a token request whose selected scopes are all unsupported is rejected with invalid_grant: no valid scopes defined.Enable the client credentials flow
The Flow Enablement section on the creation screen. This capture predates the scope guidance above: select Manage user data via APIs (api), not Full access.
Create the app
Step 3: Copy the consumer key and secret
Open the app's Settings tab
The Consumer Key and Secret link on the app's Settings tab.
Store both values
- Consumer Key — Retell’s Client ID.
- Consumer Secret — Retell’s Client Secret.
Step 4: Set the Run As user
The client credentials flow has no logged-in user, so Salesforce needs to know whose permissions to apply. Every read and write Retell makes runs as this user.Open the Policies tab
Enable the flow and pick the user
The app's Policies tab with the client credentials flow bound to a Run As user.
Confirm the user's permissions
- API Enabled on the user’s profile or a permission set. Without it, every API call is refused.
- Read on Contact and on every field you plan to import.
- Edit on Contact and on every field you plan to write back, if you enable outbound sync.
- Create on Task, if you enable activity logging or the Create Task tool.
- For the integration tools you plan to use: Read on Lead, Account, Opportunity, Case, and User; Edit on Contact, Lead, and Account for the update tools; Create on Lead; and the same permissions on any custom object you configure a tool for. Creating a Note needs Edit on the record it attaches to, since Notes take their access from the parent record.
Save
Step 5: Connect Salesforce in Retell
Add the connection
Enter your credentials
The Salesforce connection dialog: instance URL plus the External Client App's credentials.
Connect and confirm
Verify it worked
Troubleshooting
Connecting fails right after I created the app
Connecting fails right after I created the app
Retell rejects my instance URL
Retell rejects my instance URL
.lightning.force.com) and bare .salesforce.com URLs are rejected.The connection shows an error after working for a while
The connection shows an error after working for a while
INVALID_SESSION_ID. The usual causes are a rotated consumer secret, a deactivated Run As user, or the app being deleted or disabled in Salesforce. Reconnect with current credentials.Requests are blocked by IP restrictions
Requests are blocked by IP restrictions
I need to rotate the consumer secret
I need to rotate the consumer secret
FAQ
Can I connect more than one Salesforce org?
Can I connect more than one Salesforce org?






