Package Information
Documentation
n8n-nodes-waapy
Community nodes for connecting n8n with the WaaPy WhatsApp API.
What This Package Does
It adds 2 nodes to n8n:
WaaPy (Action)
Send WhatsApp messages using:- Text
- Image
- Template (including dynamic template variables)
WaaPy Trigger
Start workflows when WaaPy sends webhook events, such as:- Incoming message event
- Message status event
Installation
Option A: Install from n8n Community Nodes UI
- Open n8n.
- Go to Settings -> Community Nodes.
- Search for
n8n-nodes-waapy. - Install and restart n8n if required.
Option B: Manual install
npm install n8n-nodes-waapy
Credentials
Create credentials of type WaaPy API in n8n:
- Server URL
Example:https://api.waapy.co - API Key
Your WaaPy API token
The credentials test uses GET /n8n/health.
Node Guide
1) WaaPy (Action)
Resource
Message
Operations
A. Send Text
Use this when you want to send a normal text message.
Required fields:
- Connection Name
- Recipient Number
- Message Text
B. Send Image
Use this when you want to send an image.
Required fields:
- Connection Name
- Recipient Number
- Image Source (
From URLorUpload File)
Optional:
- Caption
If you choose Upload File, provide:
- Input Binary Field (default:
data)
C. Send Template
Use this when you want to send an approved WhatsApp template.
Required fields:
- Connection Name
- Recipient Number
- Template
How it works:
- Template list is loaded from
GET /n8n/templates. - Selected template ID is used to fetch details from
GET /n8n/templates/:templateId. - The node inspects template components (header/body/footer/buttons).
- The node builds payload for
POST /n8n/messages/send-template.
Dynamic template inputs:
- Header Parameters
- Body Parameters
- Button Parameters
Validation:
- Strict Template Validation (default:
true) checks that your dynamic inputs match the template placeholders. - If counts do not match (for example body expects 2 variables but you pass 1), node execution fails with a clear error.
Notes:
- Footer is detected from template metadata automatically.
- Footer usually does not require variables; only header/body/buttons can include placeholders.
2) WaaPy Trigger
Use this node to receive WaaPy webhook events and start workflows.
Available events:
message.receivedmessage.status
Behavior:
- On activation, n8n registers a webhook in WaaPy.
- On deactivation, n8n removes it.
- Incoming webhook payload is output as JSON in the first item.
Quick Usage Examples
Send a text message
- Add WaaPy node.
- Select
Resource: Message. - Select
Operation: Send Text. - Fill connection, recipient, text.
- Execute node.
Send a template with dynamic values
- Add WaaPy node.
- Select
Operation: Send Template. - Choose template from the list.
- Fill dynamic values in Header/Body/Button parameters.
- Execute node.
Trigger on incoming message
- Add WaaPy Trigger node.
- Select event
message.received. - Activate workflow.
- Send WhatsApp message to your connected number and verify payload in execution.
Development
npm ci
npm run build
npm run dev
Useful commands:
npm run build:watch
npm run lint
npm run lint:fix
For local end-to-end smoke testing:
docker-compose up --build
Troubleshooting
Template list is empty
- Check API key permissions.
- Verify
Server URLis correct. - Ensure templates are active/approved in WaaPy.
Template send fails due to parameter count
- Review placeholder count in template details.
- Match Header/Body/Button input counts to template variables.
- Temporarily disable
Strict Template Validationonly for debugging.
Trigger not receiving events
- Ensure workflow is active.
- Check that webhook registration exists in WaaPy.
- Verify your n8n webhook URL is publicly reachable by WaaPy.
License
MIT