WhatsApp Action

Sends WhatsApp messages through the WhatsApp Business API: text, images, audio, video, documents, location, reactions, and pre-approved templates. Which of them Meta will actually deliver depends on one rule, and it is worth reading before building anything.

Setup

A WhatsApp Business credential, from your Meta app. The recipient goes in to as an E.164 number without the leading + — for example 5215551234567. Inside a flow triggered by an inbound WhatsApp message, that is normally {{payload.from}}.


Mode — action or AI toolkit

The Mode selector decides who drives the node. In Action mode you pick one operation and fill its fields, and the node does that every time it runs. In AI toolkit mode the operations become tools an AI Node can call, and the model chooses which one and with what arguments.

Toolkit mode is opt-in per node, and it is what makes this node show up in an AI Node's tool picker. A node left in Action mode is invisible to agents.

Operations

The Operation dropdown decides what the node does and which fields appear under it. These are the exact values the API validates against:

ValueIn the dropdownWhat it does
sendTextSend text
sendImageSend image
sendAudioSend audio
sendVideoSend video
sendDocumentSend document
sendLocationSend location
sendTemplateSend template
replyToMessageReply to message
markAsReadMark as read
sendReactionSend reaction

The 24-hour customer service window. Free-form messages — text, media, reactions — only reach a user who has messaged the business in the last 24 hours. Outside that window Meta blocks the send, and the only thing that gets through is sendTemplate with a template Meta approved in advance. This is a platform rule, not a HostWebhook one, and it is the single most common reason a WhatsApp flow “stops working”.

Gotchas

  • No HTML. WhatsApp takes plain text with its own light markup: *bold*, _italic_, ~strike~.
  • Templates need approval before they exist. Register them in Meta's console; the node only picks one by name and fills its variables.
  • markAsRead is a courtesy that costs nothing — the blue ticks are the cheapest way to tell a customer the bot is alive.
  • Reactions need the inbound message id, which arrives in the trigger payload.