Webhook (zdarzenia): co dostajesz w żądaniu
Platforma wywołuje Twoją aplikację metodą HTTP POST i przekazuje dane rozmowy w JSON (w polu request). Na tej podstawie Twoja logika podejmuje decyzję i odsyła Action + opcjonalnie Session.
W praktyce webhook jest “wejściem” do procesu: dostajesz kontekst rozmowy, a następnie sterujesz IVR, DTMF, kolejkami i routingu według reguł z CRM/helpdesku.
Najważniejsze pola w request
- FromNumber — numer dzwoniącego,
- ToNumber — numer docelowy,
- ChannelStatus — status kanału/połączenia,
- UniqueCallId — unikalny identyfikator rozmowy (korelacja logów i CRM),
- Hash — wartość weryfikacyjna (jeśli jest skonfigurowana),
- Event — zdarzenie (EventName + EventData),
- Session — stan rozmowy zwrócony wcześniej przez Twoją aplikację.
Co odsyłasz w odpowiedzi: Akcje API.
Przykład request (uproszczony)
{
"request": {
"FromNumber": "48123456789",
"ToNumber": "48221234567",
"ChannelStatus": "Connected",
"UniqueCallId": "f95bccb5b1140554030b9d4186855cdc12e6e1c0",
"Hash": "4fa0ff6d065ba50c...",
"Event": { "EventName": "Connected", "EventData": "" },
"Session": null
}
}
Odpowiedź Twojej aplikacji to JSON z Action (+ opcjonalnie Session), np. pytanie DTMF, komunikat, przekierowanie, kolejka.
Błędy (Error) i kody błędów
Gdy wystąpi błąd wywołania aplikacji, platforma wykona zdefiniowane działanie awaryjne (np. rozłączenie / komunikat / połączenie z obiektem), a następnie przekaże w polu Error: ErrorNo i ErrorMsg.
W przypadku błędu webhook jest traktowany informacyjnie — po przesłaniu komunikatu z Error system nie oczekuje już na odpowiedź Twojej aplikacji.
Kody błędów (najczęstsze)
- 1000 — zbyt wiele odpytań do aplikacji klienta,
- 1001 — aplikacja kliencka odesłała zbyt dużo danych,
- 1002 — aplikacja kliencka nie odpowiedziała w wyznaczonym czasie,
- 1003 — problem z certyfikatem SSL,
- 1004 — błąd podczas pobierania adresu IP dla domeny aplikacji klienta,
- 1005 — błąd podczas łączenia z aplikacją klienta,
- 1006 — niepoprawna odpowiedź aplikacji klienta.
Pozostałe (często spotykane w praktyce)
- 2001 — plik do odegrania nie istnieje,
- 2002 — zły format znacznika czasu,
- 2003 — złe parametry dla wybranej akcji,
- 3001 — brak skonfigurowanego konta SIP dla połączeń wychodzących,
- 9999 — nieznany błąd.
Przykład pola Error (uproszczony)
{
"request": {
"...": "...",
"Error": {
"ErrorNo": "1002",
"ErrorMsg": "Timeout po stronie aplikacji klienta"
}
}
}
Chcesz przetestować webhook?
Najprościej: Connected → Play → GetDTMF → routing. Potem dopracuj timeouty i fallback.