Salesforce
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à
Configurazione
Questa integrazione utilizza Salesforce OAuth 2.0 Client Credentials per l’autenticazione. Dovrai creare un’External Client App in Salesforce.
Crea un'External Client App
- Accedi alla tua organizzazione Salesforce come amministratore
- Vai a Setup > External Client App Manager
- Fai clic su New External Client App
- Compila External Client App Name (ad esempio,
ElevenLabs Agents), API Name e Contact Email - 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
- Fai clic su Create
- Nella pagina dell’app, apri la scheda Settings, vai a OAuth Settings e fai clic su Consumer Key and Secret
- Copia Consumer Key e Consumer Secret: ti serviranno per l’autenticazione
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.
- Nella tua External Client App, fai clic su Edit
- Seleziona Enable Client Credentials Flow: verrà visualizzato il campo Run As
- Imposta Run As sul tuo utente amministratore o su un account di servizio dedicato: questo determina le autorizzazioni per tutte le chiamate API
- Imposta Permitted Users su Admin approved users are pre-authorized
- 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.
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)
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.
Come funziona
Panoramica
System prompt dettagliato
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.
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.
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
Vai a Workplace Auth Connections
Nella dashboard di ElevenLabs, vai a Agents > Workplace Auth Connections e fai clic su Add Auth.
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:
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.
salesforce_search_records
salesforce_get_record
salesforce_create_record
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:
Oggetti Salesforce comuni
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
Cerca lead per email o telefono
Cerca account per nome
Cerca opportunità recenti
Cerca opportunità per account
Test dell’integrazione
Dopo aver configurato l’External Client App e connesso l’integrazione, esegui un test prima della distribuzione in produzione:
- Funzione di ricerca: chiedi al tuo agente di cercare contatti esistenti.
- Creazione di record: fai creare al tuo agente un nuovo lead o contatto.
- 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 indirizzoTo), 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.