Connect your ElevenLabs AI agents with Salesforce CRM to access customer data, manage leads, and create opportunities. This integration enables your agents to retrieve existing customer records, create new leads and contacts, and query Salesforce objects during conversations.
This integration uses Salesforce OAuth 2.0 Client Credentials for authentication. You will need to create an External Client App in Salesforce.
ElevenLabs Agents), API Name, and Contact Emailhttps://api.elevenlabs.io/oauth/callbackhttps://api.elevenlabs.io/oauth/startThe Client Credentials Flow is recommended for server-to-server integrations where no user interaction is required. Ensure your Salesforce admin has enabled this flow.
The Run As user determines the permissions for all API calls. Choose a user with a System Administrator profile or a custom profile that has API access and permission to the objects your agent needs (Contact, Lead, Account, etc.). The API Enabled permission must be checked on the user record.
Your Salesforce domain is required for API calls.
Method 1: Check your current URL
When logged into Salesforce, look at your browser’s address bar:
https://acme.lightning.force.com/https://acme.my.salesforce.com/Method 2: Setup > Company Information
Go to Setup > Company Information and look for your My Domain URL or Organization information.
Method 3: Setup > Domain Management
Go to Setup > Domain Management > My Domain. Your domain will be shown at the top of the page.
Common domain formats:
https://acme.my.salesforce.com (My Domain)https://acme.lightning.force.com (Lightning)https://acme.develop.my.salesforce.com (Sandbox)This demo uses legacy webhook tools. If you’re using the native Salesforce integration, the tools are configured automatically — no manual webhook setup is needed.
The agent gathers customer information and asks relevant questions to identify their business requirements and current challenges.
The agent checks for existing records using salesforce_search_records to find contacts, accounts, or leads. It retrieves full details with salesforce_get_record and uses this information to personalize the conversation.
Tool authorization can be managed using Workplace Auth Connections, which handles token refresh automatically. The tools return human-readable names and descriptions rather than technical IDs to improve conversation quality.
Three webhook tools are available: salesforce_search_records, salesforce_get_record, and salesforce_create_record. Configure authorization for each using a Workplace Auth Connection.
Fill in the following fields for your Salesforce integration:
Connection Name: Salesforce CRM
Client ID
3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...Client Secret
1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...Token URL
https://{domain}.my.salesforce.com/services/oauth2/tokenhttps://acme.my.salesforce.com/services/oauth2/tokenScopes (optional)
full, api, refresh_tokenExtra Parameters (JSON)
Workplace Auth Connections handles token refresh automatically, so you do not need to manage tokens manually.
Add a Workplace Auth Connection (OAuth2) to each tool in the Authentication section. Use the tabs below to review each tool’s configuration.
Name: salesforce_search_records
Description: Searches for existing records in Salesforce using SOQL queries. Always returns human-readable information including Names, not just IDs.
Method: GET
URL: https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}
Headers:
application/jsonQuery Parameters:
Tool JSON:
Use these SOQL queries as starting points when customizing your agent’s system prompt. All queries return human-readable information rather than technical IDs:
After setting up your External Client App and connecting the integration, test it before deploying to production: