# Interactieve antwoorden ontvangen via WhatsApp

Een tik op een antwoordknop, een lijstrij of de snelle antwoordknop van een template komt binnen als een eigen inbound bericht met `interactive_reply`. De arm geeft je de handle terug die je bij het verzenden hebt ingesteld, zodat een flow vertakt op je eigen identifier in plaats van op het label dat het contact zag.

## Wat een inbound interactief antwoord bevat

`type` geeft het type tik aan, en het veld met dezelfde naam bevat het:

```json
{
  "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`   | Veld     | Wat het bevat                                                                             |
| -------- | -------- | ----------------------------------------------------------------------------------------- |
| `button` | `button` | De `slug` en `text` van een antwoordknop, of van de snelle antwoordknop van een template  |
| `list`   | `list`   | De `slug` en `text` van de rij die het contact koos, plus de `description` als die er was |

Een lijstrij vervangt `button` door `list` en voegt de tweede regel toe die de rij toonde:

```json
{
  "interactive_reply": {
    "type": "list",
    "list": {
      "slug": "priority_express",
      "text": "Priority Mail Express",
      "description": "Next day to 2 days"
    }
  }
}
```

`slug` is de handle die je hebt opgegeven en die het contact nooit zag; `text` is het label dat ze lazen. Vertakt op `slug`. Labels worden herformuleerd en vertaald, en bij een tik op de snelle antwoordknop van een template is de `slug` de payload die dat template heeft opgegeven, die WhatsApp instelt op het eigen label van de knop.

De lijst met typen is open: WhatsApp voegt in de loop van de tijd interactieve typen toe, dus behandel een `type` die je niet herkent als een toekomstig type in plaats van een fout, en val terug op het loggen van het bericht in plaats van het lezen te laten mislukken.

## Een tik koppelen aan wat je verstuurde

`in_reply_to_message_id` geeft het bericht aan dat de knop of het menu bevatte. Zo weet je bij welke vraag dit antwoord hoort. WhatsApp rapporteert het niet bij elke tik, en de resolutie kan ook missen. In dat geval wordt het veld weggelaten in plaats van leeg gerapporteerd. De hub-pagina [geciteerde antwoorden](/docs/guides/whatsapp/receiving-whatsapp#quoted-replies) behandelt wat een miss betekent en hoe lang een geciteerd bericht oplosbaar blijft.

Als correlatie betrouwbaar moet zijn, zet je eigen referentie dan in de `slug` zelf, of in `metadata` bij het verzenden, in plaats van op het veld te vertrouwen. Zie [een bericht citeren](/docs/guides/whatsapp/sending-whatsapp#quoting-a-message) voor de verzendzijde.

## De twee tikken die elders binnenkomen

Twee interactieve typen beantwoorden zonder enige `interactive_reply`:

- Een [locatieverzoek](/docs/guides/whatsapp/message-types/interactive/location-requests) komt terug als een gewoon inbound [locatiebericht](/docs/guides/whatsapp/receiving-whatsapp/location).
- Een [contactgegevensverzoek](/docs/guides/whatsapp/message-types/interactive/contact-info-requests) komt terug als [contactkaarten](/docs/guides/whatsapp/receiving-whatsapp/contact-cards), met `origin` ingesteld op `contact_request`.

Een [linkknop](/docs/guides/whatsapp/message-types/interactive/cta-url-buttons) stuurt niets terug: het contact vertrekt naar de URL en er wordt geen inbound bericht van de tik vastgelegd. Een integratie die alleen `interactive_reply` bewaakt, mist alle drie.

## De webhook-payload

`whatsapp.received` bevat de `interactive_reply`-arm op de event-envelope, zodat een bot een tik kan beantwoorden zonder het bericht terug te lezen:

```json
{
  "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
  }
}
```

## Aandachtspunten

- **`interactive` en `interactive_reply` zijn tegengestelde richtingen.** `interactive` is wat je verstuurde en komt nooit inbound binnen; `interactive_reply` is wat het contact tikte en verschijnt nooit op een outbound bericht.
- **Een tik herstelt het servicevenster.** Het is een inbound bericht, dus het heropent 24 uur vrije antwoorden op dezelfde manier als een tekstbericht.
- **Een contact kan twee keer op dezelfde knop tikken.** Tikken worden niet gededupliceerd, dus elke tik is een eigen bericht met een eigen ID. Maak de actie die je op een `slug` uitvoert idempotent.
- **Een tik op een oud menu komt nog steeds binnen.** Een contact dat terugscrollt kan op een knop van dagen geleden tikken. Valideer daarom dat de flow nog open is in plaats van aan te nemen dat de tik je laatste bericht beantwoordt.

## Volgende stappen

- [Hoe ontvangen werkt](/docs/guides/whatsapp/receiving-whatsapp): de inbound envelope, media ophalen en de `whatsapp.received`-webhook
- [Interactieve WhatsApp-berichten](/docs/guides/whatsapp/message-types/interactive): de zes typen waarop een ontvanger kan tikken
- [WhatsApp-antwoordknoppen](/docs/guides/whatsapp/message-types/interactive/reply-buttons): de verzendzijde van een knoptik
- [WhatsApp-lijstmenu's](/docs/guides/whatsapp/message-types/interactive/list-menus): de verzendzijde van een rijkeuze

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
