Webhooks efter samtal
Få aviseringar via webhooks när samtal avslutas och analysen är klar.
Översikt
Webhooks efter samtal gör att du kan ta emot detaljerad information om ett samtal när analysen är klar. När de är aktiverade skickar ElevenLabs en POST-begäran till din angivna slutpunkt med omfattande samtalsdata.
ElevenLabs har stöd för tre typer av webhooks efter samtal:
- Webhooks för transkribering (
post_call_transcription): Innehåller fullständig konversationsdata, inklusive transkriberingar, analysresultat och metadata - Ljudwebhooks (
post_call_audio): Innehåller minimal data med base64-kodat ljud från hela konversationen - Webhooks för misslyckad samtalsinitiering (
call_initiation_failure): Innehåller information om misslyckade försök att initiera samtal, inklusive orsaker till felet och metadata
Aktivera webhooks efter samtal
Webhooks efter samtal kan aktiveras för alla agenter i din arbetsyta via inställningssidan för ElevenAgents.

Webhooks efter samtal måste returnera statuskoden 200 för att räknas som lyckade. Webhooks som misslyckas upprepade gånger inaktiveras automatiskt om det sker 10 eller fler misslyckanden i rad och den senaste lyckade leveransen var för mer än 7 dagar sedan eller om leveransen aldrig har lyckats.
Webhooks efter samtal kan automatiskt försöka igen om de misslyckas. Se nya webhookförsök .
Autentisering
Det är viktigt att mottagaren validerar alla inkommande webhooks. Webhooks har för närvarande stöd för autentisering via HMAC-signaturer. Konfigurera HMAC-autentisering genom att:
- Lagra den delade hemligheten som genereras när webhooken skapas på ett säkert sätt
- Verifiera headern ElevenLabs-Signature i din endpoint med hjälp av SDK:n
JavaScript-SDK:n exponerar constructEvent; Python-SDK:n exponerar construct_event med rawBody, sig_header och secret (dessa heter inte payload / signature i Python). Båda verifierar signaturen, validerar tidsstämpeln och tolkar JSON-payloaden.
Python
JavaScript
Exempel på webhook-hanterare med FastAPI:
Anpassade begärandehuvuden
Utöver validering av HMAC-signaturer kan du inkludera anpassade headers med varje webhookleverans. Det är användbart för att skicka API-nycklar, bearer-token eller andra autentiseringsheaders som din mottagande slutpunkt behöver.
Dashboard
CLI
SDK
Anpassade headers kan för närvarande inte konfigureras via ElevenAgents-dashboarden. Använd SDK:t eller API:t för att ange anpassade headers.
Anpassade headers fungerar tillsammans med HMAC-autentisering. auth_type måste fortfarande vara inställt på hmac,
och anpassade headers skickas utöver headern ElevenLabs-Signature.
Anpassade headers kan bara skrivas. Slutpunkten för att lista webhooks
returnerar inte request_headers i sitt svar, så du kan inte läsa tillbaka vilka headers som
har konfigurerats för en webhook.
Tillåtlistning av IP-adresser
För ökad säkerhet kan du lägga till ElevenLabs statiska utgående IP-adresser i din tillåtlista. Se tillåtlistning av IP-adresser för den fullständiga listan över IP-adresser.
Att använda tillåtlistning av IP-adresser tillsammans med validering av HMAC-signaturer ger flera säkerhetslager.
Åsidosättningar av webhook per agent
Som standard använder alla agenter i din arbetsyta webhooken som har konfigurerats i arbetsytans inställningar. Du kan åsidosätta detta för enskilda agenter för att skicka data efter samtal till olika slutpunkter för olika agenter.
Dashboard
CLI
SDK
post_call_webhook_id måste hänvisa till en webhook som redan finns i din arbetsyta. Du kan också ange vilka händelsetyper som ska skickas med arrayen events:
Struktur för webhooksvar
ElevenLabs skickar tre olika typer av webhooks efter samtal, var och en med olika datastrukturer:
Webhooks för transkribering (post_call_transcription)
Innehåller omfattande konversationsdata, inklusive fullständiga transkriberingar, analysresultat och metadata.
Fält på toppnivå
Datastruktur för objektet
Objektet data innehåller:
Ljudwebhooks (post_call_audio)
Innehåller minimal data med ljudet från hela konversationen som base64-kodad MP3.
Fält på toppnivå
Datastruktur för objektet
Objektet data innehåller endast:
Ljudwebhooks innehåller endast de tre fält som anges ovan. De innehåller INTE transkriberingsdata, metadata, analysresultat eller någon annan konversationsinformation.
Webhooks för misslyckad samtalsinitiering (call_initiation_failure)
Innehåller information om försök att initiera telefonsamtal, inklusive orsaker till fel och metadata från telefonioperatören.
Webhookhändelser för misslyckad samtalsinitiering skickas när ett samtal inte kan initieras på grund av anslutningsfel, att användaren avböjer samtalet eller att användaren inte svarar. Om ett samtal går till röstbrevlådan eller besvaras av en automatiserad tjänst skickas ingen webhook för misslyckad samtalsinitiering, eftersom samtalet initierades korrekt.
Fält på toppnivå
Datastruktur för objektet
Objektet data innehåller:
För utgående samtal via Twilio härleds failure_reason från Twilios CallStatus: busy och no-answer skickas vidare som de är, medan failed rapporteras som unknown. Andra Twilio-samtalsstatusar skickar ingen webhook för misslyckad samtalsinitiering.
Metadatastruktur för objektet
Strukturen för objektet metadata varierar beroende på om det utgående samtalet gjordes via Twilio eller SIP-trunking. Objektet innehåller fältet type, som skiljer mellan de två, och fältet body, som innehåller leverantörsspecifik information.
SIP-metadata (type: "sip"):
Objektet body för SIP-metadata innehåller:
Twilio-metadata (type: "twilio"):
Exempel på webhook-payloads
Exempel på webhook för transkribering
Exempel på ljudwebhook
Exempel på webhooks för misslyckad samtalsinitiering
Exempel på Twilio-metadata
Exempel på SIP-metadata
Leverans av ljudwebhooks
Ljudwebhooks levereras separat från webhooks för transkribering och innehåller bara de viktigaste fälten för att identifiera konversationen samt base64-kodad ljuddata.
Ljudwebhooks kan aktiveras eller inaktiveras med reglaget “Skicka ljuddata” i dina webhookinställningar. Inställningen kan konfigureras både på arbetsytenivå (i ElevenAgents-inställningarna) och på agentnivå (i åsidosättningar av webhook för enskilda agenter).
Strömmande leverans
Ljudwebhooks levereras som strömmande HTTP-begäranden med headern transfer-encoding: chunked för att hantera stora ljudfiler effektivt. Varje begäran får timeout efter 5 minuter.
Nya försök
När nya försök är aktiverade för webhooken görs nya försök med misslyckade ljudleveranser enligt samma schema som för webhooks för transkribering. Ett nytt försök skickar hela ljud-payloaden igen, så deduplicera med conversation_id. Se nya webhookförsök för schemat, fel som kan försökas igen och gränser för ljudstorlek.
Bearbeta ljudwebhooks
Eftersom ljudwebhooks levereras via chunked transfer encoding måste du hantera strömmande data korrekt:
Ljudwebhooks kan vara stora filer, så se till att din webhookslutpunkt kan hantera strömmande begäranden och har tillräcklig minnes- och lagringskapacitet. Ljudet levereras i MP3-format.
Användningsfall
Automatiserad uppföljning av samtal
Webhooks efter samtal gör att du kan skapa automatiserade workflow som utlöses direkt efter att ett samtal avslutas. Här är några praktiska tillämpningar:
CRM-integrering
Uppdatera ditt system för kundrelationshantering med konversationsdata så snart ett samtal är klart:
Tillståndsbaserade konversationer
Behåll konversationskontext mellan flera interaktioner genom att lagra och hämta tillstånd:
- När ett samtal startar skickar du med ditt användar-id som en dynamisk variabel.
- När ett samtal avslutas konfigurerar du din webhookslutpunkt för att lagra konversationsdata i din databas, baserat på användar-id:t som extraherats från dynamic_variables.
- När användaren ringer igen kan du hämta den här kontexten och skicka den till den nya konversationen i en dynamisk variabel,
{{previous_topics}}. - Det skapar en sömlös upplevelse där agenten “minns” tidigare interaktioner.