Package Information
Documentation
n8n-nodes-flowsensy

An n8n community node package for sending WhatsApp template (HSM) messages
through the WhatsApp Cloud API,
proxied via prod-backend.flowsensy.com.
- Flowsensy Send WhatsApp Template — an action node with one operation
today: Send Template Message. Pick an approved template from a dropdown
(each option previews the rendered message), fill in the template's
variables in a friendly mapped-fields UI, and send it to a phone number. - WhatsApp Template API credential — stores the bearer access token and
the WhatsApp account UID used by every request.
Build
cd n8n-nodes-flowsensy
npm install
npm run build # compiles TypeScript to ./dist and copies icons
Install into your n8n instance
You have two options.
Option A — Install via the n8n UI (self-hosted)
- Publish the package to npm (
npm publish) or use a local tarball. - In n8n, go to Settings → Community Nodes → Install.
- Enter the package name
n8n-nodes-flowsensyand confirm.
Community-node installs via the UI require a package that is on npm.
Option B — Local / manual install (great for testing)
Link the built package into your n8n custom folder:
# in this project
npm run build
npm link
# tell n8n where custom nodes live (default is ~/.n8n/custom)
mkdir -p ~/.n8n/custom
cd ~/.n8n/custom
npm link n8n-nodes-flowsensy
# restart n8n
n8n start
Then search for "Flowsensy Send WhatsApp Template" in the node panel,
and create a WhatsApp Template API credential (Access Token + WhatsApp
Account UID) when prompted.
Option C — Docker
Mount the built package into the container's custom folder:
docker run -it --rm \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
-v $(pwd):/home/node/.n8n/custom/n8n-nodes-flowsensy \
docker.n8n.io/n8nio/n8n
How "Send Template Message" works
- Templates dropdown — populated at runtime from
GET /api/whatsapp/templates/list/{whatsapp_account_uid}. Each option's
description shows a rendered preview of the template (header, body,
footer, buttons) so you can tell templates apart before picking one. - Variables — once a template is selected, the node parses its
HEADER/BODY/BUTTONScomponents for{{1}}/{{name}}placeholders
(supporting bothPOSITIONALandNAMEDparameter formats, plus media
headers and URL/copy-code buttons) and exposes one input field per
variable, labelled using the template's own example values. - Send — the node reassembles your entered values into the WhatsApp
Cloud API'scomponentsstructure and callsPOST /api/whatsapp/messages/template/{whatsapp_account_uid}/{template_name}.
All requests are authenticated with Authorization: Bearer <accessToken>
from the WhatsApp Template API credential.
Using Flowsensy as an AI Agent tool
The node is marked usableAsTool: true, so every operation (Send Template
Message, Send Text/Image/Document/Audio/Video Message, and all the
Interactive operations) can be attached directly under an AI Agent
node's Tool input — no separate "Flowsensy Tool" node is needed.
- On the self-hosted n8n instance, set the environment variable
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=trueand restart n8n. Community
nodes cannot be used as tools until this is enabled by the instance admin. - Add Flowsensy under the AI Agent's Tool connector like any other tool
node, and pick the Resource/Operation you want the agent to call (e.g.
Send Text Message). - For any field you want the LLM to fill in dynamically (recipient number,
message body, template variables, button labels, etc.), replace its value
with a$fromAI()
expression, e.g.:
Fields left as plain static values stay fixed and are not exposed to the{{ $fromAI('to', 'Recipient WhatsApp number, digits only', 'string') }} {{ $fromAI('message', 'The message text to send', 'string') }}
model. - If you want to expose multiple operations at once (e.g. both "Send Text
Message" and "Send Image Message") as separate callable tools, add the
Flowsensy node multiple times, once per operation, and give each one a
distinct tool name/description via the node's "Tool" tab.
Note: operations with Wait for Response enabled pause the whole
workflow execution waiting for a WhatsApp reply. That works fine as a
regular node, but is not meaningful when the node is called as a tool
mid-agent-turn — leave Wait for Response off for tool use.