Package Information
Documentation
n8n plugin for WaliChat WhatsApp API
This is an n8n community node that integrates WaliChat's WhatsApp API functionality into your n8n workflows.
Send WhatsApp messages, upload media files, validate phone numbers, manage chats, contacts, team members, departments, and more - all within your automated workflows.
WaliChat is a versatile WhatsApp Team Chat and API solution for business messaging to automate anything on WhatsApp.
Check out the API documentation and examples here
Contents
Requirements
- Node.js: v16 or higher
- n8n: v1.70 or later
- WaliChat account: sign up for free to get API access
- API Key: obtain your API key here
- WhatsApp number: At least one WhatsApp number connected to WaliChat
Installation
Community Nodes (Recommended)
- Go to Settings > Community Nodes
- Select Install
- Enter
n8n-nodes-walichat
in the "Enter npm package name" field - Agree to the risks of using community nodes: select "I understand the risks of installing unverified code from a public source"
- Select Install
- You can now use WaliChat's node in your workflows: if you can't see it, restart n8n instance
Manual installation
To get started, install the package in your n8n root directory:
# Using npm
npm install n8n-nodes-walichat
# Alternatively, for Docker-based installations
docker exec -it n8n npm install n8n-nodes-walichat
After installation, restart your n8n instance.
Setup
- Go to Credentials
- Select Add Credential button
- Select WaliChat from the "Search for app" dropdown
- Enter your WaliChat API key in the API Key field
- Select Save to store your credentials
Features
Send Text Messages
- Send formatted text messages to any WhatsApp user
- Support for rich text formatting (bold, italic, monospace, strikethrough)
- Add URLs with preview capability
- Include emojis and special characters
- Send to individual contacts or broadcast to multiple recipients
Send Multimedia Messages
- Send images, videos, documents, and audio files
- Support for GIFs and stickers
- Upload files by URL or from local storage
- Add captions to media messages
- Set media message attributes (filename, mimetype, etc.)
Schedule Messages
- Schedule messages for future delivery
- Set specific date and time for delivery
- Schedule recurring messages with external triggers
- Cancel scheduled messages before delivery
Contacts Management
- Validate if phone numbers exist on WhatsApp
- Check contact's profile information
- Add contacts to your address book
- Create and manage contact groups
Webhooks & Real-time Events
- Process incoming messages via webhooks
- React to message status updates (sent, delivered, read)
- Handle group events (joins, leaves, topic changes)
- Monitor connection status changes
- Receive call notifications
Templates & Automation
- Send template messages for business accounts
- Use message variables for personalization
- Create automated reply workflows
- Set up conditional message flows based on responses
Advanced Features
- Send interactive buttons and list messages
- Create polls and gather responses
- Send location messages
- Implement quick reply buttons
- Handle message reactions
Utility Functions
- Download and process media from incoming messages
- Generate QR codes for WhatsApp Web login
- Monitor device battery and connection status
- Manage multiple WhatsApp accounts from a single workflow
Configuring n8n Webhooks for External Access
To receive events from WaliChat or other external services, you'll need to configure n8n with a publicly accessible URL. By default, n8n runs locally and generates webhook URLs using localhost, which external services cannot reach.
Understanding Webhook Configuration
n8n creates webhook URLs by combining the protocol, host, and port settings. When running behind a reverse proxy or needing public access, you must manually set the webhook URL.
Setting the Webhook URL
Temporary Configuration (Session Only)
Mac / Linux
export WEBHOOK_URL=https://your-domain.com/
n8n start
Windows (Command Prompt)
set WEBHOOK_URL=https://your-domain.com/
n8n start
Windows (PowerShell)
$env:WEBHOOK_URL = "https://your-domain.com/"
n8n start
Permanent Configuration
Mac / Linux
Add to your ~/.bashrc
, ~/.zshrc
, or appropriate shell configuration file:
echo 'export WEBHOOK_URL=https://your-domain.com/' >> ~/.bashrc
source ~/.bashrc
Windows
Set a system environment variable through:
- Right-click on 'This PC' or 'My Computer' → Properties
- Click 'Advanced system settings'
- Click 'Environment Variables'
- Add a new system variable with:
- Name:
WEBHOOK_URL
- Value:
https://your-domain.com/
- Name:
Verifying Your Webhook Configuration
- Start n8n after setting the webhook URL
- Create a new workflow and add an "WaliChat" node that uses webhooks
- The webhook URL should now show your custom domain instead of localhost
- External services can now successfully send events to your n8n instance
Note: Ensure your domain is properly set up with SSL and that your network/firewall allows incoming connections to the port your n8n instance is using.
Using ngrok for Public Webhook URLs
If you're developing locally and need a quick way to expose your n8n instance to the internet for testing webhooks, ngrok is a great solution.
Installing ngrok
Mac
# Using Homebrew
brew install ngrok
Or download and install manually here
Linux
Follow the instructions described here
Windows
- Download ngrok from https://ngrok.com/download
- Extract the zip file
- Optionally, add the ngrok executable to your PATH or move it to a directory that's already in your PATH
Alternatively follow the instructions here
Setting Up ngrok
- Sign up for a free account at https://ngrok.com
- Get your auth token from the ngrok dashboard
- Configure ngrok with your auth token:
ngrok authtoken YOUR_AUTH_TOKEN
Using ngrok with n8n
Start your n8n instance first:
n8n start
In a new terminal window, start ngrok pointing to n8n's default port:
ngrok http 5678
Ngrok will display a URL like
https://abc123.ngrok.io
Set this as your n8n webhook URL in a new terminal:
Mac/Linux:
export WEBHOOK_URL=https://abc123.ngrok.io/ n8n start
Windows (Command Prompt):
set WEBHOOK_URL=https://abc123.ngrok.io/ n8n start
Windows (PowerShell):
$env:WEBHOOK_URL = "https://abc123.ngrok.io/" n8n start
You'll need to restart n8n for the webhook URL changes to take effect
Example Workflow
- Start n8n on port 5678
- Launch ngrok:
ngrok http 5678
- Note the ngrok URL (e.g.,
https://abc123.ngrok.io
) - Stop n8n
- Set the webhook URL environment variable with the ngrok URL
- Restart n8n
- Create a workflow with a WaliChat webhook trigger
- The webhook URL will now use your ngrok domain and be accessible from the internet
Note: Free ngrok sessions expire after a few hours and the URL changes each time you restart ngrok. For production use, consider a permanent solution like a proper domain with a reverse proxy.
License
MIT