Sign inGet started

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"
}
typeFeldWas es enthält
buttonbuttonslug und text eines Antwort-Buttons oder der Quick-Reply-Schaltfläche eines Templates
listlistslug 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:
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