Webhooki
Włącz integracje zewnętrzne, odbierając zdarzenia webhooków.
Omówienie
Niektóre zdarzenia w ElevenLabs można skonfigurować tak, by wywoływały webhooki, dzięki czemu zewnętrzne aplikacje i systemy mogą odbierać oraz przetwarzać je na bieżąco. Obecnie obsługiwane są następujące typy zdarzeń:
Konfiguracja
Webhooki możesz tworzyć, wyłączać i usuwać na stronie ustawień ogólnych. W przypadku użytkowników obszarów roboczych webhooki dla obszaru roboczego mogą konfigurować tylko jego administratorzy.

Po utworzeniu webhook można wybrać do nasłuchiwania zdarzeń w ustawieniach produktu, na przykład Agents Platform.
Webhooki możesz w każdej chwili wyłączyć na stronie ustawień ogólnych. 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 nastąpiło. Automatycznie wyłączone webhooki trzeba ponownie włączyć na stronie ustawień. Webhooki można usunąć, jeśli nie są używane przez żadne produkty.
Ponowienia
Dla każdego webhooka możesz włączyć ponowienia, aby automatycznie spróbować dostarczyć żądanie ponownie po błędzie. Ponowienia są domyślnie wyłączone. Włącz je podczas tworzenia lub aktualizacji webhooka przez API albo w ustawieniach webhooka.
post_call_transcription.Harmonogram ponowień
Gdy próba dostarczenia zakończy się błędem, który można ponowić, system podejmie do 5 kolejnych prób z rosnącymi odstępami:
Do każdego ponowienia dodawane jest niewielkie losowe odchylenie (do 10% opóźnienia), aby rozłożyć obciążenie i uniknąć problemów typu thundering herd.
Błędy kwalifikujące się do ponowienia
Nie wszystkie błędy uruchamiają ponowienie. Za kwalifikujące się uznawane są tylko poniższe kody statusu HTTP:
- Kody statusu
5xx(błędy serwera, takie jak 500, 502, 503, 504). 429(Too Many Requests).408(Request Timeout).
Błędy żądań z zakresu 4xx (takie jak 400, 401, 403, 404) nie są ponawiane, ponieważ zwykle wskazują na problem z konfiguracją, który wymaga ręcznej poprawy.
Limity kolejki dla webhooka
Każdy webhook może mieć maksymalnie 100 oczekujących zadań ponowienia. Jeśli webhook zgromadzi ponad 100 ponowień w kolejce, kolejne zadania będą odrzucane, dopóki istniejące ponowienia nie zostaną przetworzone. Zapobiega to nadmiernemu zużyciu zasobów przez pojedynczy źle skonfigurowany webhook.
Automatyczne wyłączanie
System śledzi kolejne błędy dostarczania dla każdego webhooka. Webhook jest automatycznie wyłączany, gdy spełnione są oba poniższe warunki:
- Wystąpiło co najmniej 10 kolejnych błędów dostarczania.
- Webhook nigdy nie został dostarczony pomyślnie albo ostatnie udane dostarczenie nastąpiło ponad 7 dni temu.
Gdy webhook zostanie automatycznie wyłączony, administratorzy obszaru roboczego otrzymają powiadomienie e-mail. Zanim webhook wznowi dostarczanie, trzeba go ręcznie włączyć ponownie na stronie ustawień.
Integracja
Aby zintegrować się z webhookami, utwórz handler endpointu, który będzie odbierać dane zdarzeń webhooka jako żądania POST. Po sprawdzeniu podpisu handler powinien szybko zwrócić HTTP 200, aby potwierdzić pomyślny odbiór. Powtarzający się brak odpowiedzi potwierdzającej sukces może spowodować automatyczne wyłączenie webhooka.
Payload ponowienia jest identyczny jak w pierwotnej próbie dostarczenia. Odbiorcy webhooków nie mogą rozróżnić pierwszego dostarczenia od ponowienia na podstawie samego payloadu, dlatego zaprojektuj handler tak, by był idempotentny — wielokrotne przetworzenie tego samego zdarzenia powinno dawać ten sam wynik. W razie potrzeby użyj event_timestamp i identyfikatorów specyficznych dla zdarzenia (takich jak conversation_id), aby usuwać duplikaty zdarzeń.
Pola najwyższego poziomu
Przykładowy payload webhooka
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: