npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

n8n-nodes-n8ntools-whatsapp

v1.0.2

Published

Enhanced WhatsApp Business API node for N8N with comprehensive messaging integration

Readme

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": "[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

  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