Advanced WhatsApp Business API node for n8n with interactive messages, buttons, lists, catalogs and flows
npm install n8n-nodes-whatsapp-pron8n-nodes-whatsapp-pro
bash
cd ~/.n8n/nodes
npm install n8n-nodes-whatsapp-pro
`
Credentials Setup
1. Go to Meta for Developers
2. Create or select your app
3. Add WhatsApp product
4. Get your:
- Access Token (permanent token recommended)
- Phone Number ID
- Business Account ID
Operations
$3
- Send Text - Send text messages with URL preview option
- Send Location - Send location with coordinates
- Send Contact - Send contact cards with name, phone, email, and organization
- React - React to messages with emoji
$3
- Send Buttons - Quick reply buttons (up to 3)
- Send List - List message with sections (up to 10 items total)
- Send CTA Button - Call-to-action (URL or Phone call)
- Request Location - Ask user for their location
$3
- Send Template - Send approved template with variables
- List Templates - Get all templates
- Get Template - Get specific template
- Delete Template - Delete a template
$3
- Send Image - Send images (URL or Media ID)
- Send Video - Send videos
- Send Document - Send documents with filename
- Send Audio - Send audio files
- Send Sticker - Send stickers
$3
- Send Product - Single product message
- Send Product List - Multi-product message (up to 30)
- Get Catalog - Get catalog information
WhatsApp API Limits
| Element | Limit |
|---------|-------|
| Buttons per message | 3 |
| Button title | 20 characters |
| List sections | 10 |
| List items (total) | 10 |
| List item title | 24 characters |
| List item description | 72 characters |
| Header text | 60 characters |
| Footer text | 60 characters |
| Body text | 1024 characters |
Examples
$3
`json
{
"to": "56912345678",
"bodyText": "How can we help you?",
"buttons": [
{ "id": "sales", "title": "Sales" },
{ "id": "support", "title": "Support" },
{ "id": "info", "title": "More Info" }
]
}
`
$3
`json
{
"to": "56912345678",
"bodyText": "Select an option:",
"buttonText": "View Options",
"sections": [
{
"title": "Products",
"items": [
{ "id": "p1", "title": "Product A", "description": "Description A" },
{ "id": "p2", "title": "Product B", "description": "Description B" }
]
}
]
}
`
$3
`json
{
"to": "56912345678",
"contactFirstName": "John",
"contactLastName": "Doe",
"contactPhone": "+1234567890",
"contactEmail": "john@example.com",
"contactOrg": "Acme Inc"
}
`
Validation & Error Handling
The node includes built-in validation for:
- Maximum button count (3)
- Maximum sections (10)
- Maximum total list items (10)
- Character limits for all text fields
- Required field validation
- WhatsApp API error code handling
Testing
`bash
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # With coverage report
``