Interaktive Antworten über WhatsApp empfangen
Ein Tap auf einen Antwort-Button, eine Listenzeile oder die Quick-Reply-Schaltfläche eines Templates kommt als eigene eingehende Nachricht mit interactive_reply an. Der Arm gibt Ihnen das Handle zurück, das Sie beim Senden gesetzt haben, sodass ein Flow anhand Ihres eigenen Bezeichners verzweigt – nicht anhand des Labels, das der Kontakt gesehen hat.
Was eine eingehende interaktive Antwort enthält
type benennt die Art des Taps, und das gleichnamige Feld enthält ihn:
Codebeispiel
{
"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 | Feld | Was es enthält |
|---|---|---|
| button | button | slug und text eines Antwort-Buttons oder der Quick-Reply-Schaltfläche eines Templates |
| list | list | slug und text der vom Kontakt gewählten Zeile, plus description, falls vorhanden |
Eine Listenzeile ersetzt button durch list und fügt die zweite Zeile hinzu, die die Zeile angezeigt hat:
Codebeispiel
{
"interactive_reply": {
"type": "list",
"list": {
"slug": "priority_express",
"text": "Priority Mail Express",
"description": "Next day to 2 days"
}
}
}slug ist das Handle, das Sie deklariert haben und das der Kontakt nie gesehen hat; text ist das Label, das er gelesen hat. Verzweigen Sie auf slug. Labels werden umformuliert und übersetzt, und bei einem Tap auf die Quick-Reply-Schaltfläche eines Templates ist slug die Payload, die das Template deklariert hat – WhatsApp setzt sie auf das eigene Label des Buttons.
Die Liste der Arten ist offen: WhatsApp fügt im Laufe der Zeit neue interaktive Arten hinzu. Behandeln Sie einen type, den Sie nicht kennen, als zukünftige Art statt als Fehler und loggen Sie die Nachricht, anstatt den Lesevorgang abbrechen zu lassen.
Einen Tap der gesendeten Nachricht zuordnen
in_reply_to_message_id benennt die Nachricht, die den Button oder das Menü enthielt – so wissen Sie, zu welcher Frage diese Antwort gehört. WhatsApp liefert das nicht bei jedem Tap, und die Auflösung kann ebenfalls fehlschlagen – in diesem Fall wird das Feld weggelassen statt leer gemeldet. Der Hub-Abschnitt Zitierte Antworten erklärt, was ein Fehlschlag bedeutet und wie lange eine zitierte Nachricht auflösbar bleibt.
Wenn die Zuordnung zuverlässig sein muss, legen Sie Ihre eigene Referenz in slug selbst oder in metadata beim Senden ab, statt sich auf das Feld zu verlassen. Siehe Nachricht zitieren für die Sendeseite.
Die zwei Taps, die woanders ankommen
Zwei interaktive Typen antworten ganz ohne interactive_reply:
- Eine Standortanfrage kommt als gewöhnlicher eingehender Standort zurück.
- Eine Kontaktinfo-Anfrage kommt als Kontaktkarten zurück, mit origin auf contact_request gesetzt.
Ein Link-Button sendet nichts zurück: Der Kontakt verlässt die App für die URL, und keine eingehende Nachricht zeichnet den Tap auf. Eine Integration, die nur interactive_reply überwacht, verpasst alle drei.
Die Webhook-Payload
whatsapp.received enthält den interactive_reply-Arm im Event-Envelope, sodass ein Bot auf einen Tap antworten kann, ohne die Nachricht zurückzulesen:
Codebeispiel
{
"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
}
}Worauf Sie achten sollten
- interactive und interactive_reply sind entgegengesetzte Richtungen. interactive ist das, was Sie gesendet haben – es kommt nie eingehend an; interactive_reply ist das, was der Kontakt angetippt hat – es erscheint nie in einer ausgehenden Nachricht.
- Ein Tap setzt das Service-Fenster zurück. Es handelt sich um eine eingehende Nachricht, die 24 Stunden für formlose Antworten wieder öffnet – genau wie eine Textnachricht.
- Ein Kontakt kann denselben Button zweimal antippen. Taps werden nicht dedupliziert, jeder ist eine eigene Nachricht mit eigener ID. Gestalten Sie die Aktion, die Sie bei einem slug ausführen, idempotent.
- Ein Tap auf ein altes Menü kommt trotzdem an. Ein Kontakt, der zurückscrollt, kann einen Button von vor Tagen antippen. Prüfen Sie daher, ob der Flow noch offen ist, statt anzunehmen, der Tap beantworte Ihre letzte Nachricht.
Nächste Schritte
- So funktioniert der Empfang: das eingehende Envelope, Medienabruf und der whatsapp.received-Webhook
- Interaktive WhatsApp-Nachrichten: die sechs Typen, die ein Empfänger antippen kann
- WhatsApp-Antwort-Buttons: die Sendeseite eines Button-Taps
- WhatsApp-Listenmenüs: die Sendeseite einer Zeilenauswahl
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.
Anleitung ansehenConnecting WhatsApp to Bird: from buying a number to a live channelDas Konzept verstehenWhat is the 24-hour customer service window on WhatsApp?Das Tool verwendenWhatsApp message builderDie Funktion erkundenWhatsApp
Übung ausprobieren und ein Implementierungs-Briefing erhalten