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.
Operations
The Operation dropdown decides what the node does and which fields appear under it. These are the exact values the API validates against:
| Value | In the dropdown | What it does |
|---|---|---|
| sendText | Send text | — |
| sendImage | Send image | — |
| sendAudio | Send audio | — |
| sendVideo | Send video | — |
| sendDocument | Send document | — |
| sendLocation | Send location | — |
| sendTemplate | Send template | — |
| replyToMessage | Reply to message | — |
| markAsRead | Mark as read | — |
| sendReaction | Send reaction | — |
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.
markAsReadis 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.