WhatsApp alerts from n8n, Make or Zapier
An HTTP Request node and a header. No WhatsApp Business account, no Meta approval, and no community node holding your personal number open as a linked device.
n8n, Make and Zapier all ship an official WhatsApp integration, and all three want the same things behind it: your own WhatsApp Business Account, a registered number, and a message template approved by Meta before the first send. Zapier's own help page says so plainly.
So the community answer became a node that holds your personal number open as a linked device — which works until the number is restricted, and that is the one risk worth not taking with a number you use yourself.
This is the third option: a plain HTTP Request node to an endpoint that already has a number and an approved template. It reaches your own people, not your customers, which is the trade that makes it possible.
1. Make a key
In the Jabee dashboard, go to Management then
Approvals and create an API key. It starts jak_. Copy
it now; it is not shown again.
Whoever is going to be messaged needs a verified phone, which they get by tapping a link in the dashboard and sending one message. Until somebody has done that there is nobody to deliver to.
2. Make a header auth credential
In n8n: Credentials → New → Header Auth.
Name Authorization
Value Bearer jak_your_key_here
Worth doing even though you could type the header into the node: a workflow gets exported, pasted into an issue, or shared with somebody, and a credential does not travel with it.
3. Add the HTTP Request node
Method POST
URL https://api.jabee.ai/api/v1/alerts
Authentication Generic Credential Type → Header Auth → (your credential)
Send Body on
Body Content Type JSON
Then the fields. title is the only required one:
| Name | Value |
|---|---|
title | Payment failed for {{ $json.customer_name }} |
body | {{ $json.amount }} {{ $json.currency }} — {{ $json.failure_reason }} |
url | https://dashboard.example/invoices/{{ $json.id }} |
external_id | invoice-{{ $json.id }} |
Execute the node. The message arrives in about a second.
The two limits that will bite you
120 characters on the title. Longer is a 400, not a
trim. If the title is built from data you do not control, cut it:
{{ $json.subject.slice(0, 120) }}.
One message per execution, not per item. An HTTP Request node runs once for every input item, so a node fed 40 rows sends 40 WhatsApp messages and spends 40 of your monthly allowance. Put a Limit node, an Aggregate, or a Code node that summarises in front of it. "14 payments failed overnight" is a better message than fourteen messages anyway.
Making retries free
Set external_id to something stable from the data, as in the table
above. A repeat of an id that has already been sent answers 200 with
existing: true and delivers nothing — so a workflow that reruns, or
an error branch that retries, cannot message somebody twice about the same thing. Leave
it out and every execution is a new message.
Make, Zapier and Power Automate
The same call, in each tool's generic HTTP step. Nothing here is n8n-specific:
| Tool | The step to use |
|---|---|
| Make | HTTP → Make a request. Method POST, body type Raw, content type JSON, and the Authorization header added by hand. |
| Zapier | Webhooks by Zapier → POST. Payload type JSON, with the header in the Headers section. Needs a paid plan, as Webhooks is a premium app. |
| Power Automate | The HTTP action, which is a premium connector. |
Asking rather than telling
The interesting version of this in a workflow tool is not the notice, it is the
question: pause the workflow until a person approves on WhatsApp. One extra field
(options) turns this call into an approval with buttons, and the answer
comes back on a signed webhook. In n8n that is this node plus a
Wait node resuming on a webhook call —
the approvals API has the contract.
What it costs
$29 a month for 500 alerts and approvals together, then 3 cents each. The first three are free, so you can wire this up and watch a message arrive before paying for anything. No per-seat charge.
One per execution, so the fan-out warning above is the thing to watch. 500 a month goes nowhere if a node is fed a list.
Questions
Can n8n send WhatsApp messages without a WhatsApp Business account?
Yes, to your own team. Use an HTTP Request node rather than the WhatsApp node:
POST to https://api.jabee.ai/api/v1/alerts with a Header Auth
credential (Authorization, Bearer jak_...) and a
title. The number and the template are Jabee's, so no Meta developer
account, registered number or template submission is involved — and it cannot
message your customers, which is the trade that makes it possible.
Why did my n8n node send forty WhatsApp messages?
Because an HTTP Request node runs once per input item. Put a Limit, Aggregate or Code node in front of it and send one summarising message — each of those forty also spent one of your monthly allowance.
Does this work in Make, Zapier and Power Automate?
Yes, with each tool's generic HTTP step — HTTP → Make a request, Webhooks by Zapier → POST, or the HTTP action. The call is identical; the last two are premium features of those tools.
Can a workflow wait for someone to approve on WhatsApp?
Yes. Adding options to the same call makes it an approval with
buttons, and the answer arrives on a signed webhook; in n8n a Wait
node resumed by that webhook holds the workflow until somebody taps. See
the approvals API.
Do I need a WhatsApp number or a Meta account?
No, neither, at any point. The message goes over Meta's official Cloud API on Jabee's registered number using Jabee's approved template, so you need an API key and nothing else. There is no number of yours involved, so there is nothing of yours to get banned.
Can it message my customers?
No, deliberately. It reaches your own people, once they have verified their phone. A shared number messaging strangers is what gets numbers banned. To reach customers you connect your own number, which is the inbox.
What happens if nobody ever answers the messages?
Five notifications in a row that a handset never replies to and we stop sending to it, with an email to the account owner saying so. Sending any message to the Jabee number starts it again. One number's standing with Meta is shared by every business on it, which is why the rule exists.