n8ntools-whatsapp

Enhanced WhatsApp Business API node for N8N with comprehensive messaging integration

Package Information

Released: 13 mo ago
Downloads: 13 weekly / 28 monthly
Latest Version: 1.0.2

Documentation

N8N Tools - WhatsApp Enhanced

npm version
npm downloads
License: MIT

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)

  1. Go to Settings > Community Nodes in your N8N interface
  2. Click Install a community node
  3. Enter n8n-nodes-n8ntools-whatsapp-enhanced
  4. Click Install

Via npm

npm install n8n-nodes-n8ntools-whatsapp-enhanced

Setup Credentials

  1. Sign up at N8N Tools and get your API key
  2. In N8N, create new N8N Tools API credentials
  3. Enter your API URL: https://api.n8ntools.io
  4. 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": "support@example.com",
      "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

  1. Template Optimization: Pre-approve templates for faster delivery
  2. Media Caching: Upload media once and reuse media IDs
  3. Batch Operations: Group messages for bulk campaigns
  4. Error Handling: Implement retry logic for temporary failures
  5. Rate Limiting: Respect WhatsApp's messaging limits

🆘 Support

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❤️ by N8N Tools

Discussion