Webhooks après appel
Webhooks après appel
Recevez une notification à la fin des appels et une fois l’analyse terminée via des webhooks.
Présentation
Les webhooks après appel vous permettent de recevoir des informations détaillées sur un appel une fois l’analyse terminée. Lorsqu’ils sont activés, ElevenLabs envoie une requête POST à l’endpoint que vous avez indiqué, avec des données complètes sur l’appel.
ElevenLabs prend en charge trois types de webhooks après appel :
- Webhooks de transcription (
post_call_transcription) : contiennent l’ensemble des données de la conversation, notamment les transcriptions, les résultats d’analyse et les métadonnées - Webhooks audio (
post_call_audio) : contiennent un minimum de données avec l’audio encodé en base64 de l’intégralité de la conversation - Webhooks d’échec d’initiation d’appel (
call_initiation_failure) : contiennent des informations sur les tentatives d’initiation d’appel échouées, notamment les raisons de l’échec et les métadonnées
Activer les webhooks après appel
Les webhooks après appel peuvent être activés pour tous les agents de votre Workspace via la page des paramètres d’ElevenAgents.

Les webhooks après appel doivent renvoyer un code d’état 200 pour être considérés comme réussis. Les webhooks qui échouent à plusieurs reprises sont désactivés automatiquement en cas de 10 échecs consécutifs ou plus, si la dernière livraison réussie date de plus de 7 jours ou si aucune livraison n’a jamais réussi.
Les webhooks après appel peuvent faire l’objet de nouvelles tentatives automatiques en cas d’échec. Consultez les nouvelles tentatives de webhook.
Authentification
Il est important que le récepteur valide tous les webhooks entrants. Les webhooks prennent actuellement en charge l’authentification par signatures HMAC. Configurez l’authentification HMAC en :
- Stockant de manière sécurisée le secret partagé généré lors de la création du webhook
- Vérifiant l’en-tête ElevenLabs-Signature dans votre endpoint à l’aide du SDK
Le SDK JavaScript expose constructEvent ; le SDK Python expose construct_event avec rawBody, sig_header et secret (ils ne s’appellent pas payload / signature en Python). Les deux vérifient la signature, valident l’horodatage et analysent la charge utile JSON.
Python
JavaScript
Exemple de gestionnaire de webhook utilisant FastAPI :
Liste d’autorisation d’adresses IP
Pour renforcer la sécurité, vous pouvez ajouter les IP de sortie statiques d’ElevenLabs à votre liste d’autorisation. Consultez la liste d’autorisation d’adresses IP pour obtenir la liste complète des adresses IP.
L’utilisation d’une liste d’autorisation d’adresses IP avec la validation de signature HMAC assure plusieurs couches de sécurité.
Structure des réponses webhook
ElevenLabs envoie trois types distincts de webhooks post-appel, chacun avec une structure de données différente :
Webhooks de transcription (post_call_transcription)
Contient des données complètes sur la conversation, notamment les transcriptions intégrales, les résultats d’analyse et les métadonnées.
Champs de premier niveau
Structure de l’objet de données
L’objet data contient :
Webhooks audio (post_call_audio)
Contient des données minimales avec l’audio complet de la conversation au format MP3 encodé en base64.
Champs de premier niveau
Structure de l’objet de données
L’objet data contient uniquement :
Les webhooks audio contiennent uniquement les trois champs répertoriés ci-dessus. Ils n’incluent PAS les données de transcription, les métadonnées, les résultats d’analyse ni aucun autre détail de la conversation.
Webhooks d’échec d’initiation d’appel (call_initiation_failure)
Contient des informations sur les tentatives d’initiation d’appels téléphoniques, notamment les motifs d’échec et les métadonnées du fournisseur de téléphonie.
Les événements webhook d’échec d’initiation d’appel sont envoyés lorsqu’un appel ne peut pas être initié en raison d’erreurs de connexion, du refus de l’appel par l’utilisateur ou de l’absence de réponse de l’utilisateur. Si un appel est transféré vers la messagerie vocale ou pris par un service automatisé, aucun webhook d’échec d’initiation d’appel n’est envoyé, car l’appel a été initié avec succès.
Champs de premier niveau
Structure de l’objet de données
L’objet data contient :
Structure de l’objet de métadonnées
La structure de l’objet metadata varie selon que l’appel sortant a été effectué via Twilio ou via le trunking SIP. L’objet comprend un champ type qui distingue les deux, ainsi qu’un champ body contenant des informations propres au fournisseur.
Métadonnées SIP (type: "sip") :
L’objet body des métadonnées SIP contient :
Métadonnées Twilio (type: "twilio") :
Exemples de charges utiles webhook
Exemple de webhook de transcription
Exemple de webhook audio
Exemples de webhooks d’échec d’initiation d’appel
Exemple de métadonnées Twilio
Exemple de métadonnées SIP
Livraison des webhooks audio
Les webhooks audio sont envoyés séparément des webhooks de transcription et contiennent uniquement les champs essentiels permettant d’identifier la conversation, ainsi que les données audio encodées en base64.
Vous pouvez activer ou désactiver les webhooks audio à l’aide du bouton « Send audio data » dans les paramètres de votre webhook. Ce paramètre peut être configuré à la fois au niveau du Workspace (dans les paramètres d’ElevenAgents) et au niveau de l’agent (dans les remplacements de webhook propres à chaque agent).
Livraison en streaming
Les webhooks audio sont envoyés sous forme de requêtes HTTP en streaming avec l’en-tête transfer-encoding: chunked, afin de traiter efficacement les fichiers audio volumineux.
Traitement des webhooks audio
Les webhooks audio étant envoyés via un encodage de transfert par segments, vous devez gérer correctement les données en streaming :
Les webhooks audio peuvent contenir des fichiers volumineux. Assurez-vous donc que votre endpoint webhook peut traiter les requêtes en streaming et dispose de capacités de mémoire et de stockage suffisantes. L’audio est envoyé au format MP3.
Cas d’utilisation
Suivis d’appel automatisés
Les webhooks post-appel vous permettent de créer des workflows automatisés qui se déclenchent immédiatement après la fin d’un appel. Voici quelques applications pratiques :
Intégration CRM
Mettez à jour votre système de gestion de la relation client avec les données de conversation dès la fin d’un appel :
Conversations avec état
Conservez le contexte de la conversation entre plusieurs interactions en stockant et en récupérant l’état :
- Au début d’un appel, transmettez votre ID utilisateur en tant que variable dynamique.
- À la fin d’un appel, configurez votre endpoint webhook pour stocker les données de conversation dans votre base de données, à partir de l’ID utilisateur extrait de
dynamic_variables. - Lorsque l’utilisateur appelle à nouveau, vous pouvez récupérer ce contexte et le transmettre à la nouvelle conversation dans une variable dynamique {{previous_topics}}.
- Vous créez ainsi une expérience fluide dans laquelle l’agent « se souvient » des interactions précédentes.