Hoppa till navigering

Salesforce

Anslut dina ElevenLabs-agenter till Salesforce CRM

Översikt

Anslut dina AI-agenter från ElevenLabs till Salesforce CRM för att komma åt kunddata, hantera leads och skapa affärsmöjligheter. Integrationen gör det möjligt för dina agenter att hämta befintliga kundposter, skapa nya leads och kontakter samt fråga Salesforce-objekt under konversationer.

Funktioner

FunktionStöd
Nolllagringsläge (ZRM)Stöds inte
Bilagor i utlösareStöds inte — bilagor i inkommande ärendekommentarer och e-postmeddelanden skickas inte vidare till agenten
Bilagor i verktygStöds inte — verktygen hanterar endast text

Konfiguration

Den här integrationen använder Salesforce OAuth 2.0 Client Credentials för autentisering. Du behöver skapa en External Client App i Salesforce.

1

Skapa en External Client App

  1. Logga in i din Salesforce-organisation som administratör
  2. Gå till Setup > External Client App Manager
  3. Klicka på New External Client App
  4. Fyll i External Client App Name (t.ex. ElevenLabs Agents), API Name och Contact Email
  5. Under API (Enable OAuth Settings):
    • Markera Enable OAuth och Enable Client Credentials Flow
    • Callback URL: https://api.elevenlabs.io/oauth/callback
    • OAuth Start URL: https://api.elevenlabs.io/oauth/start
    • Selected OAuth Scopes: lägg till dessa scopes:
      • Full access (full)
      • Perform requests on your behalf at any time (refresh_token, offline_access)
      • Manage user data via api
  6. Klicka på Create
  7. Öppna fliken Settings på appsidan, gå till OAuth Settings och klicka på Consumer Key and Secret
  8. Kopiera Consumer Key och Consumer Secret — du behöver dem för autentisering
2

Konfigurera OAuth Client Credentials-flödet

Client Credentials Flow rekommenderas för server-till-server-integrationer där ingen användarinteraktion krävs. Kontrollera att din Salesforce-administratör har aktiverat detta flöde.

  1. Klicka på Edit i din External Client App
  2. Markera Enable Client Credentials Flow — fältet Run As visas
  3. Ställ in Run As på din administratörsanvändare eller ett dedikerat tjänstkonto — detta avgör behörigheterna för alla API-anrop
  4. Ställ in Permitted Users på Admin approved users are pre-authorized
  5. Klicka på Save

Användaren i Run As avgör behörigheterna för alla API-anrop. Välj en användare med profilen System Administrator eller en anpassad profil som har API-åtkomst och behörighet till de objekt agenten behöver (Contact, Lead, Account osv.). Behörigheten API Enabled måste vara markerad i användarposten.

3

Hitta din Salesforce-domän

Din Salesforce-domän krävs för API-anrop.

Metod 1: Kontrollera din aktuella URL

När du är inloggad i Salesforce tittar du i webbläsarens adressfält:

  • Lightning Experience: https://acme.lightning.force.com/
  • My Domain: https://acme.my.salesforce.com/

Metod 2: Setup > Company Information

Gå till Setup > Company Information och leta efter URL:en för My Domain eller organisationsinformationen.

Metod 3: Setup > Domain Management

Gå till Setup > Domain Management > My Domain. Din domän visas högst upp på sidan.

Vanliga domänformat:

  • https://acme.my.salesforce.com (My Domain)
  • https://acme.lightning.force.com (Lightning)
  • https://acme.develop.my.salesforce.com (Sandbox)
Använd hela domänen utan avslutande snedstreck.
4

Anslut i ElevenLabs

I ElevenLabs integrationskonfiguration anger du ditt Salesforce-instansvärdnamn (t.ex. acme.my.salesforce.com), Client ID (Consumer Key) och Client Secret (Consumer Secret).

Demovideo

Den här demon använder äldre webhook-verktyg. Om du använder den inbyggda Salesforce-integrationen konfigureras verktygen automatiskt — du behöver inte konfigurera webhookar manuellt.

Demo av Salesforce-integrationen

Så fungerar det

1

Inledande kundförfrågan

Agenten samlar in kundinformation och ställer relevanta frågor för att identifiera kundens verksamhetsbehov och aktuella utmaningar.

2

Sökning efter kunddata

Agenten söker efter befintliga poster med salesforce_search_records för att hitta kontakter, konton eller leads. Den hämtar fullständig information med salesforce_get_record och använder den för att anpassa samtalet.

3

Kvalificering av leads

Om kunden är ny samlar agenten in kontaktuppgifter, bedömer verksamhetsbehoven och avgör lämplig säljprocess eller routning.

4

Skapa post

Agenten skapar lämplig post (lead, kontakt eller affärsmöjlighet) med salesforce_create_record, bekräftar skapandet med kunden och förklarar nästa steg.

Verktygsauktorisering kan hanteras med Workplace Auth Connections, som automatiskt hanterar tokenuppdatering. Verktygen returnerar läsbara namn och beskrivningar i stället för tekniska ID:n för att förbättra samtalskvaliteten.

Verktygskonfigurationer

Tre webhook-verktyg är tillgängliga: salesforce_search_records, salesforce_get_record och salesforce_create_record. Konfigurera auktorisering för vart och ett med en Workplace Auth Connection.

Auktorisering – Workplace OAuth2-anslutning

1

Gå till Workplace Auth Connections

Gå till Agents > Workplace Auth Connections i din ElevenLabs-dashboard och klicka på Add Auth.

2

Konfigurera Salesforce-anslutning

Fyll i följande fält för din Salesforce-integration:

Connection Name: Salesforce CRM

Client ID

  • Din Consumer Key från External Client App
  • Exempel: 3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...

Client Secret

  • Din Consumer Secret från External Client App
  • Exempel: 1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...

Token URL

  • OAuth-tokenändpunkten för din Salesforce-domän
  • Format: https://{domain}.my.salesforce.com/services/oauth2/token
  • Exempel: https://acme.my.salesforce.com/services/oauth2/token

Scopes (valfritt)

  • OAuth-scopes för åtkomst till Salesforce API
  • Rekommenderas: full, api, refresh_token
  • Lämna tomt för att använda standard-scopes från din External Client App

Extra Parameters (JSON)

  • Ytterligare OAuth-parametrar för din konfiguration
  • Exempel för Client Credentials-flödet:
{
"grant_type": "client_credentials"
}
4

Skapa autentiseringsanslutning

Klicka på Create auth connection för att lägga till din konfiguration.

5

Använd i verktygskonfigurationer

När anslutningen har lyckats sparar du den och refererar till den i dina webhook-verktygskonfigurationer under avsnittet Authentication.

Workplace Auth Connections hanterar tokenuppdatering automatiskt, så du behöver inte hantera tokens manuellt.

Konfigurationer för webhook-verktyg

Lägg till en Workplace Auth Connection (OAuth2) till varje verktyg i avsnittet Authentication. Använd flikarna nedan för att granska konfigurationen för varje verktyg.

Namn: salesforce_search_records Beskrivning: Söker efter befintliga poster i Salesforce med SOQL-frågor. Returnerar alltid lättläst information, inklusive namn, inte bara ID:n. Metod: GET URL: https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}

Headers:

  • Content-Type: application/json

Frågeparametrar:

  • q: SOQL-frågesträng (t.ex. “SELECT Id, Name, Email FROM Contact WHERE Email = ‘example@email.com’”)

Verktygs-JSON:

{
"type": "webhook",
"name": "salesforce_search_records",
"description": "Searches for existing records in Salesforce using SOQL queries. Always returns human-readable names and details, not just IDs.",
"api_schema": {
"url": "https://acme.my.salesforce.com/services/data/v58.0/query/",
"method": "GET",
"path_params_schema": [],
"query_params_schema": [
{
"id": "q",
"type": "string",
"description": "SOQL query string to search for records. Always include Name fields and other human-readable information. Example: SELECT Id, Name, Email, Phone, Company FROM Contact WHERE Email = 'customer@example.com'. For Opportunities, include: SELECT Id, Name, StageName, Amount, CloseDate, Account.Name FROM Opportunity",
"dynamic_variable": "",
"constant_value": "",
"required": true,
"value_type": "llm_prompt"
}
],
"request_body_schema": null,
"request_headers": [
{
"type": "value",
"name": "Content-Type",
"value": "application/json"
}
]
},
"response_timeout_secs": 30,
"dynamic_variables": {
"dynamic_variable_placeholders": {}
}
}

Vanliga Salesforce-objekt

ObjektSyfteVanliga fält
LeadPotentiella kunder som ännu inte kvalificeratsFirstName, LastName, Email, Phone, Company, Industry, Status
ContactKvalificerade personer kopplade till kontonFirstName, LastName, Email, Phone, AccountId, Title
AccountOrganisationer eller företagName, Type, Industry, Phone, BillingAddress
OpportunityPågående säljaffärerName, StageName, Amount, CloseDate, AccountId
CaseKundtjänstärendenSubject, Description, Status, Priority, ContactId

Vanliga SOQL-frågor

Använd dessa SOQL-frågor som utgångspunkt när du anpassar agentens systemprompt. Alla frågor returnerar lättläst information i stället för tekniska ID:n:

Sök efter kontakter via e-post

SELECT Id, Name, Email, Phone, Title, Account.Name, Account.Type FROM Contact WHERE Email = 'customer@example.com'

Sök efter leads via e-post eller telefon

SELECT Id, Name, Email, Phone, Company, Industry, Status, LeadSource, Title FROM Lead WHERE Email = 'customer@example.com' OR Phone = '+1234567890'

Sök efter konton via namn

SELECT Id, Name, Type, Industry, Phone, BillingCity, BillingState, Website FROM Account WHERE Name LIKE '%Company Name%'

Sök efter senaste affärsmöjligheter

SELECT Id, Name, StageName, Amount, CloseDate, Account.Name, Account.Type, Owner.Name, Description FROM Opportunity WHERE CreatedDate = THIS_MONTH

Sök efter affärsmöjligheter via konto

SELECT Id, Name, StageName, Amount, CloseDate, Probability, NextStep, Owner.Name FROM Opportunity WHERE Account.Name LIKE '%Company Name%'

Testa integrationen

När du har konfigurerat din External Client App och anslutit integrationen bör du testa den innan du driftsätter i produktion:

  1. Sökfunktion: Be agenten söka efter befintliga kontakter.
  2. Skapa poster: Låt agenten skapa ett nytt lead eller en ny kontakt.
  3. Hämta data: Kontrollera att agenten kan hämta detaljerad kundinformation.

Utlösare för ärendekommentarer: e-postsvar för Email-to-Case

Om du har aktiverat utlösaren Salesforce Case Comment (automatiskt agentsvar på Service Cloud Cases) skickas svar på Cases med minst ett inkommande e-postmeddelande tillbaka till kunden som ett riktigt e-postmeddelande i samma tråd — inte bara som en intern Case Comment. Detta baseras på om Case har ett inkommande e-postmeddelande, inte på Casets picklist-värde Origin, så det fungerar fortfarande korrekt om din organisation använder ett anpassat Origin-värde som “Email - Returns” i stället för det exakta “Email”. Cases utan inkommande e-postmeddelanden publiceras fortfarande som en offentlig Case Comment, utan ändringar. Alla adresser som har CC:ats i kundens ursprungliga e-postmeddelande CC:as också automatiskt i svaret, precis som en mänsklig agents “Reply All” skulle fungera — förutom din organisations Email-to-Case-routningsadress(er), som medvetet undantas från CC så att svaret inte tas in på nytt av Email-to-Case och utlöser agenten för dess eget meddelande.

Att skicka e-postsvar kräver ytterligare konfiguration utöver den som behövs enbart för Case Comments:

  • Användarens profil eller Permission Set i Run As måste ha systembehörigheten Send Email aktiverad (Setup > Users > Profiles, under System Permissions), utöver behörigheten API Enabled som redan krävs för integrationen.
  • Organisationens inställning för Email Deliverability (Setup > Email > Deliverability) måste tillåta extern e-post — Sandboxes har som standard en begränsad inställning som tyst blockerar utgående e-post.
  • Om du vill att svar ska skickas från ett supportalias i stället för Run As-användarens egen inkorg anger du fältet Org-Wide Email Address Id på utlösaren till Id för en Organization-Wide Email Address (Setup > Organization-Wide Addresses > klicka på adressen > kopiera Id från URL:en). Lämna det tomt för att skicka från Run As-användarens egen adress.
  • Ange fältet Email-to-Case Routing Address(es) på utlösaren till organisationens Email-to-Case-adress(er) (kommaseparerade om det finns fler än en, Setup > Email-to-Case). Utan detta försöker integrationen gissa routningsadressen utifrån kundens e-postmeddelande (dess To-adress), vilket missar fall där routningsadressen endast var CC:ad och inte primär mottagare — att CC:a tillbaka den i ett svar i den situationen skulle utlösa agenten för dess eget meddelande.

Om en kunds organisation inte har detta konfigurerat återgår ett misslyckat e-postutskick till att publicera en offentlig Case Comment, så ett svar aldrig tyst tappas — men kunden får det inte via e-post förrän ovanstående har konfigurerats.

Säkerhetsaspekter

  • Använd HTTPS-slutpunkter för alla API-anrop.
  • Se till att korrekt säkerhet på fältnivå är konfigurerad i Salesforce.
  • Behörigheterna för användaren i Run As avgör vilka data integrationen kan komma åt — begränsa dem på lämpligt sätt.
  • Granska regelbundet API-åtkomst och användning.

Användbara länkar