Guide
How to Connect n8n with WhatsApp Business API
This isn't the GHL-plus-n8n setup, and it isn't routing leads from a CRM into WhatsApp — this is wiring n8n straight to Meta's WhatsApp Business Platform (the Cloud API), with no CRM in the middle at all. That's the right approach when you want WhatsApp automation logic a CRM's native builder can't handle, or you're simply not running a CRM to begin with. Below is the actual setup — the Meta app, the webhook verification Meta requires, and where template messages and session messages each apply — not a marketing overview.
On This Page
How to Set This Up, Step by Step
Six steps, in the order I actually build them. No screenshots — both n8n and Meta's App Dashboard change their UI often enough that a screenshot goes stale faster than a written description of what to configure.
Create the Meta app, WABA, and a test number
Head to developers.facebook.com, create an app under the Business type, and add the WhatsApp product. That step auto-provisions a WhatsApp Business Account (WABA) plus a free test phone number and a temporary access token — good for roughly 24 hours — that you can use right away to send test messages to a short list of verified recipient numbers. Beyond testing, you'll need a permanent access token generated through a System User in Meta Business Settings, and eventually a dedicated phone number instead of the shared test one, plus Meta Business verification once real volume shows up.
Add n8n's WhatsApp Business Cloud credential and node
n8n ships a native WhatsApp Business Cloud node covering Send, Send Template, Send and Wait for Response, and media upload/download/delete operations — so most of what a typical workflow needs is node configuration, not a hand-built HTTP call. Create the credential using the access token, phone number ID, and WhatsApp Business Account ID from the Meta App Dashboard's API Setup tab, and you can fire off a first test message from inside n8n within minutes.
Stand up the receiving webhook and verify it with Meta
To receive inbound messages and delivery/status updates, add a Webhook node in n8n, activate the workflow so it has a live production URL, then paste that URL as the Callback URL in the Meta App Dashboard's WhatsApp → Configuration screen, along with a Verify Token you choose yourself. Meta immediately fires a GET request carrying hub.mode, hub.verify_token, and hub.challenge — your workflow has to check the verify token matches and echo hub.challenge back as plain text, or the subscription refuses to save. This is the step that trips people up: n8n's Webhook node returns JSON by default, so you typically need a Respond to Webhook node, or a small IF/Code branch, that detects the GET verification call specifically and answers with the raw challenge value instead of a JSON body.
Verify the webhook signature before trusting a payload
Once the subscription is live, every POST Meta sends to your webhook carries an X-Hub-Signature-256 header — an HMAC-SHA256 hash of the raw request body, signed with your app secret. n8n doesn't check this for you automatically, so add a Code node that recomputes the hash from the raw body and your app secret and compares it against the header before the workflow acts on anything inside the payload. Skip this and anyone who finds your webhook URL can post fabricated WhatsApp events straight into your automation.
Send session messages inside the 24-hour window, templates outside it
WhatsApp only allows a business to reply with free-form text inside a 24-hour customer service window, which opens the moment a user messages you first and resets with each new inbound message from them. Inside that window, the node's Send operation covers session messages — text, images, documents, anything. Outside it — a proactive reminder, a re-engagement message, anything your workflow initiates rather than replies to — Meta requires a pre-approved message template, sent through the Send Template operation, or via the HTTP Request node against the templates endpoint directly if the native node's variable-component builder doesn't cover what you need. Templates get submitted and reviewed inside Meta Business Manager, and approval typically lands anywhere from a few minutes to about a day.
Mind the messaging tier, then go live properly
A brand-new, unverified WhatsApp Business number starts capped at roughly 250 unique conversations in a rolling 24-hour window under Meta's default messaging tier, climbing toward 1,000, 10,000, and higher as your quality rating and Meta Business verification improve — so a workflow that behaves perfectly in testing can hit a wall the moment genuine volume arrives. Move off the shared test number onto a dedicated one before launch, start Meta Business verification early since it isn't instant, and add a fallback alert — Slack or email — on any node that calls the Graph API, so a rate-limit hit or an expired token fails loudly instead of quietly dropping a message.
When You'd Use This Instead of a CRM's Native WhatsApp Integration
Plenty of businesses are perfectly served by a CRM's built-in WhatsApp connector. Going direct earns its place in a narrower set of situations.
You're not running a CRM in the loop at all
If WhatsApp is the entire channel — no GoHighLevel, no other CRM sitting between you and the customer — wiring n8n straight to the Cloud API is simpler than standing up a CRM purely to get a WhatsApp connector.
Logic a CRM's native WhatsApp builder can't express
Conditional branching based on message content, an AI classification step before deciding how to reply, or a lookup against a system a CRM's WhatsApp integration doesn't reach — that's exactly the layer n8n sits in for.
One inbound message needs to fan out to several systems
A single webhook event can trigger a database write, a Slack alert, and an update to an internal tool in the same run — not just a single CRM sync, which is usually all a native WhatsApp integration is built to do.
You want direct control over templates and the raw API
Managing templates and message flows straight against Meta's Graph API means no CRM abstraction layer between you and what WhatsApp actually supports — useful once you need a template structure or API detail a CRM's UI doesn't expose.
Frequently Asked Questions
Not to start. Creating the Meta app gives you a free test number and a temporary token good enough to build and test the whole workflow. Verification matters once you move to production sending at real volume — it's what raises your messaging tier above the default cap and lets you use a permanent, non-expiring access token.
Sources: n8n's WhatsApp Business Cloud node documentation and Meta's official WhatsApp Cloud API webhook setup guide.
Rather Have Someone Just Build It?
Everything above is the real process, and it's genuinely buildable without a developer — it's node configuration and dashboard settings, not a locked black box. Where people usually want help is the webhook verification and signature check in steps three and four, or a workflow that needs real conditional branching beyond a single send-and-receive loop. That's the part I get hired for. See n8n automation consulting for businesses anywhere, or WhatsApp Business API automation services if you want the whole WhatsApp side — templates, CRM sync, and all — built and handed off.
- 7+ years building automation and marketing systems, including 100,000+ leads delivered through automated workflows
- Hands-on with Meta's WhatsApp Cloud API directly — webhook verification, signature checks, and template review — not just a CRM's WhatsApp toggle
- One flat quote per project, workflows documented and handed off so you're never locked to me maintaining it
Have an n8n + WhatsApp Question?
Fastest way to get an answer: message me directly on WhatsApp with what you're trying to connect. Or send the details below and I'll get back to you.