Salesforce
Connectez vos agents ElevenLabs à Salesforce CRM
Vue d’ensemble
Connectez vos agents IA ElevenLabs à Salesforce CRM pour accéder aux données client, gérer les leads et créer des opportunités. Cette intégration permet à vos agents de récupérer les fiches client existantes, de créer de nouveaux leads et contacts, et d’interroger les objets Salesforce pendant les conversations.
Fonctionnalités
Configuration
Cette intégration utilise les identifiants client Salesforce OAuth 2.0 pour l’authentification. Vous devez créer une application cliente externe dans Salesforce.
Créer une application cliente externe
- Connectez-vous à votre organisation Salesforce en tant qu’administrateur
- Accédez à Setup > External Client App Manager
- Cliquez sur New External Client App
- Renseignez les champs External Client App Name (par exemple,
ElevenLabs Agents), API Name et Contact Email - Sous API (Enable OAuth Settings) :
- Cochez Enable OAuth et Enable Client Credentials Flow
- Callback URL :
https://api.elevenlabs.io/oauth/callback - OAuth Start URL :
https://api.elevenlabs.io/oauth/start - Selected OAuth Scopes : ajoutez les portées suivantes :
- Full access (full)
- Perform requests on your behalf at any time (refresh_token, offline_access)
- Manage user data via api
- Cliquez sur Create
- Sur la page de l’application, ouvrez l’onglet Settings, accédez à OAuth Settings, puis cliquez sur Consumer Key and Secret
- Copiez la Consumer Key et le Consumer Secret, ils seront nécessaires pour l’authentification
Configurer le flux OAuth Client Credentials
Le flux Client Credentials est recommandé pour les intégrations de serveur à serveur ne nécessitant aucune interaction utilisateur. Vérifiez que votre administrateur Salesforce a activé ce flux.
- Dans votre application cliente externe, cliquez sur Edit
- Cochez Enable Client Credentials Flow, un champ Run As apparaît
- Définissez Run As sur votre utilisateur administrateur ou un compte de service dédié, cela détermine les autorisations pour tous les appels API
- Définissez Permitted Users sur Admin approved users are pre-authorized
- Cliquez sur Save
L’utilisateur Run As détermine les autorisations de tous les appels API. Choisissez un utilisateur doté d’un profil System Administrator ou d’un profil personnalisé ayant accès à l’API et aux objets dont votre agent a besoin (Contact, Lead, Account, etc.). L’autorisation API Enabled doit être cochée dans la fiche utilisateur.
Trouver votre domaine Salesforce
Votre domaine Salesforce est nécessaire pour les appels API.
Méthode 1 : vérifier votre URL actuelle
Lorsque vous êtes connecté à Salesforce, consultez la barre d’adresse de votre navigateur :
- Lightning Experience :
https://acme.lightning.force.com/ - My Domain :
https://acme.my.salesforce.com/
Méthode 2 : Setup > Company Information
Accédez à Setup > Company Information et recherchez l’URL de votre My Domain ou les informations sur votre organisation.
Méthode 3 : Setup > Domain Management
Accédez à Setup > Domain Management > My Domain. Votre domaine s’affiche en haut de la page.
Formats de domaine courants :
https://acme.my.salesforce.com(My Domain)https://acme.lightning.force.com(Lightning)https://acme.develop.my.salesforce.com(Sandbox)
Vidéo de démonstration
Cette démonstration utilise des outils webhook hérités. Si vous utilisez l’intégration Salesforce native, les outils sont configurés automatiquement, aucune configuration manuelle de webhook n’est nécessaire.
Fonctionnement
Vue d'ensemble
Prompt système détaillé
Demande initiale du client
L’agent recueille les informations du client et pose des questions pertinentes pour identifier ses besoins métier et ses difficultés actuelles.
Recherche des données client
L’agent vérifie les fiches existantes avec salesforce_search_records afin de trouver des contacts, comptes ou prospects. Il récupère les informations complètes avec salesforce_get_record et les utilise pour personnaliser la conversation.
L’autorisation des outils peut être gérée avec Workplace Auth Connections, qui assure automatiquement le renouvellement des jetons. Les outils renvoient des noms et des descriptions lisibles plutôt que des identifiants techniques afin d’améliorer la qualité des conversations.
Configurations des outils
Trois outils webhook sont disponibles : salesforce_search_records, salesforce_get_record et salesforce_create_record. Configurez l’autorisation de chacun avec une Workplace Auth Connection.
Autorisation : connexion OAuth2 Workplace
Accéder à Workplace Auth Connections
Dans votre Dashboard ElevenLabs, accédez à Agents > Workplace Auth Connections, puis cliquez sur Add Auth.
Configurer la connexion Salesforce
Renseignez les champs suivants pour votre intégration Salesforce :
Nom de connexion : Salesforce CRM
Client ID
- Votre Consumer Key de l’application cliente externe
- Exemple :
3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...
Client Secret
- Votre Consumer Secret de l’application cliente externe
- Exemple :
1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...
URL du jeton
- Le point de terminaison OAuth de jeton de votre domaine Salesforce
- Format :
https://{domain}.my.salesforce.com/services/oauth2/token - Exemple :
https://acme.my.salesforce.com/services/oauth2/token
Portées (facultatif)
- Portées OAuth pour l’accès à l’API Salesforce
- Recommandé :
full, api, refresh_token - Laissez vide pour utiliser les portées par défaut de votre application cliente externe
Paramètres supplémentaires (JSON)
- Paramètres OAuth supplémentaires propres à votre configuration
- Exemple pour le flux Client Credentials :
Workplace Auth Connections gère automatiquement le renouvellement des jetons, vous n’avez donc pas besoin de les gérer manuellement.
Configurations des outils webhook
Ajoutez une Workplace Auth Connection (OAuth2) à chaque outil dans la section Authentication. Utilisez les onglets ci-dessous pour consulter la configuration de chaque outil.
salesforce_search_records
salesforce_get_record
salesforce_create_record
Nom : salesforce_search_records
Description : Recherche des fiches existantes dans Salesforce à l’aide de requêtes SOQL. Renvoie toujours des informations lisibles, y compris les noms, et pas uniquement des identifiants.
Méthode : GET
URL : https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}
En-têtes :
- Content-Type :
application/json
Paramètres de requête :
- q : chaîne de requête SOQL (par exemple, “SELECT Id, Name, Email FROM Contact WHERE Email = ‘example@email.com’”)
JSON de l’outil :
Objets Salesforce courants
Requêtes SOQL courantes
Utilisez ces requêtes SOQL comme points de départ pour personnaliser le prompt système de votre agent. Toutes les requêtes renvoient des informations lisibles plutôt que des identifiants techniques :
Rechercher des contacts par email
Rechercher des prospects par email ou téléphone
Rechercher des comptes par nom
Rechercher des opportunités récentes
Rechercher des opportunités par compte
Tester l’intégration
Après avoir configuré votre application cliente externe et connecté l’intégration, testez-la avant le déploiement en production :
- Fonction de recherche : demandez à votre agent de rechercher des contacts existants.
- Création de fiche : demandez à votre agent de créer un prospect ou un contact.
- Récupération de données : vérifiez que votre agent peut récupérer des informations client détaillées.
Déclencheur de commentaire de cas : réponses par email pour Email-to-Case
Si vous avez activé le déclencheur Salesforce Case Comment (réponse automatique de l’agent aux cas Service Cloud), les réponses aux cas comportant au moins un email entrant sont renvoyées au client sous la forme d’un véritable email avec fil de discussion, et non uniquement comme commentaire de cas interne. Cela dépend de la présence d’un email entrant dans le cas, et non de la valeur de la liste déroulante Origin du cas. Le fonctionnement reste donc correct si votre organisation utilise une valeur Origin personnalisée telle que « Email - Returns » plutôt que la valeur exacte « Email ». Les cas sans email entrant continuent d’être publiés sous forme de commentaire de cas public, sans modification. Toute adresse mise en copie dans l’email initial du client est également automatiquement mise en copie dans la réponse, comme le ferait la fonction « Répondre à tous » d’un agent humain, à l’exception des adresses de routage Email-to-Case de votre organisation, volontairement exclues de la copie afin que la réponse ne soit pas réintégrée par Email-to-Case et ne redéclenche pas l’agent sur son propre message.
L’envoi de réponses par email nécessite une configuration supplémentaire par rapport aux seuls commentaires de cas :
- Le profil ou l’ensemble d’autorisations de l’utilisateur Run As doit inclure l’autorisation système Send Email (
Setup>Users>Profiles, sous System Permissions), en plus de l’autorisation API Enabled déjà requise pour l’intégration. - Le paramètre Email Deliverability de votre organisation (
Setup>Email>Deliverability) doit autoriser les emails externes. Les Sandboxes utilisent par défaut un paramètre restrictif, qui bloque silencieusement les emails sortants. - Si vous souhaitez que les réponses soient envoyées depuis un alias de support plutôt que depuis la boîte mail de l’utilisateur Run As, définissez le champ Org-Wide Email Address Id du déclencheur sur l’Id d’une Organization-Wide Email Address (
Setup>Organization-Wide Addresses> cliquez sur l’adresse > copiez l’Id depuis l’URL). Laissez ce champ vide pour envoyer depuis l’adresse de l’utilisateur Run As. - Définissez le champ Email-to-Case Routing Address(es) du déclencheur sur les adresses Email-to-Case de votre organisation (séparées par des virgules s’il y en a plusieurs,
Setup>Email-to-Case). Sans cela, l’intégration essaie de deviner l’adresse de routage à partir de l’email du client (son adresseTo), ce qui ne fonctionne pas lorsque votre adresse de routage était seulement en copie plutôt que destinataire principale. La remettre en copie dans une réponse dans ce cas redéclencherait l’agent sur son propre message.
Si l’organisation d’un client n’a pas configuré ces éléments, un échec d’envoi d’email entraîne la publication d’un commentaire de cas public. Ainsi, aucune réponse n’est perdue silencieusement, mais le client ne la recevra pas par email tant que la configuration ci-dessus n’est pas effectuée.
Considérations de sécurité
- Utilisez des points de terminaison HTTPS pour tous les appels API.
- Vérifiez que la sécurité au niveau des champs est correctement configurée dans Salesforce.
- Les autorisations de l’utilisateur Run As déterminent les données auxquelles l’intégration peut accéder, définissez-les de manière appropriée.
- Auditez régulièrement l’accès à l’API et son utilisation.