Webhook: żądanie

Co dostajesz z platformy i jak powiązać to z klientem oraz sprawą w Twoim systemie.

Webhook: żądanie (request)

otoContactCenter wywołuje Twój endpoint metodą HTTP POST. W treści dostajesz JSON, a dane rozmowy są w polu request.

Na podstawie tych danych Twoja aplikacja decyduje, co ma się stać dalej (Action + Session). Odpowiedź opisujemy w następnym rozdziale: Webhook: odpowiedź.

Struktura POST (przykład uproszczony)

{
  "request": {
    "FromNumber": "48123456789",
    "ToNumber": "48221234567",
    "ChannelStatus": "Connected",
    "UniqueCallId": "…",
    "Hash": "…",
    "Event": { "EventName": "Connected", "EventData": "" },
    "Session": null
  }
}

W praktyce to właśnie UniqueCallId + Event.EventName są kluczem do debugowania i korelacji z CRM/helpdeskiem.

Pola w request

  • FromNumber – numer dzwoniącego.
  • ToNumber – numer docelowy (często przydatny do call trackingu / rozdzielania numerów kampanii).
  • ChannelStatus – status kanału/połączenia (kontekst stanu rozmowy).
  • UniqueCallId – unikalny identyfikator rozmowy (korelacja logów, CRM, ticketów).
  • Hash – wartość weryfikacyjna (jeśli skonfigurowana po stronie panelu).
  • Event – zdarzenie: EventName + EventData.
  • Session – stan zwrócony wcześniej przez Twoją aplikację (np. krok flow, licznik prób, ID sprawy).

EventName i EventData

Najczęściej spotykane zdarzenia:

  • Connected – start scenariusza IVR API (dobry moment na pierwszy krok logiki).
  • GetDTMF – wynik DTMF w EventData albo wartość typu timeout.
  • CallStatus – wynik próby połączenia (np. Answer/Busy/Noanswer/Cancel/Error) w EventData.
  • Play – informacja o zakończeniu zapowiedzi (jeśli dany flow opiera się o kolejne kroki po odtworzeniu).

Jeśli chcesz szybko skleić flow w jedną całość: Szybki start.

Error

Gdy wystąpi błąd wywołania aplikacji lub problem z wykonaniem akcji, request może zawierać obiekt Error (np. ErrorNo + ErrorMsg). To jest sygnał, że platforma weszła w ścieżkę awaryjną (fallback) albo że odpowiedź aplikacji była niepoprawna.

Jak to stabilizować w produkcji: Stabilność oraz Bezpieczeństwo webhooka.

Minimum diagnostyczne, które realnie ratuje czas: loguj UniqueCallId, EventName, czas odpowiedzi, oraz to, jaką Action zwróciła Twoja aplikacja.

Jak odpowiedzieć na webhook?

Zobacz format odpowiedzi (Action/Session) i przykłady:

Webhook: odpowiedź    Akcje API