Skip to content

Text · context.message_id

Reply with the question quoted.

A normal text message plus context.message_id: WhatsApp shows the customer's message quoted above your answer.

to and the message ids are n8n expressions that read the WhatsApp Trigger right before this node ($json.messages[0].from / .id). For a manual test, replace them with a number and a message id.

The JSON body

HTTP Request → Body → JSON
POSThttps://graph.facebook.com/v26.0/YOUR_PHONE_NUMBER_ID/messages
{  "messaging_product": "whatsapp",  "recipient_type": "individual",  "to": "{{ $json.messages[0].from }}",  "type": "text",  "context": {    "message_id": "{{ $json.messages[0].id }}"  },  "text": {    "body": "Done. Friday at 6 pm is yours."  }}

Limits & common mistakes

  1. context.message_id is the wamid of the message you reply to; take it from the trigger (messages[0].id).

    Source (opens in a new tab)
  2. The quoted bubble doesn't show if that message was deleted, archived or moved to long-term storage (typically after 30 days).

    Source (opens in a new tab)
  3. A reaction can't be sent as a reply, and a template reply shows no quote.

    Source (opens in a new tab)
  4. Same 24-hour window as any free-form message.

    Source (opens in a new tab)
How to set up the credential in n8n
  1. In n8n, open Credentials → Create credential and pick Header Auth.
  2. Fill in the two fields:
    NameAuthorization
    ValueBearer <your token>
  3. Open the pasted node. Authentication is already Generic → Header Auth; choose the credential you just made.
  4. Use a System User token from Meta Business settings; the token on the API Setup page expires within hours.Source (opens in a new tab)Source (opens in a new tab)

Your token lives in n8n only. I never ask for it.

Don't have time to build it? I'll build it for you.

Build it for me

WhatsApp and n8n are trademarks of their owners. Pixtaha isn't affiliated with or endorsed by Meta or n8n.