Webhooki po rozmowie
Otrzymuj powiadomienia przez webhooki, gdy rozmowy się zakończą i analiza będzie gotowa.
Przegląd
Webhooki po rozmowie pozwalają otrzymać 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 typy 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 z dźwiękiem całej rozmowy zakodowanym w base64 - Webhooki nieudanego rozpoczęcia rozmowy (
call_initiation_failure): zawierają informacje o nieudanych próbach rozpoczęcia rozmowy, w tym przyczyny błędów i metadane
Włączanie webhooków po rozmowie
Webhooki po rozmowie możesz włączyć dla wszystkich agentów w swoim obszarze roboczym na stronie ustawień ElevenAgents.

Webhooki po rozmowie muszą zwracać kod statusu 200, aby zostały uznane za udane. Webhooki, które wielokrotnie zawodzą, są automatycznie wyłączane, jeśli wystąpi co najmniej 10 kolejnych błędów, a ostatnie udane dostarczenie nastąpiło ponad 7 dni temu lub nigdy nie nastąpiło.
Webhooki po rozmowie mogą być automatycznie ponawiane w razie niepowodzenia. Zobacz ponowienia 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:
Lista dozwolonych adresów IP
Dla dodatkowego bezpieczeństwa możesz dodać statyczne wychodzące adresy IP ElevenLabs do listy dozwolonych adresów. Pełną listę adresów IP znajdziesz w sekcji Lista dozwolonych adresów IP.
Używanie listy dozwolonych adresów IP razem z walidacją podpisu HMAC zapewnia wiele warstw zabezpieczeń.
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:
Webhooki audio (post_call_audio)
Zawierają minimalny zestaw danych oraz pełne audio rozmowy w formacie MP3 zakodowane base64.
Pola najwyższego poziomu
Struktura obiektu danych
Obiekt data zawiera tylko:
Webhooki audio zawierają tylko trzy pola wymienione powyżej. NIE zawierają danych transkrypcji, metadanych, wyników analizy ani żadnych innych szczegółów rozmowy.
Webhooki błędów inicjowania rozmowy (call_initiation_failure)
Zawierają informacje o próbach inicjowania połączeń telefonicznych, w tym przyczyny błędów i metadane dostawcy telefonii.
Zdarzenia webhooka błędu inicjowania rozmowy są wysyłane, gdy nie uda się rozpocząć rozmowy z powodu błędów połączenia, odrzucenia rozmowy przez użytkownika lub nieodebrania jej przez użytkownika. Jeśli rozmowa trafi na pocztę głosową lub zostanie odebrana przez automatyczną usługę, webhook błędu inicjowania rozmowy nie jest wysyłany, ponieważ rozmowa została pomyślnie rozpoczęta.
Pola najwyższego poziomu
Struktura obiektu danych
Obiekt data zawiera:
W przypadku połączeń wychodzących przez Twilio failure_reason pochodzi ze stanu CallStatus Twilio: wartości busy i no-answer są przekazywane bez zmian, a failed jest zgłaszane jako unknown. Inne statusy połączeń Twilio nie wysyłają webhooka błędu inicjowania rozmowy.
Struktura obiektu metadanych
Struktura obiektu metadata zależy od tego, czy połączenie wychodzące wykonano przez Twilio czy przez trunking SIP. Obiekt zawiera pole type, które rozróżnia te dwie opcje, oraz pole body ze szczegółami zależnymi od dostawcy.
Metadane SIP (type: "sip"):
Obiekt body metadanych SIP zawiera:
Metadane Twilio (type: "twilio"):
Przykładowe ładunki webhooków
Przykład webhooka transkrypcji
Przykład webhooka audio
Przykłady webhooków błędu inicjowania rozmowy
Przykład metadanych Twilio
Przykład metadanych SIP
Dostarczanie webhooków audio
Webhooki audio są dostarczane osobno od webhooków transkrypcji i zawierają tylko podstawowe pola potrzebne do identyfikacji rozmowy oraz dane audio zakodowane base64.
Webhooki audio możesz włączyć lub wyłączyć przełącznikiem „Send audio data” w ustawieniach webhooka. Możesz ustawić to na poziomie workspace’u (w ustawieniach ElevenAgents) oraz na poziomie agenta (w indywidualnych zastąpieniach 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. Każde żądanie ma limit czasu 5 minut.
Ponowne próby
Gdy dla webhooka włączone są ponowne próby, nieudane dostarczenia audio są ponawiane według tego samego harmonogramu co webhooki transkrypcji. Ponowna próba wysyła cały ładunek audio, więc usuwaj duplikaty według conversation_id. Harmonogram, błędy kwalifikujące się do ponownej próby i limity rozmiaru audio znajdziesz w sekcji ponowne próby webhooków.
Przetwarzanie webhooków audio
Webhooki audio są dostarczane z użyciem kodowania transferu fragmentowego, dlatego musisz prawidłowo obsłużyć dane strumieniowe:
Webhooki audio mogą być dużymi plikami, więc upewnij się, że endpoint webhooka obsługuje żądania strumieniowe i ma wystarczającą ilość pamięci lub miejsca na dane. Audio jest dostarczane w formacie MP3.
Zastosowania
Automatyczne działania po rozmowie
Webhooki po rozmowie pozwalają tworzyć automatyczne workflow uruchamiane zaraz po zakończeniu rozmowy. Oto kilka praktycznych zastosowań:
Integracja z CRM
Zaktualizuj system zarządzania relacjami z klientami o dane rozmowy zaraz po jej zakończeniu:
Rozmowy ze stanem
Zachowaj kontekst rozmowy między wieloma interakcjami, zapisując i odczytując stan:
- Gdy rozmowa się rozpoczyna, przekaż identyfikator użytkownika jako zmienną dynamiczną.
- Gdy rozmowa się kończy, skonfiguruj endpoint webhooka tak, 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 jako zmienną dynamiczną
{{previous_topics}}. - Dzięki temu agent „pamięta” wcześniejsze interakcje.