logo
enes

Interactive replies

Last update: 6 hours ago by Irais Aguirre

Integration summary

  • Delivery: WhatsApp → Concepto Móvil → POST to your webhook URL (the one you share with our Operations team), with a JSON body.
  • Format: Meta's value object without metadata or messaging_product (see Webhook).
  • Identify the user: from/recipient_id or, if missing, the BSUID.
  • Types on this page: interactive (button_reply, nfm_reply), button, order (type values)

Your customer's replies to interactive messages and quick reply buttons, shopping carts, and WhatsApp Flows replies. They arrive with the same general structure as other message notifications (contacts and messages).

Quick reply for interactive messages

The type field is "interactive" and interactive.type is "button_reply".

Structure

Fields for Quick reply for interactive messages:

NameDescriptionTypeRequirements
contextObject that contains information about a related message.ObjectRequired.
button_replyReply button.ObjectRequired.

Interactive message context object

NameDescriptionTypeRequirements
fromPhone number (with country code) of the sender of the quoted message or of the message associated with the button.StringRequired.
idInternal ID of the quoted message or of the message associated with the button (the id returned by the send API).StringRequired.

Button_reply object

NameDescriptionTypeRequirements
idButton ID.StringRequired.
titleButton title.StringRequired.

Example

Complete Quick reply for interactive messages example:

{
"contacts": [
{
"profile": {
"name": "Héctor"
},
"wa_id": "5215500000001"
}
],
"messages": [
{
"context":
{
"from": "5215541697885",
"id": "NTI1NTIwNzc3MDU41qeKUOpTHmS"
},
"from": "5215500000001",
"id": "wamid.HBgNNTIxNTUyMDc3NzA1OBUCABIYFDNBMDFEMDFEOTFFMkE0NEU4MThBAA==",
"timestamp": "1617061836",
"type": "interactive",
"interactive": {
"type": "button_reply",
"button_reply": {
"id": "3",
"title": "Noodle soup"
}
}
}
]
}


Quick reply (button type)

The type field is "button".

Structure

Fields for Quick reply (button type):

NameDescriptionTypeRequirements
contextObject that contains information about a related message.ObjectRequired.
buttonButton.ObjectRequired.

Button context object

NameDescriptionTypeRequirements
fromPhone number (with country code) of the sender of the quoted message or of the message associated with the button.StringRequired.
idID of the quoted message or of the message associated with the button.StringRequired.

Button object

NameDescriptionTypeRequirements
payloadPayload.StringRequired.
textButton text.StringRequired.

Example

Complete Quick reply (button type) example:

{
"contacts": [
{
"profile": {
"name": "Héctor"
},
"wa_id": "5215500000001"
}
],
"messages": [
{
"from": "5215500000001",
"id": "ABGHUhVUByKUHwIKPrA13J63aX1gRA",
"timestamp": "1617061836",
"type": "button",
"button": {
"payload": "payload for good",
"text": "Good"
},
"context": {
"from": "5215500000001",
"id": "gBGHUhciNWGSfwIJFtyApXYmcGjx"
}
}
]
}


Shopping cart

The type field is "order".

Structure

Fields for Shopping cart:

NameDescriptionTypeRequirements
orderPurchase order.ObjectRequired.

Order object

NameDescriptionTypeRequirements
catalog_idCatalog ID.StringRequired.
product_itemsList of product items.Object listRequired.

Product item object

NameDescriptionTypeRequirements
currencyCurrency.StringRequired.
item_priceProduct price.NumberRequired.
product_retailer_idProduct ID.StringRequired.
quantityQuantity to purchase.NumberRequired.

Example

Complete Shopping cart example:

{
"contacts": [
{
"profile": {
"name": "John Smith"
},
"wa_id": "5215500000001"
}
],
"messages": [
{
"from": "5215500000001",
"id": "ABGHUhVUByKUHwIKPrA13J63aX1gRA",
"timestamp": "1617061836",
"type": "order",
"order":{
"catalog_id": "1374748992926971",
"product_items":
[
{
"currency": "MXN",
"item_price": 800,
"product_retailer_id": "ING_0001",
"quantity": 1
}
],
"text": "I want this one"
}
}
]
}


WhatsApp Flows

Reply your customer sends when they complete a Flow. The type field is "interactive" and interactive.type is "nfm_reply".

Structure

Fields for WhatsApp Flows:

NameDescriptionTypeRequirements
typeThe value is "nfm_reply" or "list_reply".StringRequired.
nfm_replyHolds the data received from the customer.ObjectRequired.
list_replyOption selected by the user from a list.ObjectOptional.

Nfm_reply object

NameDescriptionTypeRequirements
response_jsonThe values of the fields the user filled in, as JSON. Always present.StringRequired.
bodyThe value is "Sent".StringRequired.
nameThe value is "flow".StringRequired.

List_reply object

NameDescriptionTypeRequirements
idIdentifier of the selected option.StringRequired.
titleTitle of the selected option.StringRequired.
descriptionDescription of the selected option.StringOptional.

Example

Complete WhatsApp Flows example:

{
"contacts":
[
{
"profile":
{
"name": "Héctor"
},
"wa_id": "5215520777058"
}
],
"messages":
[
{
"context":
{
"from": "5215541697885",
"id": "NTI1NTIwNzc3MDU41qeKUOpTHmS"
},
"from": "5215520777058",
"id": "wamid.HBgNNTIxNTUyMDc3NzA1OBUCABIYFDNBMEREMUE4QjIxMEM3MDE3RjQ4AA==",
"timestamp": "1711568359",
"type": "interactive",
"interactive":
{
"type": "nfm_reply",
"nfm_reply":
{
"response_json": "{\"first_name\":\"Hector\",\"last_name\":\"Hernandez\",\"flow_token\":\"FLOW_TOKEN\",\"products\":[\"mobile\",\"data\"],\"email\":\"Hector.hernandez@conceptomovil.com\"}",
"body": "Sent",
"name": "flow"
}
}
}
]
}


WhatsApp — Previous
Message notifications
Next — WhatsApp
Status notifications