n8n-nodes-n8ntools-whatsapp
v1.0.2
Published
Enhanced WhatsApp Business API node for N8N with comprehensive messaging integration
Maintainers
Readme
N8N Tools - WhatsApp Enhanced
Complete WhatsApp Business API integration with 35+ operations covering the full WhatsApp ecosystem. This N8N community node provides comprehensive access to Messages, Media, Templates, Contacts, Groups, and Business features through the official WhatsApp Business API platform.
✨ Features
- 📱 Advanced Messaging: Send text, media, interactive buttons, and rich templates
- 🎯 Template Management: Create, manage, and send approved message templates
- 📎 Media Handling: Send images, videos, documents, audio, and stickers up to 100MB
- 📞 Contact Management: Manage contacts, profiles, and business information
- 👥 Group Operations: Create, manage, and interact with WhatsApp groups
- 🔔 Webhook Integration: Real-time message delivery and status tracking
- 📊 Business Analytics: Message delivery rates, read receipts, and engagement metrics
- 🎛️ Interactive Elements: Buttons, lists, quick replies, and call-to-action messages
- 📋 Catalog Management: Showcase products and services through WhatsApp Business
- 🔒 Secure API: Powered by N8N Tools platform with usage tracking and validation
🚀 Quick Start
Installation
Install this node in your N8N instance:
Via Community Nodes (Recommended)
- Go to Settings > Community Nodes in your N8N interface
- Click Install a community node
- Enter
n8n-nodes-n8ntools-whatsapp-enhanced - Click Install
Via npm
npm install n8n-nodes-n8ntools-whatsapp-enhancedSetup Credentials
- Sign up at N8N Tools and get your API key
- In N8N, create new N8N Tools API credentials
- Enter your API URL:
https://api.n8ntools.io - Enter your API key
📋 Available Resources
📱 Messages (10 Operations)
Advanced messaging capabilities:
| Operation | Description | Official Node | Enhanced | |-----------|-------------|---------------|----------| | Send Text Message | Send plain text messages | ✅ Basic | ✅ Full API | | Send Media Message | Send images, videos, documents | ✅ Basic | ✅ Full API | | Send Template | Send approved templates | ❌ | ✅ | | Send Interactive Message | Send buttons and lists | ❌ | ✅ | | Send Location | Share location messages | ❌ | ✅ | | Send Contact | Share contact information | ❌ | ✅ | | Send Sticker | Send animated stickers | ❌ | ✅ | | Mark as Read | Mark messages as read | ❌ | ✅ | | React to Message | Add emoji reactions | ❌ | ✅ | | Forward Message | Forward messages between chats | ❌ | ✅ |
🎯 Templates (8 Operations)
Message template management:
- Create Template: Submit new message templates for approval
- Get Template: Retrieve template information and status
- Update Template: Modify existing templates
- Delete Template: Remove templates
- List Templates: View all business templates
- Get Template Analytics: Template performance metrics
- Submit for Review: Submit templates for Meta approval
- Template Categories: Manage template categories
📎 Media (6 Operations)
Comprehensive media handling:
- Upload Media: Upload files to WhatsApp servers
- Get Media: Retrieve media information
- Download Media: Download received media files
- Delete Media: Remove uploaded media
- Media Metadata: Manage media descriptions and tags
- Supported Formats: Check supported file types and limits
📞 Contacts (5 Operations)
Contact and profile management:
- Get Contact Info: Retrieve contact profile information
- Update Business Profile: Modify business profile details
- Get Business Profile: View current business profile
- Block Contact: Block/unblock contacts
- Get Contact Status: Check if contact uses WhatsApp
👥 Groups (4 Operations)
WhatsApp group management:
- Create Group: Create new WhatsApp groups
- Get Group Info: Retrieve group information
- Add Group Members: Add contacts to groups
- Remove Group Members: Remove members from groups
📊 Analytics (3 Operations)
Business analytics and insights:
- Message Analytics: Delivery and read rates
- Conversation Analytics: Conversation metrics and trends
- Business Insights: Overall business performance data
💡 Usage Examples
Send Interactive Button Message
// Configuration
Resource: "Messages"
Operation: "Send Interactive Message"
Phone Number: "+1234567890"
Request Body: {
"type": "interactive",
"interactive": {
"type": "button",
"body": {
"text": "Welcome to our service! How can we help you today?"
},
"action": {
"buttons": [
{
"type": "reply",
"reply": {
"id": "support",
"title": "Customer Support"
}
},
{
"type": "reply",
"reply": {
"id": "pricing",
"title": "View Pricing"
}
},
{
"type": "reply",
"reply": {
"id": "demo",
"title": "Request Demo"
}
}
]
}
}
}
// Output
{
"resource": "messages",
"operation": "sendInteractiveMessage",
"success": true,
"messaging_product": "whatsapp",
"contacts": [{
"input": "+1234567890",
"wa_id": "1234567890"
}],
"messages": [{
"id": "wamid.ABGGFlA5FpafAgo6tHcxAqsVD0JD="
}],
"creditsUsed": 1,
"creditsRemaining": 99
}Send Approved Message Template
// Send Template with Parameters
Resource: "Templates"
Operation: "Send Template"
Phone Number: "+1234567890"
Request Body: {
"name": "order_confirmation",
"language": {
"code": "en"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "text",
"text": "ORD-12345"
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "John Doe"
},
{
"type": "currency",
"currency": {
"fallback_value": "$99.99",
"code": "USD",
"amount_1000": 99990
}
},
{
"type": "date_time",
"date_time": {
"fallback_value": "February 25, 2024"
}
}
]
}
]
}Send Media with Caption
// Send Image with Interactive Buttons
Resource: "Messages"
Operation: "Send Media Message"
Phone Number: "+1234567890"
Request Body: {
"type": "image",
"image": {
"link": "https://example.com/product-image.jpg",
"caption": "Check out our new product line! What interests you most?"
},
"interactive": {
"type": "button",
"action": {
"buttons": [
{
"type": "reply",
"reply": {
"id": "learn_more",
"title": "Learn More"
}
},
{
"type": "reply",
"reply": {
"id": "buy_now",
"title": "Buy Now"
}
}
]
}
}
}
// Send Document with Filename
Resource: "Messages"
Operation: "Send Media Message"
Phone Number: "+1234567890"
Request Body: {
"type": "document",
"document": {
"link": "https://example.com/product-catalog.pdf",
"filename": "Product Catalog 2024.pdf",
"caption": "Here's our latest product catalog with pricing information."
}
}Create and Manage Templates
// Create New Template
Resource: "Templates"
Operation: "Create Template"
Request Body: {
"name": "welcome_message",
"category": "MARKETING",
"language": "en",
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Welcome to {{1}}!"
},
{
"type": "BODY",
"text": "Hi {{1}}, thank you for joining us! We're excited to have you on board. Reply STOP to opt out."
},
{
"type": "FOOTER",
"text": "Best regards, Customer Support Team"
}
]
}
// Get Template Analytics
Resource: "Templates"
Operation: "Get Template Analytics"
Template Name: "welcome_message"
Request Body: {
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"granularity": "daily"
}Handle Location and Contact Sharing
// Send Location Message
Resource: "Messages"
Operation: "Send Location"
Phone Number: "+1234567890"
Request Body: {
"type": "location",
"location": {
"longitude": -122.425332,
"latitude": 37.758056,
"name": "N8N Tools Office",
"address": "123 Tech Street, San Francisco, CA 94102"
}
}
// Send Contact Information
Resource: "Messages"
Operation: "Send Contact"
Phone Number: "+1234567890"
Request Body: {
"type": "contacts",
"contacts": [{
"addresses": [{
"street": "123 Business Ave",
"city": "San Francisco",
"state": "CA",
"zip": "94102",
"country": "United States",
"country_code": "us",
"type": "WORK"
}],
"birthday": "1985-01-01",
"emails": [{
"email": "[email protected]",
"type": "WORK"
}],
"name": {
"formatted_name": "Customer Support",
"first_name": "Customer",
"last_name": "Support"
},
"org": {
"company": "Example Company"
},
"phones": [{
"phone": "+1-555-555-5555",
"type": "WORK"
}],
"urls": [{
"url": "https://example.com",
"type": "WORK"
}]
}]
}⚙️ Configuration Options
Message Settings
- Message Type: Text, media, template, interactive
- Delivery Options: Preview URL, disable notifications
- Reply Context: Reply to specific messages
- Message Priority: Normal, high priority delivery
Business Profile
- Business Description: Company information
- Business Hours: Operating hours display
- Business Category: Industry classification
- Contact Information: Phone, email, website, address
Advanced Request Options
- Request Body: JSON payload for operations
- Phone Number: Target recipient identifier (international format)
- Media ID: For uploaded media references
- Additional Options: Tracking, analytics, and formatting
🛠️ Example Workflows
Customer Onboarding
[New Customer] → [WhatsApp Enhanced: Send Template] → [Welcome Message] → [Setup Instructions] → [Follow-up]Order Management
[Order Placed] → [WhatsApp Enhanced: Send Template] → [Payment Confirmation] → [Shipping Updates] → [Delivery Notification]Customer Support
[Support Request] → [WhatsApp Enhanced: Send Interactive Message] → [Category Selection] → [Agent Assignment] → [Resolution]Marketing Campaign
[Campaign Trigger] → [WhatsApp Enhanced: Send Template] → [Track Engagement] → [Follow-up Messages] → [Analytics Report]📊 Comparison with Official WhatsApp Node
| Feature Category | Official Node | WhatsApp Enhanced | Improvement | |------------------|---------------|-------------------|-------------| | Messages | 2 operations | 10 operations | +400% | | Templates | 0 operations | 8 operations | ∞ (new) | | Media | 1 operation | 6 operations | +500% | | Contacts | 0 operations | 5 operations | ∞ (new) | | Groups | 0 operations | 4 operations | ∞ (new) | | Analytics | 0 operations | 3 operations | ∞ (new) | | Total Operations | 3 operations | 36 operations | +1100% |
🔧 API Endpoints
All operations are routed through N8N Tools API for consistent authentication and usage tracking:
| Resource | Base Endpoint |
|----------|---------------|
| Messages | /api/v1/whatsapp-enhanced/messages/ |
| Templates | /api/v1/whatsapp-enhanced/templates/ |
| Media | /api/v1/whatsapp-enhanced/media/ |
| Contacts | /api/v1/whatsapp-enhanced/contacts/ |
| Groups | /api/v1/whatsapp-enhanced/groups/ |
| Analytics | /api/v1/whatsapp-enhanced/analytics/ |
🚨 Error Handling
The node provides comprehensive error handling with detailed messages:
{
"error": "INVALID_PHONE_NUMBER",
"success": false,
"resource": "messages",
"operation": "sendTextMessage",
"details": {
"issue": "The phone number format is invalid or not registered on WhatsApp",
"field": "to",
"value": "INVALID_NUMBER",
"error_code": 1006
}
}💸 Pricing & Limits
- Standard Operations: 1 credit per API call
- Template Messages: 2 credits (due to Meta approval costs)
- Media Operations: 1-3 credits based on file size
- Monthly Quotas: Based on your N8N Tools subscription plan
- Rate Limits: Based on your subscription tier
- Usage Tracking: Real-time credit monitoring
🔧 Troubleshooting
Common Issues
Authentication Errors
- Verify N8N Tools API key is valid and active
- Check API URL is set to
https://api.n8ntools.io - Ensure sufficient credits in your account
Phone Number Format
- Use international format with country code (+1234567890)
- Ensure recipient has WhatsApp installed
- Verify business phone number is verified with Meta
Template Issues
- Templates must be approved by Meta before use
- Check template status before sending
- Ensure parameter counts match template definition
Media Upload Limits
- WhatsApp limits media files to 100MB
- Supported formats: images (JPG, PNG), videos (MP4), documents (PDF, DOC)
- URLs must be publicly accessible and HTTPS
📈 Performance Tips
- Template Optimization: Pre-approve templates for faster delivery
- Media Caching: Upload media once and reuse media IDs
- Batch Operations: Group messages for bulk campaigns
- Error Handling: Implement retry logic for temporary failures
- Rate Limiting: Respect WhatsApp's messaging limits
🆘 Support
- Documentation: docs.n8ntools.io
- API Reference: api.n8ntools.io/docs
- Community: Discord
- Email: [email protected]
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by N8N Tools
