Webhooks efter samtal
Få meddelanden via webhooks när samtal avslutas och analysen är klar.
Översikt
Webhooks efter samtal gör att du kan få 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 stöder 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 minimala 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 felorsaker och metadata
Aktivera webhooks efter samtal
Webhooks efter samtal kan aktiveras för alla agenter i din arbetsyta via ElevenAgents inställningssida.

Webhooks efter samtal måste returnera en statuskod på 200 för att räknas som lyckade. Webhooks som misslyckas upprepade gånger inaktiveras automatiskt om det har skett 10 eller fler misslyckanden i följd och den senaste lyckade leveransen var för mer än 7 dagar sedan eller om ingen lyckad leverans någonsin har gjorts.
Webhooks efter samtal kan automatiskt försökas igen om de misslyckas. Se webhook- försök igen.
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:
IP-tillåtelselista
För ytterligare säkerhet kan du lägga till ElevenLabs statiska utgående IP-adresser i din tillåtelselista. Se IP-tillåtelselista för den fullständiga listan över IP-adresser.
Att använda IP-tillåtelselista tillsammans med validering av HMAC-signaturer ger flera säkerhetslager.
Webhook-svarstruktur
ElevenLabs skickar tre olika typer av webhookar efter samtal, var och en med olika datastrukturer:
Transkriptionswebhookar (post_call_transcription)
Innehåller omfattande konversationsdata, inklusive fullständiga transkript, analysresultat och metadata.
Fält på toppnivå
Datastruktur för objektet
Objektet data innehåller:
Ljudwebhookar (post_call_audio)
Innehåller minimala data med hela konversationsljudet som base64-kodad MP3.
Fält på toppnivå
Datastruktur för objektet
Objektet data innehåller endast:
Ljudwebhookar innehåller endast de tre fälten ovan. De innehåller INTE transkriptdata, metadata, analysresultat eller andra konversationsuppgifter.
Webhookar 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 avvisar 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:
Datastruktur för metadataobjektet
Strukturen för objektet metadata varierar beroende på om det utgående samtalet gjordes via Twilio eller via SIP-trunking. Objektet innehåller fältet type, som skiljer de två åt, och fältet body, som innehåller operatörsspecifika uppgifter.
SIP-metadata (type: "sip"):
Objektet body för SIP-metadata innehåller:
Twilio-metadata (type: "twilio"):
Exempel på webhook-payloads
Exempel på transkriptionswebhook
Exempel på ljudwebhook
Exempel på webhookar för misslyckad samtalsinitiering
Exempel på Twilio-metadata
Exempel på SIP-metadata
Leverans av ljudwebhookar
Ljudwebhookar levereras separat från transkriptionswebhookar och innehåller endast de nödvändiga fälten för att identifiera konversationen samt base64-kodade ljuddata.
Ljudwebhookar kan aktiveras eller inaktiveras med reglaget “Skicka ljuddata” i dina webhook- inställningar. Den här inställningen kan konfigureras både på arbetsytenivå (i ElevenAgents-inställningarna) och på agentnivå (i enskilda agenters webhook-åsidosättningar).
Strömmande leverans
Ljudwebhookar levereras som strömmande HTTP-begäranden med headern transfer-encoding: chunked för att effektivt hantera stora ljudfiler. Varje begäran får timeout efter 5 minuter.
Återförsök
När återförsök är aktiverade för webhooken görs återförsök för misslyckade ljudleveranser enligt samma schema som för transkriptionswebhookar. Vid ett återförsök skickas hela ljud-payloaden igen, så deduplicera efter conversation_id. Se återförsök för webhookar för schemat, fel som kan återförsökas och gränser för ljudstorlek.
Bearbeta ljudwebhookar
Eftersom ljudwebhookar levereras via chunked transfer encoding behöver du hantera strömmande data korrekt:
Ljudwebhookar kan vara stora filer, så se till att din webhook-slutpunkt kan hantera strömmande begäranden och har tillräcklig minnes- och lagringskapacitet. Ljudet levereras i MP3-format.
Användningsområden
Automatiserad uppföljning efter samtal
Webhookar efter samtal gör att du kan bygga automatiserade workflows som utlöses direkt när ett samtal avslutas. Här är några praktiska användningsområden:
CRM-integration
Uppdatera ditt CRM-system med konversationsdata så snart ett samtal avslutas:
Tillståndsbaserade konversationer
Behåll konversationskontext mellan flera interaktioner genom att lagra och hämta tillstånd:
- När ett samtal börjar skickar du med ditt användar-id som en dynamisk variabel.
- När ett samtal avslutas konfigurerar du din webhook-slutpunkt 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 den dynamiska variabeln {{previous_topics}}.
- Det skapar en smidig upplevelse där agenten “minns” tidigare interaktioner