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:

NameValue
titlePayment failed for {{ $json.customer_name }}
body{{ $json.amount }} {{ $json.currency }} — {{ $json.failure_reason }}
urlhttps://dashboard.example/invoices/{{ $json.id }}
external_idinvoice-{{ $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:

ToolThe step to use
MakeHTTP → Make a request. Method POST, body type Raw, content type JSON, and the Authorization header added by hand.
ZapierWebhooks by Zapier → POST. Payload type JSON, with the header in the Headers section. Needs a paid plan, as Webhooks is a premium app.
Power AutomateThe 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.