Webhooki po rozmowie
Otrzymuj powiadomienia przez webhooki, gdy rozmowy się zakończą i analiza będzie gotowa.
Omówienie
Webhooki po rozmowie pozwalają otrzymywać szczegółowe informacje o rozmowie po zakończeniu analizy. Po włączeniu ElevenLabs wyśle żądanie POST do wskazanego endpointu z pełnymi danymi rozmowy.
ElevenLabs obsługuje trzy rodzaje webhooków po rozmowie:
- Webhooki transkrypcji (
post_call_transcription): zawierają pełne dane rozmowy, w tym transkrypcje, wyniki analizy i metadane - Webhooki audio (
post_call_audio): zawierają minimalne dane oraz zakodowane w base64 audio całej rozmowy - Webhooki nieudanej inicjacji rozmowy (
call_initiation_failure): zawierają informacje o nieudanych próbach inicjacji rozmowy, w tym przyczyny niepowodzenia i metadane
Włączanie webhooków po rozmowie
Webhooki po rozmowie możesz włączyć dla wszystkich agentów w obszarze roboczym na stronie ustawień ElevenAgents.

Aby webhook po rozmowie został uznany za udany, musi zwrócić kod statusu 200. Webhooki, które wielokrotnie zawodzą, są automatycznie wyłączane, jeśli wystąpiło co najmniej 10 kolejnych błędów, a ostatnie udane dostarczenie miało miejsce ponad 7 dni temu lub nigdy nie zostało pomyślnie dostarczone.
Webhooki po rozmowie mogą być automatycznie ponawiane po niepowodzeniu. Zobacz ponawianie webhooków .
Uwierzytelnianie
Ważne, by odbiornik weryfikował wszystkie przychodzące webhooki. Webhooki obecnie obsługują uwierzytelnianie za pomocą podpisów HMAC. Aby skonfigurować uwierzytelnianie HMAC:
- Bezpiecznie przechowuj współdzielony sekret wygenerowany podczas tworzenia webhooka
- Zweryfikuj nagłówek ElevenLabs-Signature w swoim endpointzie za pomocą SDK
SDK JavaScript udostępnia constructEvent, a SDK Python construct_event z parametrami rawBody, sig_header i secret (w Pythonie nie nazywają się one payload / signature). Oba weryfikują podpis, sprawdzają znacznik czasu i parsują dane JSON.
Python
JavaScript
Przykładowy handler webhooka z użyciem FastAPI:
Własne nagłówki żądań
Oprócz walidacji podpisu HMAC możesz dołączyć własne nagłówki do każdego dostarczenia webhooka. Jest to przydatne do przekazywania kluczy API, tokenów bearer lub innych nagłówków uwierzytelniających wymaganych przez endpoint odbierający.
Panel
CLI
SDK
Własnych nagłówków nie można obecnie skonfigurować w panelu ElevenAgents. Użyj SDK lub API, aby ustawić własne nagłówki.
Własne nagłówki działają razem z uwierzytelnianiem HMAC. auth_type nadal musi mieć wartość hmac,
a własne nagłówki są wysyłane dodatkowo do nagłówka ElevenLabs-Signature.
Własne nagłówki są tylko do zapisu. Endpoint listy webhooków
nie zwraca request_headers w odpowiedzi, więc nie możesz odczytać, jakie nagłówki są
skonfigurowane dla webhooka.
Lista dozwolonych adresów IP
Dla większego bezpieczeństwa możesz dodać statyczne wychodzące adresy IP ElevenLabs do listy dozwolonych. Pełną listę adresów IP znajdziesz w liście dozwolonych adresów IP.
Używanie listy dozwolonych adresów IP razem z walidacją podpisu HMAC zapewnia wiele warstw zabezpieczeń.
Zastępowanie webhooków dla poszczególnych agentów
Domyślnie wszyscy agenci w obszarze roboczym używają webhooka skonfigurowanego w ustawieniach obszaru roboczego. Możesz zastąpić go dla konkretnego agenta, aby wysyłać dane po rozmowie do różnych endpointów dla różnych agentów.
Panel
CLI
SDK
post_call_webhook_id musi wskazywać webhook, który już istnieje w obszarze roboczym. Możesz też określić, które typy zdarzeń mają być wysyłane, za pomocą tablicy events:
Struktura odpowiedzi webhooka
ElevenLabs wysyła trzy różne typy webhooków po rozmowie, każdy z inną strukturą danych:
Webhooki transkrypcji (post_call_transcription)
Zawierają pełne dane rozmowy, w tym kompletne transkrypcje, wyniki analizy i metadane.
Pola najwyższego poziomu
Struktura obiektu danych
Obiekt data zawiera:
conversation_initiation_client_data.dynamic_variables mapuje nazwy zmiennych na dowolne wartości JSON, w tym listy i obiekty. Obejmuje wbudowane zmienne system__, a nowe mogą być dodawane, więc nie odrzucaj nierozpoznanych kluczy ani typów wartości. Zobacz zmienne dynamiczne.
Webhooki audio (post_call_audio)
Zawierają minimalne dane oraz audio całej rozmowy w formacie MP3 zakodowane w base64.
Pola najwyższego poziomu
Struktura obiektu danych
Obiekt data zawiera tylko:
Webhooki audio zawierają wyłącznie pola wymienione powyżej. NIE obejmują danych transkrypcji, metadanych, wyników analizy ani żadnych innych szczegółów rozmowy.
Webhooki nieudanej inicjacji rozmowy (call_initiation_failure)
Zawierają informacje o próbach inicjacji rozmów telefonicznych, w tym przyczyny niepowodzenia i metadane dostawcy telefonii.
Zdarzenia webhooka nieudanej inicjacji rozmowy są wysyłane, gdy nie można zainicjować rozmowy z powodu błędów połączenia, odrzucenia rozmowy przez użytkownika lub nieodebrania jej przez użytkownika. Jeśli rozmowa trafia na pocztę głosową lub zostaje odebrana przez automatyczny system, webhook nieudanej inicjacji rozmowy nie jest wysyłany, ponieważ rozmowa została pomyślnie zainicjowana.
Pola najwyższego poziomu
Struktura obiektu danych
Obiekt data zawiera:
W przypadku rozmów wychodzących realizowanych przez Twilio wartość failure_reason pochodzi ze statusu Twilio CallStatus: busy i no-answer są przekazywane bez zmian, a failed jest raportowane jako unknown. Pozostałe statusy rozmów Twilio nie wysyłają webhooka nieudanej inicjacji rozmowy.
Struktura obiektu metadanych
Struktura obiektu metadata różni się zależnie od tego, czy rozmowa wychodząca została wykonana przez Twilio, czy przez trunking SIP. Obiekt zawiera pole type, które rozróżnia te dwa przypadki, oraz pole body ze szczegółami specyficznymi dla dostawcy.
Metadane SIP (type: "sip"):
Obiekt body dla metadanych SIP zawiera:
Metadane Twilio (type: "twilio"):
Przykładowe dane webhooków
Przykład webhooka transkrypcji
Przykład webhooka audio
Przykłady webhooków błędów inicjowania połączenia
Przykład metadanych Twilio
Przykład metadanych SIP
Dostarczanie webhooków audio
Webhooki audio są dostarczane osobno od webhooków transkrypcji i zawierają tylko kluczowe pola potrzebne do identyfikacji rozmowy oraz dane audio zakodowane w base64.
Webhooki audio możesz włączyć lub wyłączyć przełącznikiem „Send audio data” w ustawieniach webhooka. Ustawienie to można skonfigurować zarówno na poziomie przestrzeni roboczej (w ustawieniach ElevenAgents), jak i na poziomie agenta (w indywidualnych ustawieniach webhooków agenta).
Dostarczanie strumieniowe
Webhooki audio są dostarczane jako strumieniowe żądania HTTP z nagłówkiem transfer-encoding: chunked, aby sprawnie obsługiwać duże pliki audio. Limit czasu każdego żądania wynosi 5 minut.
Ponowienia
Gdy ponowienia są włączone dla webhooka, nieudane dostarczenia audio są ponawiane według tego samego harmonogramu co webhooki transkrypcji. Ponowienie wysyła pełne dane audio, więc usuwaj duplikaty według conversation_id. Harmonogram, błędy kwalifikujące się do ponowienia i limity rozmiaru audio znajdziesz w sekcji ponowienia webhooków.
Przetwarzanie webhooków audio
Ponieważ webhooki audio są dostarczane przez kodowanie transferu chunked, musisz odpowiednio obsłużyć dane strumieniowe:
Webhooki audio mogą zawierać duże pliki, więc upewnij się, że punkt końcowy webhooka obsługuje żądania strumieniowe i ma wystarczającą pamięć oraz przestrzeń dyskową. Audio jest dostarczane w formacie MP3.
Zastosowania
Automatyczne działania po rozmowie
Webhooki po rozmowie pozwalają tworzyć automatyczne workflow, które uruchamiają się zaraz po zakończeniu połączenia. Oto kilka praktycznych zastosowań:
Integracja z CRM
Aktualizuj system zarządzania relacjami z klientami danymi rozmowy od razu po zakończeniu połączenia:
Rozmowy ze stanem
Zachowuj kontekst rozmowy między kolejnymi interakcjami, zapisując i pobierając stan:
- Gdy rozpoczyna się połączenie, przekaż identyfikator użytkownika jako zmienną dynamiczną.
- Gdy połączenie się kończy, skonfiguruj punkt końcowy webhooka, aby zapisywał dane rozmowy w bazie danych na podstawie identyfikatora użytkownika wyodrębnionego z
dynamic_variables. - Gdy użytkownik zadzwoni ponownie, możesz pobrać ten kontekst i przekazać go do nowej rozmowy w zmiennej dynamicznej
{{previous_topics}}. - Dzięki temu agent „pamięta” wcześniejsze interakcje, a doświadczenie jest płynne.