Salesforce
Koppel je ElevenLabs-agents aan Salesforce CRM
Overzicht
Koppel je ElevenLabs AI-agents aan Salesforce CRM om klantgegevens te raadplegen, leads te beheren en kansen te maken. Met deze integratie kunnen je agents bestaande klantrecords ophalen, nieuwe leads en contacten maken en Salesforce-objecten tijdens gesprekken opvragen.
Mogelijkheden
Instellen
Deze integratie gebruikt Salesforce OAuth 2.0 Client Credentials voor authenticatie. Je moet een External Client App maken in Salesforce.
Een External Client App maken
- Log als beheerder in bij je Salesforce-org
- Ga naar Setup > External Client App Manager
- Klik op New External Client App
- Vul de External Client App Name (bijvoorbeeld
ElevenLabs Agents), API Name en Contact Email in - Onder API (Enable OAuth Settings):
- Selecteer Enable OAuth en Enable Client Credentials Flow
- Callback URL:
https://api.elevenlabs.io/oauth/callback - OAuth Start URL:
https://api.elevenlabs.io/oauth/start - Selected OAuth Scopes: voeg deze scopes toe:
- Full access (full)
- Perform requests on your behalf at any time (refresh_token, offline_access)
- Manage user data via api
- Klik op Create
- Open op de app-pagina het tabblad Settings, ga naar OAuth Settings en klik op Consumer Key and Secret
- Kopieer de Consumer Key en Consumer Secret — je hebt deze nodig voor authenticatie
OAuth Client Credentials-flow configureren
De Client Credentials Flow wordt aanbevolen voor server-naar-serverintegraties waarvoor geen gebruikersinteractie nodig is. Zorg dat je Salesforce-beheerder deze flow heeft ingeschakeld.
- Klik in je External Client App op Edit
- Selecteer Enable Client Credentials Flow — er verschijnt een veld Run As
- Stel Run As in op je beheerder of een speciaal serviceaccount — dit bepaalt de rechten voor alle API-aanroepen
- Stel Permitted Users in op Admin approved users are pre-authorized
- Klik op Save
De gebruiker bij Run As bepaalt de rechten voor alle API-aanroepen. Kies een gebruiker met een System Administrator-profiel of een aangepast profiel met API-toegang en rechten voor de objecten die je agent nodig heeft (Contact, Lead, Account enzovoort). De toestemming API Enabled moet zijn geselecteerd in het gebruikersrecord.
Je Salesforce-domein vinden
Je Salesforce-domein is vereist voor API-aanroepen.
Methode 1: Controleer je huidige URL
Kijk in de adresbalk van je browser wanneer je bent ingelogd bij Salesforce:
- Lightning Experience:
https://acme.lightning.force.com/ - My Domain:
https://acme.my.salesforce.com/
Methode 2: Setup > Company Information
Ga naar Setup > Company Information en zoek je URL voor My Domain of de organisatiegegevens.
Methode 3: Setup > Domain Management
Ga naar Setup > Domain Management > My Domain. Je domein staat bovenaan de pagina.
Veelvoorkomende domeinindelingen:
https://acme.my.salesforce.com(My Domain)https://acme.lightning.force.com(Lightning)https://acme.develop.my.salesforce.com(Sandbox)
Demovideo
Deze demo gebruikt verouderde webhooktools. Als je de native Salesforce-integratie gebruikt, worden de tools automatisch geconfigureerd — je hoeft geen webhooks handmatig in te stellen.
Zo werkt het
Overzicht op hoofdlijnen
Gedetailleerde system prompt
Eerste klantvraag
De agent verzamelt klantinformatie en stelt relevante vragen om de zakelijke behoeften en huidige uitdagingen te achterhalen.
Klantgegevens opzoeken
De agent controleert met salesforce_search_records op bestaande records om contacten, accounts of leads te vinden. Met salesforce_get_record haalt de agent alle gegevens op en gebruikt deze informatie om het gesprek te personaliseren.
Toolautorisatie kun je beheren met Workplace Auth Connections, dat tokenvernieuwing automatisch afhandelt. De tools geven leesbare namen en beschrijvingen terug in plaats van technische ID’s, voor betere gesprekskwaliteit.
Toolconfiguraties
Er zijn drie webhooktools beschikbaar: salesforce_search_records, salesforce_get_record en salesforce_create_record. Configureer voor elk de autorisatie met een Workplace Auth Connection.
Autorisatie - Workplace OAuth2-verbinding
Naar Workplace Auth Connections gaan
Ga in je ElevenLabs-dashboard naar Agents > Workplace Auth Connections en klik op Add Auth.
Salesforce-verbinding configureren
Vul voor je Salesforce-integratie de volgende velden in:
Connection Name: Salesforce CRM
Client ID
- Je Consumer Key uit de External Client App
- Voorbeeld:
3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...
Client Secret
- Je Consumer Secret uit de External Client App
- Voorbeeld:
1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...
Token URL
- Het OAuth-tokenendpoint van je Salesforce-domein
- Indeling:
https://{domain}.my.salesforce.com/services/oauth2/token - Voorbeeld:
https://acme.my.salesforce.com/services/oauth2/token
Scopes (optioneel)
- OAuth-scopes voor toegang tot de Salesforce API
- Aanbevolen:
full, api, refresh_token - Laat leeg om de standaardscopes van je External Client App te gebruiken
Extra Parameters (JSON)
- Aanvullende OAuth-parameters die specifiek zijn voor je configuratie
- Voorbeeld voor de Client Credentials-flow:
Workplace Auth Connections handelt tokenvernieuwing automatisch af, dus je hoeft tokens niet handmatig te beheren.
Webhooktoolconfiguraties
Voeg in de sectie Authentication een Workplace Auth Connection (OAuth2) toe aan elke tool. Gebruik de onderstaande tabbladen om de configuratie van elke tool te bekijken.
salesforce_search_records
salesforce_get_record
salesforce_create_record
Naam: salesforce_search_records
Beschrijving: Zoekt met SOQL-query’s naar bestaande records in Salesforce. Geeft altijd leesbare informatie terug, waaronder namen, niet alleen ID’s.
Methode: GET
URL: https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}
Headers:
- Content-Type:
application/json
Queryparameters:
- q: SOQL-querytekenreeks (bijvoorbeeld “SELECT Id, Name, Email FROM Contact WHERE Email = ‘example@email.com’”)
Tool-JSON:
Veelvoorkomende Salesforce-objecten
Veelvoorkomende SOQL-query’s
Gebruik deze SOQL-query’s als uitgangspunt wanneer je de system prompt van je agent aanpast. Alle query’s geven leesbare informatie terug in plaats van technische ID’s:
Contacten zoeken op e-mailadres
Leads zoeken op e-mailadres of telefoonnummer
Accounts zoeken op naam
Recente opportunities zoeken
Opportunities zoeken op account
Integratie testen
Test de integratie nadat je je External Client App hebt ingesteld en de integratie hebt verbonden, voordat je deze in productie neemt:
- Zoekfunctionaliteit: Laat je agent zoeken naar bestaande contacten.
- Record maken: Laat je agent een nieuwe lead of contact maken.
- Gegevens ophalen: Controleer of je agent gedetailleerde klantinformatie kan ophalen.
Trigger voor caseopmerkingen: e-mailantwoorden voor Email-to-Case
Als je de trigger Salesforce Case Comment hebt ingeschakeld (automatisch antwoord van de agent op Service Cloud Cases), worden antwoorden op Cases met minstens één inkomende e-mail als een echte e-mail in dezelfde thread teruggestuurd naar de klant — niet alleen als interne Case Comment. Dit is gebaseerd op de vraag of de Case een inkomende e-mail heeft, niet op de waarde van de keuzelijst Origin van de Case. Daarom werkt dit ook goed als je org een aangepaste Origin-waarde gebruikt, zoals “Email - Returns”, in plaats van de letterlijke waarde “Email”. Cases zonder inkomende e-mail worden ongewijzigd als openbare Case Comment geplaatst. Alle adressen die in de oorspronkelijke e-mail van de klant in de CC staan, worden ook automatisch in de CC van het antwoord gezet, net zoals bij “Reply All” van een menselijke agent — met uitzondering van de Email-to-Case-routeringsadressen van je org. Die worden bewust niet in de CC gezet, zodat het antwoord niet opnieuw door Email-to-Case wordt verwerkt en de agent niet op zijn eigen bericht reageert.
Voor het versturen van e-mailantwoorden is extra configuratie nodig boven op wat alleen voor Case Comments vereist is:
- Het Profile of de Permission Set van de gebruiker bij Run As moet de systeemtoestemming Send Email hebben ingeschakeld (
Setup>Users>Profiles, onder System Permissions), naast de toestemming API Enabled die al vereist is voor de integratie. - De instelling Email Deliverability van je org (
Setup>Email>Deliverability) moet externe e-mail toestaan — Sandboxes gebruiken standaard een beperkte instelling, die uitgaande e-mail stilzwijgend blokkeert. - Als je wilt dat antwoorden vanaf een supportalias komen in plaats van vanuit de eigen mailbox van de gebruiker bij Run As, stel je het veld Org-Wide Email Address Id op de trigger in op de Id van een Organization-Wide Email Address (
Setup>Organization-Wide Addresses> klik op het adres > kopieer de Id uit de URL). Laat dit leeg om vanaf het eigen adres van de gebruiker bij Run As te verzenden. - Stel het veld Email-to-Case Routing Address(es) op de trigger in op de Email-to-Case-adressen van je org (door komma’s gescheiden als er meer dan één is,
Setup>Email-to-Case). Zonder dit probeert de integratie het routeringsadres af te leiden uit de e-mail van de klant (hetTo-adres). Daardoor worden gevallen gemist waarin je routeringsadres alleen in de CC stond in plaats van de primaire ontvanger te zijn — het terug in de CC zetten bij een antwoord zou de agent in die situatie opnieuw op zijn eigen bericht laten reageren.
Als de org van een klant dit niet heeft geconfigureerd, wordt bij een fout tijdens het versturen van een e-mail teruggevallen op het plaatsen van een openbare Case Comment. Zo gaat een antwoord nooit stilzwijgend verloren — maar de klant ontvangt het pas per e-mail nadat je het bovenstaande hebt ingesteld.
Veiligheidsoverwegingen
- Gebruik HTTPS-endpoints voor alle API-aanroepen.
- Zorg dat de juiste beveiliging op veldniveau is geconfigureerd in Salesforce.
- De rechten van de gebruiker bij Run As bepalen tot welke gegevens de integratie toegang heeft — beperk deze passend.
- Controleer API-toegang en -gebruik regelmatig.