Webhooks efter samtal
Få aviseringar 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 endpoint med omfattande samtalsdata.
ElevenLabs har stöd för tre typer av webhooks efter samtal:
- Transkriptionswebhooks (
post_call_transcription): Innehåller fullständig samtalsdata, inklusive transkript, analysresultat och metadata - Ljudwebhooks (
post_call_audio): Innehåller minimal data med base64-kodat ljud från hela samtalet - 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 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 följd och den senaste lyckade leveransen var för mer än 7 dagar sedan eller aldrig har levererats.
Webhooks efter samtal kan automatiskt försökas igen om de misslyckas. Se webhook- återfö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:
IP-tillåtelselista
För extra 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 lager av säkerhet.
Struktur för webhook-svar
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 minimal 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 transkriptionsdata, 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 misslyckande och metadata från telefonileverantö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 utan problem.
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.
Struktur för metadataobjektet
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 de två åt, och fältet body, som innehåller leverantö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 viktigaste fälten som behövs för att identifiera konversationen, tillsammans med Base64-kodad ljuddata.
Ljudwebhookar kan aktiveras eller inaktiveras med reglaget “Skicka ljuddata” i dina webhook- inställningar. Inställningen kan konfigureras både på arbetsytenivå (i inställningarna för ElevenAgents) och på agentnivå (i enskilda åsidosättningar av agentwebhookar).
Strömmande leverans
Ljudwebhookar levereras som strömmande HTTP-begäranden med rubriken 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 för misslyckade ljudleveranser enligt samma schema som för transkriptionswebhookar. Vid ett nytt försök skickas hela ljud-payloaden igen, så deduplicera efter conversation_id. Se nya webhook-försök för schemat, fel som kan försöka igen och begränsningar för ljudstorlek.
Bearbeta ljudwebhookar
Eftersom ljudwebhookar levereras med chunked transfer encoding måste du hantera strömmande data på rätt sätt:
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ändningsfall
Automatiserad uppföljning av 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-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 webhook-slutpunkt för att lagra konversationsdata i din databas, baserat på användar-id:t som hämtats 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 här ger en sömlös upplevelse där agenten “kommer ihåg” tidigare interaktioner.