Back to Nodes

1MSG for WhatsApp Business API

Last updated Oct 14, 2026

Send WhatsApp messages, receive webhooks, and make any API request using the official WhatsApp API through 1MSG.

61 Weekly Downloads
977 Monthly Downloads

Included Nodes

1MSG for WhatsApp Business API
1MSG for WhatsApp Business API Trigger

Description

n8n node for 1MSG

Send WhatsApp messages and receive WhatsApp events in n8n through a 1MSG channel.

The node is enough for three setups:

1. A customer writes on WhatsApp, 1MSG starts an n8n workflow, and the workflow updates a CRM.
2. A customer writes on WhatsApp, 1MSG starts an n8n workflow, and the workflow asks an AI tool for a reply.
3. A CRM event starts an n8n workflow, and the workflow sends a WhatsApp template through 1MSG.

Install

In n8n, go to Settings → Community nodes and install:

@1msg/n8n-nodes-1msg

On a self-hosted n8n you can also add the package to N8NCUSTOMEXTENSIONS or install it with npm inside the n8n container. Restart n8n after installing.

Credentials

Create a credential named 1MSG API.

| Field | What to paste |
| — | — |
| API Key | The channel API key from 1MSG channel settings. The channel is read from this key. |
| API URL | Production is https://api.1msg.io. Sandbox is a test channel at https://sandbox.1msg.io. Custom is another host 1MSG gave you, for example https://sandbox.stage.1msg.io. |
| Channel ID | Leave empty for a production key that already belongs to one channel. Fill it for a sandbox channel and for an older key. |

Sandbox does not read the Authorization header. For a sandbox host the node sends the same API key as the token query parameter, and only to that host. Production keeps the key in the header.

Use Test on the credential. A successful test reads the channel status. The same credential is used by 1MSG for WhatsApp Business API and its trigger. The key stays in the n8n credential and is not typed again on each node. If you edit or replace the credential, existing nodes use the credential that is selected on them.

API reference: docs.1msg.io. Support: help.1msg.io and 1msg.company@gmail.com.

1MSG for WhatsApp Business API

Send Message

How to fill → Using the form (the default):

  • Recipient — a phone, BSUID, or username. The node decides which one it is. Phones can include spaces, brackets, dashes, dots, and a leading +. A chat ID from a webhook, such as 14155552671@c.us, also works.
  • Message — the text. Values from earlier steps can be inserted here.
  • A free-form message arrives only when that person wrote to the channel in the last 24 hours. Outside that window, use Send Template. The form says this under the message.

    How to fill → Custom request body replaces the form with the full JSON body of POST /sendMessage. Do not put the API key in that JSON.

    Send Template

    Using the form:

  • Recipient — same field as Send Message.
  • Template — approved templates from the channel. Each row shows the name, language, and category. Use the refresh icon on the list to reload templates. Switch the field to ID to type a template name or ID.
  • Variables — appear after a template is chosen. They are labeled from the template, for example “Variable 1 in the text”, “Variable in the header”, and “Variable in the link button”. The template text is shown next to the field. A header image, video, or document asks for File link. A template with no variables shows no variable fields.
  • Custom request body still uses Recipient and Template, and adds Parameters: the WhatsApp component array, for example a body variable. Name, language, and namespace come from the selected template.

    Make API Call

    Call any method on the same channel without typing the key again.

  • Method — GET, POST, PUT, PATCH, or DELETE.
  • Path — for example templates or messages. A full URL is accepted only on the credential’s 1MSG host.
  • Query parameters and Request body — JSON. Leave {} when you do not need them.
  • The API response is returned as the n8n item. An HTTP error is shown in plain language.

    1MSG for WhatsApp Business API Trigger

    The trigger starts the workflow when 1MSG sends a webhook. In n8n it is named 1MSG for WhatsApp Business API Trigger. Choose any combination of:

  • Incoming message webhooks
  • Outgoing message webhooks
  • Outgoing message delivery status (sent, delivered, read, or failed)

When the workflow is activated, n8n registers the production URL of this trigger on the channel. URLs that are already configured are kept. A channel can store 5 URLs. If the list is already full, activation stops and the error includes the n8n URL so you can copy it into the channel settings yourself. The n8n node also shows the webhook URL in its webhook panel.

If delivery status is selected, the node turns on ackNotificationsOn for the channel so status events are included. Deactivating the workflow removes only this trigger’s URL.

Each matching event becomes one item. The fields you filter on stay at the top. The rest of the webhook stays in message or ack.

| event | When | Also on the item |
| — | — | — |
| incoming | Customer message | instanceId, chatId, message |
| outgoing | Business message | instanceId, chatId, message |
| status | Delivery receipt | instanceId, chatId, status, ack |

Message id, direction, type, and text are inside message. A delivery receipt’s id is inside ack.

A request that does not match the selected events is acknowledged and does not start the workflow.

Examples

Reply to a new customer message with a template when the 24-hour window may be closed:

1. 1MSG for WhatsApp Business API Trigger, with incoming messages selected.
2. 1MSG for WhatsApp Business API → Send Template. Set Recipient to {{$json.chatId}} and choose the template.

Forward an incoming message to another system:

1. 1MSG for WhatsApp Business API Trigger.
2. An HTTP Request node that posts {{$json.message}} to the CRM.

Send a template when a CRM row is created:

1. The CRM trigger.
2. 1MSG for WhatsApp Business API → Send Template. Map the phone and the template variables from the CRM item.

Development

npm install
npm test
npm run dev

npm test builds the package and runs the unit tests. npm run dev opens a local n8n with this node loaded.

Source: github.com/1msg/1msg-n8n-nodes. The npm package is @1msg/n8n-nodes-1msg. n8n loads community nodes named n8n-nodes-… or @scope/n8n-nodes-….

Publishing to npm is done by GitHub Actions on a version tag, with a provenance attestation. See .github/workflows/publish.yml.

License

MIT