Integrations
n8n
The OmniMessage community nodes for n8n: send messages on any connected channel and start workflows from inbound messages, delivery receipts and account events.
Install#
The package is n8n-nodes-omnimessage. Install it in n8n under Settings › Community Nodes, following the community nodes installation guide. It has no runtime dependencies and was built and tested with n8n 2.41 on Node.js 24.
Credentials#
- Create an API key in the console. Create integration key opens the dialog with the integration preset selected. Start with a test key (
om_test_): nothing is delivered and nothing is billed. - In n8n, add an OmniMessage API credential and paste the key. Leave the base URL at its default,
https://api.omnimessage.co/v1. - Test the credential. It calls
GET /v1/me, which works with any valid key.
The key needs the scopes of the operations you use: messages:write, messages:read, channels:read, webhooks:write for the trigger, contacts:*, campaigns:* and billing:read. The integration preset covers messages, channels, webhooks and contacts; add the campaign and billing scopes if you use those operations.
The OmniMessage node#
| Resource | Operations |
|---|---|
| Message | Send (text, media, WhatsApp template, buttons, list, link button, location, poll, contacts, custom JSON) · Send Batch (all input items, in requests of up to 100) · Get · Get Many (filters: channel, direction, status, to, reference, created after and before) · Get Status History |
| Channel | Get · Get Many · Get Templates |
| Contact | Create or Update (by phone number) · Get · Get Many |
| Campaign | Get · Get Many · Launch (a draft prepared in the console) |
| Account | Get · Get Balance · Get Pricing · Get Usage |
The channel field lists your channels and the template field lists the WhatsApp templates of the selected channel. AI agent nodes can use the node as a tool.
The OmniMessage Trigger node#
Starts a workflow on: message received, sent, delivered, read or failed; campaign started, paused, completed or failed; channel connected or disconnected; balance low; package exhausted or expiring.
- Activating the workflow registers a webhook endpoint in your account; deactivating it removes the endpoint.
- Every delivery is verified with the endpoint’s signing secret (HMAC-SHA256 over the raw body, five-minute tolerance by default). Unsigned or altered requests get
401. - Optional filters: channel, channel type, reference prefix.
- Output: the message, channel, campaign or balance object plus
event_id,event_typeandevent_created_at, or the raw event.
Usage notes#
- WhatsApp delivers free-form messages only within 24 hours of the contact’s last message to you. Outside that window, send an approved template.
- Send derives an idempotency key from the execution, node, run and item, so Retry On Fail cannot send the same item twice. Set Idempotency Key yourself, for example to an order ID, to deduplicate across executions.
- Send Batch returns one item per input item with
accepted,statusand eithermessageorerror; rejected items do not stop the node. - The trigger needs a public HTTPS URL: webhook URLs on private or loopback addresses are refused. A local n8n must be reachable through a tunnel, with
WEBHOOK_URLset accordingly. - An account can have 10 webhook endpoints per mode, and every active workflow with the trigger uses one. To react to several event types, select them in one trigger and branch with a Switch node.
- Test mode produces no inbound messages: test the "message received" trigger with a live key.
- Deliveries are retried, so an event can arrive more than once. Deduplicate on
event_idwhere it matters. - Money values are integers in micro-USD (1 USD = 1,000,000).