Vai alla navigazione

Salesforce

Collega i tuoi agenti ElevenLabs a Salesforce CRM

Panoramica

Collega i tuoi agenti IA di ElevenLabs a Salesforce CRM per accedere ai dati dei clienti, gestire lead e creare opportunità. Questa integrazione consente ai tuoi agenti di recuperare i record dei clienti esistenti, creare nuovi lead e contatti e interrogare oggetti Salesforce durante le conversazioni.

Funzionalità

FunzionalitàSupporto
Modalità a conservazione zero (ZRM)Non supportata
Allegati nei triggerNon supportati — gli allegati nei commenti ai casi e nelle email in arrivo non vengono inoltrati all’agente
Allegati negli strumentiNon supportati — gli strumenti operano solo sul testo

Configurazione

Questa integrazione utilizza Salesforce OAuth 2.0 Client Credentials per l’autenticazione. Dovrai creare un’External Client App in Salesforce.

1

Crea un'External Client App

  1. Accedi alla tua organizzazione Salesforce come amministratore
  2. Vai a Setup > External Client App Manager
  3. Fai clic su New External Client App
  4. Compila External Client App Name (ad esempio, ElevenLabs Agents), API Name e Contact Email
  5. In API (Enable OAuth Settings):
    • Seleziona Enable OAuth e Enable Client Credentials Flow
    • Callback URL: https://api.elevenlabs.io/oauth/callback
    • OAuth Start URL: https://api.elevenlabs.io/oauth/start
    • Selected OAuth Scopes: aggiungi questi scope:
      • Full access (full)
      • Perform requests on your behalf at any time (refresh_token, offline_access)
      • Manage user data via api
  6. Fai clic su Create
  7. Nella pagina dell’app, apri la scheda Settings, vai a OAuth Settings e fai clic su Consumer Key and Secret
  8. Copia Consumer Key e Consumer Secret: ti serviranno per l’autenticazione
2

Configura il flusso OAuth Client Credentials

Il flusso Client Credentials è consigliato per integrazioni server-to-server che non richiedono l’interazione dell’utente. Assicurati che l’amministratore Salesforce abbia abilitato questo flusso.

  1. Nella tua External Client App, fai clic su Edit
  2. Seleziona Enable Client Credentials Flow: verrà visualizzato il campo Run As
  3. Imposta Run As sul tuo utente amministratore o su un account di servizio dedicato: questo determina le autorizzazioni per tutte le chiamate API
  4. Imposta Permitted Users su Admin approved users are pre-authorized
  5. Fai clic su Save

L’utente Run As determina le autorizzazioni per tutte le chiamate API. Scegli un utente con un profilo System Administrator o un profilo personalizzato che disponga dell’accesso API e delle autorizzazioni per gli oggetti necessari al tuo agente (Contact, Lead, Account ecc.). L’autorizzazione API Enabled deve essere selezionata nel record dell’utente.

3

Trova il tuo dominio Salesforce

Il dominio Salesforce è necessario per le chiamate API.

Metodo 1: controlla l’URL corrente

Dopo aver effettuato l’accesso a Salesforce, guarda la barra degli indirizzi del browser:

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

Metodo 2: Setup > Company Information

Vai a Setup > Company Information e cerca l’URL My Domain o le informazioni sull’organizzazione.

Metodo 3: Setup > Domain Management

Vai a Setup > Domain Management > My Domain. Il tuo dominio verrà mostrato nella parte superiore della pagina.

Formati di dominio comuni:

  • https://acme.my.salesforce.com (My Domain)
  • https://acme.lightning.force.com (Lightning)
  • https://acme.develop.my.salesforce.com (Sandbox)
Usa il dominio completo senza barra finale.
4

Connetti in ElevenLabs

Nella configurazione dell’integrazione ElevenLabs, inserisci l’hostname dell’istanza Salesforce (ad esempio, acme.my.salesforce.com), il Client ID (Consumer Key) e il Client Secret (Consumer Secret).

Video dimostrativo

Questa demo utilizza strumenti webhook legacy. Se utilizzi l’integrazione Salesforce nativa, gli strumenti vengono configurati automaticamente: non è necessaria alcuna configurazione manuale dei webhook.

Demo dell'integrazione Salesforce

Come funziona

1

Richiesta iniziale del cliente

L’agente raccoglie le informazioni del cliente e pone domande pertinenti per identificare le sue esigenze aziendali e le sfide attuali.

2

Ricerca dei dati del cliente

L’agente verifica l’esistenza di record usando salesforce_search_records per trovare contatti, account o lead. Recupera tutti i dettagli con salesforce_get_record e usa queste informazioni per personalizzare la conversazione.

3

Qualificazione del lead

Se il cliente è nuovo, l’agente raccoglie le informazioni di contatto, valuta le sue esigenze aziendali e determina il processo di vendita o l’instradamento più adatto.

4

Creazione del record

L’agente crea il record appropriato (lead, contatto o opportunità) usando salesforce_create_record, ne conferma la creazione al cliente e spiega i passaggi successivi.

L’autorizzazione degli strumenti può essere gestita tramite Workplace Auth Connections, che gestisce il rinnovo dei token automaticamente. Gli strumenti restituiscono nomi e descrizioni leggibili invece di ID tecnici per migliorare la qualità delle conversazioni.

Configurazioni degli strumenti

Sono disponibili tre strumenti webhook: salesforce_search_records, salesforce_get_record e salesforce_create_record. Configura l’autorizzazione per ciascuno tramite una Workplace Auth Connection.

Autorizzazione - connessione OAuth2 Workplace

1

Vai a Workplace Auth Connections

Nella dashboard di ElevenLabs, vai a Agents > Workplace Auth Connections e fai clic su Add Auth.

2

Configura la connessione Salesforce

Compila i seguenti campi per l’integrazione Salesforce:

Nome della connessione: Salesforce CRM

Client ID

  • La Consumer Key della tua External Client App
  • Esempio: 3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...

Client Secret

  • Il Consumer Secret della tua External Client App
  • Esempio: 1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...

URL del token

  • L’endpoint OAuth per il token del tuo dominio Salesforce
  • Formato: https://{domain}.my.salesforce.com/services/oauth2/token
  • Esempio: https://acme.my.salesforce.com/services/oauth2/token

Scope (facoltativi)

  • Scope OAuth per l’accesso alle API Salesforce
  • Consigliati: full, api, refresh_token
  • Lascia vuoto per utilizzare gli scope predefiniti della tua External Client App

Parametri aggiuntivi (JSON)

  • Parametri OAuth aggiuntivi specifici della tua configurazione
  • Esempio per il flusso Client Credentials:
{
"grant_type": "client_credentials"
}
4

Crea una connessione di autenticazione

Fai clic su Create auth connection per aggiungere la configurazione.

5

Utilizza nelle configurazioni degli strumenti

Quando la connessione è stata stabilita, salvala e utilizzala nelle configurazioni degli strumenti webhook nella sezione Authentication.

Workplace Auth Connections gestisce automaticamente il rinnovo dei token, quindi non devi gestire manualmente i token.

Configurazioni degli strumenti webhook

Aggiungi una Workplace Auth Connection (OAuth2) a ogni strumento nella sezione Authentication. Usa le schede seguenti per consultare la configurazione di ogni strumento.

Nome: salesforce_search_records Descrizione: Cerca record esistenti in Salesforce utilizzando query SOQL. Restituisce sempre informazioni leggibili, inclusi i nomi, non solo gli ID. Metodo: GET URL: https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}

Header:

  • Content-Type: application/json

Parametri query:

  • q: stringa di query SOQL (ad esempio, “SELECT Id, Name, Email FROM Contact WHERE Email = ‘example@email.com’”)

JSON dello strumento:

{
"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": {}
}
}

Oggetti Salesforce comuni

OggettoScopoCampi comuni
LeadPotenziali clienti non ancora qualificatiFirstName, LastName, Email, Phone, Company, Industry, Status
ContactPersone qualificate associate agli accountFirstName, LastName, Email, Phone, AccountId, Title
AccountOrganizzazioni o aziendeName, Type, Industry, Phone, BillingAddress
OpportunityTrattative di vendita in corsoName, StageName, Amount, CloseDate, AccountId
CaseRichieste di assistenza clientiSubject, Description, Status, Priority, ContactId

Query SOQL comuni

Usa queste query SOQL come punto di partenza per personalizzare il system prompt del tuo agente. Tutte le query restituiscono informazioni leggibili anziché ID tecnici:

Cerca contatti per email

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

Cerca lead per email o telefono

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

Cerca account per nome

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

Cerca opportunità recenti

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

Cerca opportunità per account

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

Test dell’integrazione

Dopo aver configurato l’External Client App e connesso l’integrazione, esegui un test prima della distribuzione in produzione:

  1. Funzione di ricerca: chiedi al tuo agente di cercare contatti esistenti.
  2. Creazione di record: fai creare al tuo agente un nuovo lead o contatto.
  3. Recupero dei dati: verifica che il tuo agente possa recuperare informazioni dettagliate sui clienti.

Trigger dei commenti ai casi: risposte email per Email-to-Case

Se hai abilitato il trigger Salesforce Case Comment (risposta automatica dell’agente ai casi di Service Cloud), le risposte ai casi con almeno un’email in arrivo vengono inviate al cliente come email reali all’interno della conversazione, non soltanto come commenti interni al caso. Questo si basa sulla presenza di un’email in arrivo nel caso, non sul valore dell’elenco di selezione Origin del caso; pertanto continua a funzionare correttamente anche se la tua organizzazione usa un valore Origin personalizzato come “Email - Returns” anziché il valore letterale “Email”. I casi senza email in arrivo continuano a essere pubblicati come commento pubblico al caso, senza modifiche. Anche gli indirizzi in CC nell’email originale del cliente vengono automaticamente inclusi in CC nella risposta, proprio come farebbe un operatore umano con “Reply All”, ad eccezione degli indirizzi di instradamento Email-to-Case della tua organizzazione, che vengono deliberatamente esclusi dalla CC affinché la risposta non venga nuovamente acquisita da Email-to-Case e non riattivi l’agente sul proprio messaggio.

L’invio delle risposte email richiede una configurazione aggiuntiva rispetto a quella necessaria per i soli commenti ai casi:

  • Il profilo o il Permission Set dell’utente Run As deve avere abilitata l’autorizzazione di sistema Send Email (Setup > Users > Profiles, in System Permissions), oltre all’autorizzazione API Enabled già richiesta per l’integrazione.
  • L’impostazione Email Deliverability della tua organizzazione (Setup > Email > Deliverability) deve consentire email esterne: per impostazione predefinita, le Sandbox usano un’impostazione con restrizioni che blocca silenziosamente le email in uscita.
  • Se vuoi che le risposte provengano da un alias di assistenza anziché dalla casella di posta dell’utente Run As, imposta il campo Org-Wide Email Address Id del trigger sull’Id di un Organization-Wide Email Address (Setup > Organization-Wide Addresses > fai clic sull’indirizzo > copia l’Id dall’URL). Lascialo vuoto per inviare dall’indirizzo dell’utente Run As.
  • Imposta il campo Email-to-Case Routing Address(es) del trigger sugli indirizzi Email-to-Case della tua organizzazione (separati da virgole se sono più di uno, Setup > Email-to-Case). Senza questa impostazione, l’integrazione prova a dedurre l’indirizzo di instradamento dall’email del cliente (il relativo indirizzo To), ma non rileva i casi in cui l’indirizzo di instradamento era solo in CC anziché il destinatario principale. In quella situazione, reinserirlo in CC in una risposta riattiverebbe l’agente sul proprio messaggio.

Se l’organizzazione di un cliente non ha configurato questi elementi, un errore nell’invio dell’email pubblica un commento pubblico al caso come fallback, così una risposta non viene mai persa silenziosamente; tuttavia, il cliente non la riceverà via email finché la configurazione sopra descritta non sarà completata.

Considerazioni sulla sicurezza

  • Usa endpoint HTTPS per tutte le chiamate API.
  • Assicurati che in Salesforce sia configurata una sicurezza corretta a livello di campo.
  • Le autorizzazioni dell’utente Run As determinano a quali dati può accedere l’integrazione: definiscine adeguatamente l’ambito.
  • Verifica regolarmente l’accesso e l’utilizzo delle API.