Odbieranie interaktywnych odpowiedzi WhatsApp
Stuknięcie przycisku odpowiedzi, wiersza listy lub przycisku szybkiej odpowiedzi szablonu przychodzi jako osobna wiadomość przychodząca zawierająca interactive_reply. Ramię zwraca uchwyt ustawiony przy wysyłce, więc przepływ rozgałęzia się na podstawie Twojego identyfikatora, a nie etykiety, którą widział kontakt.
Co zawiera przychodząca odpowiedź interaktywna
type określa rodzaj stuknięcia, a pole o tej samej nazwie je zawiera:
Przykład kodu
{
"id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
"direction": "inbound",
"from": { "phone_number": "+14155550100" },
"to": { "phone_number": "+13124495569" },
"status": "received",
"in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
"interactive_reply": {
"type": "button",
"button": { "slug": "cancel-booking", "text": "Cancel" }
},
"created_at": "2026-08-25T09:04:11Z"
}| type | Pole | Co zawiera |
|---|---|---|
| button | button | slug i text przycisku odpowiedzi lub przycisku szybkiej odpowiedzi szablonu |
| list | list | slug i text wiersza wybranego przez kontakt oraz jego description, jeśli go miał |
Wiersz listy zastępuje button przez list i dodaje drugą linię, którą wiersz wyświetlał:
Przykład kodu
{
"interactive_reply": {
"type": "list",
"list": {
"slug": "priority_express",
"text": "Priority Mail Express",
"description": "Next day to 2 days"
}
}
}slug to uchwyt, który zadeklarowałeś i którego kontakt nigdy nie widział; text to etykieta, którą przeczytał. Rozgałęziaj na podstawie slug. Etykiety bywają przeformułowywane i tłumaczone, a przy stuknięciu przycisku szybkiej odpowiedzi szablonu slug to ładunek zadeklarowany przez ten szablon, który WhatsApp ustawia na własną etykietę przycisku.
Lista rodzajów jest otwarta: WhatsApp dodaje nowe rodzaje interaktywne z czasem, więc traktuj nierozpoznany type jako przyszły rodzaj, a nie błąd, i zaloguj wiadomość zamiast przerywać odczyt.
Powiązanie stuknięcia z wysłaną wiadomością
in_reply_to_message_id wskazuje wiadomość, która zawierała przycisk lub menu, dzięki czemu wiesz, na które pytanie jest ta odpowiedź. WhatsApp nie raportuje go przy każdym stuknięciu, a rozwiązanie może też nie nastąpić, i wtedy pole jest pomijane, a nie zwracane jako puste. Sekcja cytowane odpowiedzi w hubie opisuje, co oznacza brak rozwiązania i jak długo cytowana wiadomość pozostaje rozwiązywalna.
Jeśli korelacja musi być niezawodna, umieść własną referencję w samym slug lub w metadata przy wysyłce, zamiast polegać na tym polu. Szczegóły wysyłki znajdziesz w sekcji cytowanie wiadomości.
Dwa stuknięcia, które trafiają gdzie indziej
Dwa typy interaktywne odpowiadają w ogóle bez interactive_reply:
- Żądanie lokalizacji wraca jako zwykła przychodząca lokalizacja.
- Żądanie danych kontaktowych wraca jako karty kontaktów, z origin ustawionym na contact_request.
Przycisk z linkiem nie odsyła niczego: kontakt przechodzi pod URL i żadna wiadomość przychodząca nie rejestruje stuknięcia. Integracja obserwująca tylko interactive_reply przeoczy wszystkie trzy przypadki.
Ładunek webhooka
whatsapp.received zawiera ramię interactive_reply w kopercie zdarzenia, więc bot może odpowiedzieć na stuknięcie bez ponownego odczytywania wiadomości:
Przykład kodu
{
"type": "whatsapp.received",
"timestamp": "2026-08-25T09:04:11.118Z",
"data": {
"whatsapp_id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
"workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
"direction": "inbound",
"from": { "phone_number": "+14155550100", "display_name": "Alex Rivera" },
"to": { "phone_number": "+13124495569" },
"in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
"interactive_reply": {
"type": "button",
"button": { "slug": "cancel-booking", "text": "Cancel" }
},
"tags": null,
"metadata": null
}
}Na co uważać
- interactive i interactive_reply to przeciwne kierunki. interactive to to, co wysłałeś, i nigdy nie przychodzi jako wiadomość przychodząca; interactive_reply to to, co kontakt stuknął, i nigdy nie pojawia się w wiadomości wychodzącej.
- Stuknięcie resetuje okno serwisowe. Jest wiadomością przychodzącą, więc otwiera 24 godziny swobodnych odpowiedzi tak samo jak wiadomość tekstowa.
- Kontakt może stuknąć ten sam przycisk dwa razy. Nic nie deduplikuje stuknięć, więc każde z nich jest osobną wiadomością z własnym ID. Spraw, żeby akcja wykonywana na podstawie slug była idempotentna.
- Stuknięcie starego menu wciąż dochodzi. Kontakt przewijający wstecz może stuknąć przycisk sprzed kilku dni, więc sprawdzaj, czy przepływ jest nadal otwarty, zamiast zakładać, że stuknięcie odpowiada na Twoją najnowszą wiadomość.
Następne kroki
- Jak działa odbieranie: koperta wiadomości przychodzącej, pobieranie mediów i webhook whatsapp.received
- Wiadomości interaktywne WhatsApp: sześć typów, które odbiorca może stuknąć
- Przyciski odpowiedzi WhatsApp: strona wysyłki stuknięcia przycisku
- Menu list WhatsApp: strona wysyłki wyboru wiersza
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