Webhooki statusu wiadomości WhatsApp
Każda zmiana statusu wiadomości wychodzącej może być przekazywana do Twojego endpointu w momencie wystąpienia. Każdy ładunek korzysta z koperty zdarzenia WhatsApp i zawiera pola wspólne dla każdego zdarzenia wiadomości.
Zdarzenia dostarczania
whatsapp.accepted, whatsapp.sent, whatsapp.delivered i whatsapp.read zawierają wyłącznie pola wspólne dla każdego zdarzenia wiadomości. Zdarzenia cyklu życia opisują znaczenie każdego z nich oraz kiedy whatsapp.delivered jest pomijany.
Przykład kodu
{
"data": {
"direction": "outbound",
"from": { "phone_number": "+13124495569" },
"metadata": { "session_id": "sess_4821" },
"tags": [{ "name": "flow", "value": "login-otp" }],
"to": { "phone_number": "+14155550100" },
"whatsapp_id": "wam_01ky7qbvswf3fvyaw3az90391c",
"workspace_id": "ws_01ky7m235keycbnwyajabe1a6b"
},
"timestamp": "2026-07-23T14:51:39.913Z",
"type": "whatsapp.delivered"
}whatsapp.failed i whatsapp.rejected zawierają dodatkowo obiekt error ze stabilnym Bird code, czytelnym dla człowieka description, opcjonalnym meta_error_code oraz occurred_at. Zobacz zdarzenia niepowodzenia, aby poznać różnicę między nimi. W przypadku zgłoszonego niepowodzenia WhatsApp, description jest własnym wyjaśnieniem WhatsApp. Wiadomość serwisowa, której okno obsługi klienta zamknęło się między akceptacją a wysyłką, kończy się niepowodzeniem w następujący sposób:
Przykład kodu
{
"data": {
"direction": "outbound",
"error": {
"code": "service_window_expired",
"description": "Message failed to send because more than 24 hours have passed since the customer last replied to this number.",
"meta_error_code": "131047",
"occurred_at": "2026-07-23T14:51:40.201Z"
},
"from": { "phone_number": "+13124495569" },
"metadata": null,
"tags": null,
"to": { "phone_number": "+14155550100" },
"whatsapp_id": "wam_01ky7qbvswf3fvyaw3az90391c",
"workspace_id": "ws_01ky7m235keycbnwyajabe1a6b"
},
"timestamp": "2026-07-23T14:51:40.201Z",
"type": "whatsapp.failed"
}Oznaczenie wiadomości przychodzącej jako przeczytanej zapisuje whatsapp.read na osi czasu wiadomości, ale nie emituje webhooka.
Następne kroki
- Webhooki wiadomości przychodzących: ładunek whatsapp.received dla wiadomości wysłanej przez kontakt
- Webhooki reakcji: reakcje kontaktu przychodzą osobno
- Zdarzenia statusu wiadomości: odczytaj oś czasu wiadomości za pomocą API
Powiązane zasoby
Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.
Obejrzyj przewodnikConnecting WhatsApp to Bird: from buying a number to a live channelZrozum koncepcjęWhat is the 24-hour customer service window on WhatsApp?Użyj narzędziaWhatsApp message builderPoznaj możliwościWhatsApp
Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy