Integrations
n8n integration
Send WhatsApp messages from your n8n workflows. For example, message a new lead from a webhook, confirm an order from your store, or send an alert when a check fails.
There are two ways to connect:
- The Wbiztool community node (
n8n-nodes-wbiztool): ready-made nodes with fields for each option. - The built-in HTTP Request node: works on any n8n instance and gives you access to every API endpoint. See Using the HTTP Request node.
Before you start#
- A Wbiztool account with a connected WhatsApp number on WhatsApp settings.
- Your Client ID and API key from Settings → API keys.
- The WhatsApp Client ID of the number to send from, shown on WhatsApp settings.
Install the community node#
Open community nodes
In n8n, go to Settings → Community Nodes and click Install.
Enter the package name
Enter
n8n-nodes-wbiztool, confirm and install. Restart n8n if the nodes don't appear.
On a self-hosted instance you can also install it with npm in your n8n custom nodes folder:
npm install n8n-nodes-wbiztool
Create the credential#
Add a new credential of type WbizTool API:
| Field | Value |
|---|---|
| Client ID | Your API Client ID. |
| API Key | Your API key. |
| WhatsApp Client ID | The default number to send from. Most nodes let you override it. |
| Base URL | Keep the default https://wbiztool.com/api/v1 (no trailing slash). |
When you save, n8n tests the credential against Check credentials.
Nodes#
The package adds these nodes. Each one calls a Wbiztool API endpoint and outputs the API response.
| Node | What it does | API |
|---|---|---|
| WbizTool Send Message | Send a text, image or file to a phone number or a group. | Send message, Send to group |
| WbizTool Send Group Message | Send a message to a WhatsApp group by name. | Send to group |
| WbizTool Send Multi Message | Send the same message to a comma-separated list of numbers. | Send to multiple numbers |
| WbizTool Schedule Message | Schedule a message for a date and time. See the warning below. | Schedule message |
| WbizTool Cancel Message | Cancel a scheduled message by its message ID. | Cancel message |
| WbizTool Message Status | Get the status of a message by its message ID. Only a Sent message returns an item. A queued, failed, cancelled or expired message stops the node with an error such as Created or Failed; turn on Continue On Fail to branch on it. | Message status |
| WbizTool Check Credentials | Check that your Client ID and API key work. | Check credentials |
| WbizTool List WhatsApp Clients | List the WhatsApp numbers in your workspace. | List connected numbers |
| WbizTool Create WhatsApp Client | Add a WhatsApp number to your workspace, with an optional webhook URL. | Connect a WhatsApp number |
| WbizTool WhatsApp Client Status | Check whether a WhatsApp number is connected. | Connection status |
WbizTool Send Message#
| Field | Notes |
|---|---|
| Target Type | Phone Number or Group. |
| Phone Number | Shown for Phone Number. Map it from earlier nodes, for example {{ $json.phone }}. |
| Country Code | Defaults to 91. Change it to your recipients' country code. It's added in front of the phone number unless the number already starts with it. |
| Group Name | Shown for Group. The exact name of a group your WhatsApp number is in. |
| Message Type | Text, Image with Text or File with Text. |
| Message Text | The message, up to 3,000 characters. |
| Image URL / File URL / File Name | Shown for image and file messages. URLs must be public. |
| WhatsApp Client ID (Optional) | Leave empty to use the number from the credential. |
| Additional Options | Expire After (Seconds) and Webhook URL. |
The node outputs messageId (the msg_id from the API). Save it if you want to check the status or cancel the message later.
Example workflow#
- Webhook node receives a new lead with
phoneandname. - WbizTool Send Message: set Phone Number to
{{ $json.phone }}and Message Text toHi {{ $json.name }}, thanks for signing up!. - IF node: check that
{{ $json.messageId }}is not empty to continue with the next step, such as updating your CRM.
A successful WbizTool Send Message outputs an item like this:
{
"success": true,
"messageId": 9817263,
"status": 1,
"message": "Created",
"response": { "status": 1, "message": "Created", "msg_id": 9817263 }
}
The item also includes an input object with the values the node sent. If the API returns an error, the node stops and shows the API's message. Turn on Continue On Fail to get an item with success: false and the error text instead.
For WbizTool WhatsApp Client Status, use the General Status check method. The Status by ID method returns an error for every number because of a bug in that API endpoint. With General Status, a number that isn't connected also stops the node with a Disconnected error, so turn on the node's Continue On Fail setting if you want to branch on the result.
Using the HTTP Request node#
Add an HTTP Request node and configure it like this:
| Setting | Value |
|---|---|
| Method | POST |
| URL | https://wbiztool.com/api/v1/send_msg/ |
| Authentication | None |
| Send Body | On |
| Body Content Type | JSON |
| Specify Body | Using JSON |
Then paste a body like this and map the values from earlier nodes with expressions:
{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 0,
"country_code": "91",
"phone": "{{ $json.phone }}",
"msg": "Hi {{ $json.name }}, thanks for signing up!"
}
A successful call returns {"status": 1, "message": "Created", "msg_id": 9817263}. All fields and error messages are on Send message.
To call other endpoints, change the URL and body. For example, to schedule a message use https://wbiztool.com/api/v1/schedule_msg/ and add date as DD/MM/YYYY, time as HH:MM and timezone. See Schedule message.
To send the same message to several numbers or groups in one call, use https://wbiztool.com/api/v1/send_msg/multi/ and put the recipients in phone as one comma-separated string. See Send to multiple numbers.
{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 1,
"country_code": "91",
"phone": "{{ $json.phones }}",
"img_url": "https://example.com/offers/diwali-sale.jpg",
"msg": "Our Diwali sale starts tomorrow!"
}
Put digits only in each number. Anything that isn't a whole number, such as 98765 43210, is sent as a group name.
n8n expressions work inside any text field. For example, a greeting that depends on the time of day, or text that depends on the order total:
{
"msg": "Good {{ $now.hour < 12 ? 'morning' : 'evening' }} {{ $json.name }}, your order total is {{ $json.total }}.{{ $json.total > 1000 ? ' Delivery is free.' : '' }}"
}
$now uses the workflow's timezone (Workflow settings → Timezone), so set it to decide when "morning" ends.
Get notified when a message is sent#
Create a webhook workflow
Add a Webhook node with HTTP method
POSTand copy its production URL.Pass the URL when you send
Put that URL in the node's Webhook URL option, or in the
webhookfield of your HTTP request body.Read the result
Wbiztool calls the URL once the message is sent or fails. The body is form-encoded and contains only
msg_idandstatus, which isSENTorFAILED.
See Webhook for retries and timeouts.
Troubleshooting#
| Problem | What to check |
|---|---|
| Credential test fails | Check the Client ID and API key on Settings → API keys, that Base URL has no trailing slash, and that the credential's WhatsApp Client ID is a number in this workspace. |
Auth Error: invalid api key | The key was deleted or belongs to a different workspace. |
Invalid whatsapp client | The WhatsApp Client ID isn't a number in this workspace. |
Invalid phone number | The phone value contains letters or symbols other than spaces, dots, dashes, brackets and +, or has fewer than 6 or more than 17 digits. Map a digits-only number such as 919876543210. |
Either phone or group_name parameter is required | The mapped phone value is empty for this item. |
Invalid Contact Number "…" | The number is longer than 15 digits once the country code is added. Check that the country code isn't added to a number that already has one. |
Not enough credits | Your plan has no messages left. |
| Node succeeds but the message isn't sent | The message waits in the queue until your WhatsApp number is connected. Check it on Message status with the HTTP Request node, or in your message history. The WbizTool Message Status node reports a queued message as an error named Created. |
