Guide 18 min read

WhatsApp Automation in 2026: The Self-Hosted Stack Nobody Sells You

Meta's per-message fees are unavoidable. The platform fee stacked on top of them is not. Here is the honest guide to running WhatsApp automation on n8n and Evolution API — including the ban risks the vendors selling you a subscription have no incentive to mention.

Host n8n + Evolution API from $2.99/mo
7-day free trial No payment required 1,000+ n8n instances hosted
OH

Published · Reviewed against Meta's WhatsApp Business Platform pricing documentation

Table of Contents

Almost every page ranking for "WhatsApp automation" is published by a company that needs you to buy a subscription. That is not a coincidence, it is the business model. WhatsApp Business Solution Providers resell Meta's API and stack a platform fee on top — and that fee is entirely optional. You can run the same automations on n8n and Evolution API, pay Meta directly for messages, and keep every conversation on a server you control.

This guide covers the parts those vendor pages leave out: what Meta actually charges since it switched to per-message billing, where the reseller markup hides, what WhatsApp's Terms of Service genuinely prohibit (it is not what most people assume), and an honest assessment of the unofficial APIs — including why we do not recommend pointing one at your main business number.

What is WhatsApp automation?

WhatsApp automation is the use of software to send, receive, route and respond to WhatsApp messages without a human touching each one. In practice that means order confirmations that fire when a checkout completes, appointment reminders scheduled a day ahead, one-time passcodes, an AI agent that qualifies a lead before a salesperson ever sees it, and support messages routed to the right queue.

The confusion in this space comes from people using one word for three different layers of the stack:

  • The messaging channel. Either the free WhatsApp Business app on a phone, or the WhatsApp Business Platform (the Cloud API) that Meta operates.
  • The gateway. The service that holds the connection to WhatsApp and exposes it as a normal REST API with webhooks. A BSP like Wati or AiSensy is a hosted gateway. Evolution API is a gateway you host yourself.
  • The orchestration layer. Where the actual logic lives — the "if the cart was abandoned, wait 2 hours, then send template X" part. This is n8n, and it is the layer BSPs charge the most for while giving you the least control.

Almost all of the pricing pain and all of the lock-in live in the middle layer. Understanding that is most of the battle.

The three ways to automate WhatsApp

There are exactly three architectures, and they differ far more than the marketing suggests.

  WhatsApp Business App Cloud API via BSP Self-hosted gateway
What it is Free phone app Reseller on Meta's API Evolution API + n8n
Automation depth Away & greeting messages only Vendor's flow builder Anything n8n can express
Platform fee None $25–$200+/mo, often per seat None
Meta message fees N/A Meta's rate + markup Meta's rate, paid direct
Who holds your data The phone The vendor You
Multiple agents Via a helpdesk you connect
Setup effort Minutes An afternoon A day, once

The app is genuinely fine if all you need is an away message. The moment you want logic — conditionals, delays, a CRM lookup, an LLM in the loop — you need an API, and then the only real question is whether you rent the gateway or run it.

What WhatsApp automation actually costs in 2026

This is where vendor pages get vague, and in at least one case on the current front page of Google, simply wrong. So here is the model, from Meta's own documentation.

Meta bills per message, not per conversation

On July 1, 2025 Meta moved from 24-hour conversation-based pricing to per-delivered-message pricing. You are charged when a template message is delivered. Several competing guides still quote the old "$0.0085 per conversation" model — if a page is quoting conversation pricing, it has not been updated in over a year, and you should not trust its arithmetic.

Every message falls into one of four categories, and the category drives the price:

  • Marketing — promotions, offers, re-engagement. The most expensive, always billable.
  • Utility — order confirmations, shipping updates, payment reminders. Dramatically cheaper, and free when sent inside an open customer service window.
  • Authentication — OTPs and login codes. Cheap, with volume discounts.
  • Service — your free-form replies to a customer. Free inside the 24-hour window.
The lever nobody mentions

Meta also runs a Free Entry Point window of 72 hours — not 24 — triggered when a customer reaches you through a Click-to-WhatsApp ad or a Facebook Page call-to-action button. Every message type is free inside it. Designing your funnel so the customer messages you first is the single biggest lever on your WhatsApp bill, and it is worth more than any discount a reseller will offer you.

The three-layer cost stack

Layer Who charges it Typical cost Avoidable?
Per-message fee Meta Varies by country & category; marketing is the premium tier, utility and auth are a fraction of it No
Per-message markup Your BSP ~$0.003–$0.010 per message, on top of Meta Yes
Platform subscription Your BSP $25–$200+/month, frequently per agent seat Yes
Infrastructure Your host From $2.99/month for managed n8n Replaces the two above

Meta's rates are public, country-specific and change periodically, so we deliberately do not reproduce a rate card here that would be stale within a quarter — check Meta's pricing documentation for your market. The point that matters is structural: rows two and three of that table are pure intermediary margin, and self-hosting deletes them.

Skip the platform fee

Run n8n and Evolution API on managed infrastructure from $2.99/month. Pay Meta directly for messages. No per-seat pricing, no per-message markup, unlimited workflow executions.

Start Free Trial

Is WhatsApp automation against the Terms of Service?

No — and this is the most widely misunderstood question in the category, so it is worth being precise.

Automation itself is explicitly permitted. The WhatsApp Business Platform exists for exactly this purpose. Meta built an API, published documentation, and charges you money to send automated template messages. Sending an automated order confirmation is not a grey area; it is the product working as designed.

What the terms actually prohibit falls into two distinct buckets, and conflating them is what causes the confusion:

1. What you send

  • Unsolicited bulk messaging. Messaging people who never opted in. This is a violation no matter which API you use — the official Cloud API will get your number rate-limited, quality-rated down, and eventually blocked just the same.
  • Scraped or purchased lists. Same category, and the fastest route to losing a number.
  • Content policy breaches. The prohibited-goods list applies in full.

2. How you connect

  • Unauthorized clients. Driving a normal WhatsApp account through a reverse-engineered client — the WhatsApp Web protocol, browser automation via Selenium, and similar — is not authorized by Meta, regardless of how polite your messages are.
The distinction that matters

What you send and how you connect are two independent axes. An opted-in order confirmation over the official Cloud API is entirely legitimate. A cold marketing blast to a scraped list is a violation even on the official API. And a perfectly polite internal notification over an unofficial client is still an unauthorized connection. Most guides collapse these into one question and get the answer wrong in both directions.

Meta also enforces this continuously rather than at signup. Your number carries a quality rating (green, yellow, red) driven by how recipients react — blocks and "report" taps push it down. Fall far enough and your messaging tier is cut, capping how many unique users you can message in 24 hours. Get opt-in right and this machinery never bothers you.

Evolution API, explained

Evolution API is an open-source WhatsApp gateway. It is the piece that sits between WhatsApp and your automation layer, holding the connection and exposing it as an ordinary REST API with webhooks — the same job a BSP does, except you run it and it costs nothing to license.

Technically it is a Node.js service (Node 20+), using PostgreSQL or MySQL through Prisma for persistence and Redis for session state. It ships native integrations with n8n, Typebot, Chatwoot, Dify and OpenAI, and can fan messages out to RabbitMQ, Kafka or Amazon SQS if you are wiring it into a larger system.

The detail that makes it genuinely interesting — and the reason it belongs in a serious business stack — is that it is dual-mode:

  • Official Meta Cloud API mode. Evolution acts as a self-hosted front end to Meta's real API. Fully authorized, no ban risk, full template and delivery-receipt support. You pay Meta directly and skip the reseller.
  • Baileys mode. Evolution connects over the unofficial WhatsApp Web protocol by scanning a QR code, exactly like WhatsApp Web does. Free, no Meta approval, works with a normal number — and, as covered below, against WhatsApp's terms.

Most write-ups about Evolution API talk only about the second mode, which is precisely why it has a reputation as a grey-hat tool. It is not. Run it in Cloud API mode and you have a completely legitimate, self-hosted BSP replacement.

Baileys vs the official Cloud API: an honest comparison

Here is the section the eighteen vendor pages ranking above this one cannot write, because every one of them sells the official API and has a commercial interest in the answer.

Read this before you scan a QR code

Baileys drives a normal WhatsApp account through a reverse-engineered version of the WhatsApp Web protocol. Meta does not authorize it. Using it violates WhatsApp's Terms of Service, Meta actively detects these connections, and bans are reported to be permanent, with no meaningful appeal.

Never point an unofficial connection at the number your business actually runs on. Agencies have lost client numbers — and the entire conversation history attached to them — after months of building on one.

  Baileys (unofficial) Official Cloud API
Authorized by Meta
Ban risk Permanent, no appeal None
Per-message cost Free Meta's published rate
Meta Business verification Not required Required
Works with a personal number
Message templates & buttons Limited
Delivery & read receipts Unreliable
Group messaging
Breaks when Meta changes the protocol Yes, without warning No
Fit for production customer messaging No Yes

Where Baileys is legitimately the right tool

It is not useless — it is just badly scoped by most of the internet. The defensible uses share one property: no customer's experience depends on the connection surviving, and no business-critical number is at stake.

  • Development and staging. Building and testing flows on a throwaway number before Meta approves your production WABA.
  • Internal team automation. Pushing deploy alerts, monitoring pages or daily reports to your own team.
  • Self-notification. A workflow messaging you, on your own number, about your own systems.
  • Group workflows. The official Cloud API genuinely cannot send to WhatsApp groups — it is built for one-to-one business-to-customer conversations. This is a real capability gap, not a marketing excuse.

What we will not help you do is warm up burner numbers, rotate proxies, or evade Meta's detection so you can push marketing through an unofficial connection. That advice reliably ends with a permanently banned number, and anyone offering it is selling you a liability.

Our recommendation

Run Evolution API in official Cloud API mode for anything a customer will ever see. You still get the entire economic upside of self-hosting — no platform fee, no per-message markup, no vendor holding your conversation data — with zero Terms of Service exposure. The unofficial transport buys you a message fee you were going to have to pay anyway, at the cost of the number your business depends on. That is a bad trade.

How to connect Evolution API to n8n

This walkthrough uses official Cloud API mode. Budget about 45 minutes, most of which is Meta's verification flow rather than anything technical.

Step 1 — Create a Meta WhatsApp Business Account

In Meta Business Manager, create a WhatsApp Business Account (WABA) and add a phone number. It must be a number not currently registered to the WhatsApp app — if it is, delete that account first or use a fresh line. Generate a permanent access token, and note your Phone Number ID and WABA ID; you will need all three.

Step 2 — Deploy Evolution API with Docker

Run Evolution alongside Postgres and Redis on a private Docker network. The key variable is AUTHENTICATION_API_KEY — make it a long random secret, because it is the only thing standing between the internet and your WhatsApp connection.

services:
  evolution-api:
    image: evoapicloud/evolution-api:latest
    environment:
      - AUTHENTICATION_API_KEY=${EVOLUTION_API_KEY}
      - DATABASE_ENABLED=true
      - DATABASE_PROVIDER=postgresql
      - DATABASE_CONNECTION_URI=postgresql://user:pass@postgres:5432/evolution
      - CACHE_REDIS_ENABLED=true
      - CACHE_REDIS_URI=redis://redis:6379
    networks: [automation]
    # note: no public port mapping — n8n reaches it over the Docker network

networks:
  automation:
    driver: bridge

Step 3 — Create an instance in Cloud API mode

This is the step that decides whether you are on the official transport or the unofficial one. Setting integration to WHATSAPP-BUSINESS binds the instance to Meta's Cloud API. (The alternative value, WHATSAPP-BAILEYS, is the QR-code path — that is the one carrying the ban risk discussed above.)

POST http://evolution-api:8080/instance/create
apikey: $EVOLUTION_API_KEY

{
  "instanceName": "production",
  "integration": "WHATSAPP-BUSINESS",
  "token":       "<meta-permanent-access-token>",
  "number":      "<phone-number-id>",
  "businessId":  "<waba-id>"
}

Step 4 — Point the webhook at n8n

Add a Webhook node in n8n, copy its production URL, and register it on the Evolution instance with the MESSAGES_UPSERT event enabled. Every inbound WhatsApp message now triggers a workflow.

POST http://evolution-api:8080/webhook/set/production
apikey: $EVOLUTION_API_KEY

{
  "webhook": {
    "enabled": true,
    "url": "https://n8n.yourdomain.com/webhook/whatsapp-in",
    "events": ["MESSAGES_UPSERT"]
  }
}

Step 5 — Send messages from n8n

Use an HTTP Request node pointed at Evolution's send endpoint, with the API key in the apikey header. Because both containers share the private Docker network, address it by its internal hostname — the key never crosses the public internet.

POST http://evolution-api:8080/message/sendText/production
apikey: $EVOLUTION_API_KEY

{
  "number": "{{ $json.customerPhone }}",
  "text":   "{{ $json.replyText }}"
}

Step 6 — Verify the round trip

Message the business number from your personal WhatsApp. Confirm the n8n workflow fires from the webhook, and that your reply lands. Because the customer messaged first, you are inside the 24-hour service window and that reply costs nothing.

Do you even need Evolution API?

If all you need is to send templates and receive webhooks on a single number, n8n's built-in WhatsApp Business Cloud node talks to Meta directly and you can skip the gateway entirely. Add Evolution when you need more than that: multiple numbers on one stack, richer session and media handling, group support, or the ability to switch transports without rewriting your workflows.

The production architecture

The stack that works, and the reason self-hosting is an engineering argument and not just a pricing one:

                    ┌──────────── private Docker network ────────────┐
                    │                                                │
  Meta Cloud API ⇄──┤  evolution-api ──⇄── redis    (sessions)       │
                    │        ⇅                                       │
                    │       n8n ────────⇄── postgres (history)        │
                    │        ⇅                                       │
                    └────────┼───────────────────────────────────────┘
                             │
                        reverse proxy (TLS)
                             │
                      only the n8n webhook
                       is publicly reachable

Four properties are doing the work here:

  • Nothing is exposed that does not have to be. Evolution API has no public port. n8n reaches it over the internal Docker network, so the API key — which is effectively root on your WhatsApp connection — is never transmitted over the internet. Only the single n8n webhook endpoint is published, behind TLS.
  • Latency is a non-issue. Container-to-container calls on a shared bridge network are sub-millisecond. A hosted BSP adds a round trip to their cloud on every single message.
  • Your conversation history is yours. It lives in your Postgres, in a region you chose. No third-party processor sits in the path — which is the entire GDPR and data-residency argument, and one no SaaS vendor can make on your behalf.
  • Redis holds session state, so Evolution can restart without dropping its connection.

This is precisely the shape of stack our managed n8n hosting is built to run — the networking, TLS, backups and updates handled, without you renting a BSP's flow builder to get them.

8 WhatsApp automations worth building

Ordered roughly by return on effort. Note how many land in the free or cheap categories — that is deliberate, and it is where the real savings are.

  1. Order confirmations and shipping updates. Fires from your store's webhook. Utility category — a fraction of marketing rates, and free if the customer is already in an open service window.
  2. Appointment reminders. Scheduled a day ahead from your calendar or CRM. Utility category. The measurable no-show reduction usually pays for the whole stack on its own.
  3. Abandoned cart recovery. Wait two hours, check the order didn't complete, send. Marketing category, so this is the one you meter carefully — and the one where the BSP markup hurts most at volume. See ecommerce marketing automation for the full email, SMS, and cart-recovery sequence this channel plugs into.
  4. One-time passcodes. Authentication category — cheap, and it unlocks volume discounts as you scale.
  5. AI lead qualification. The customer messages you, an LLM node in n8n asks qualifying questions, and a scored lead lands in your CRM. Because the customer initiated, the entire exchange happens inside the free 24-hour service window.
  6. Support triage and routing. Classify the inbound message, answer the easy ones from a knowledge base, escalate the rest to a human with full context attached. Also free-window work.
  7. Invoice and payment reminders. Utility category, driven from your accounting system. Pairs naturally with invoice automation.
  8. Internal ops alerts. Deploy notifications and monitoring pages to your own team. The one case where an unofficial connection on a throwaway number is a defensible choice — no customer is downstream of it.

When you should just use a BSP

We host n8n for a living, so treat this section with appropriate suspicion — and then read it anyway, because self-hosting is genuinely the wrong call in several situations:

  • You need a team inbox with agent seats. If ten non-technical support reps need to work a shared WhatsApp queue with assignment and canned replies, a BSP hands you that on day one. You can assemble it from n8n plus an open-source helpdesk like Chatwoot, but you are now maintaining a helpdesk.
  • You have zero engineering capacity. If nobody on the team can debug a container, the platform fee is buying you a competence you do not have. That is a legitimate purchase.
  • You are in a regulated industry. When you need a signed DPA, a contractual SLA and a counterparty who carries liability, "we self-host it" is a harder conversation with your compliance team.
  • You want the verification handled. Business verification, display-name approval and the green tick are bureaucratic. BSPs do this daily and will drive it for you.
  • You send very little. Below a few hundred messages a month, the markup is rounding error and your time is worth more than the savings.

The honest test: a BSP sells you a flow builder, an inbox and a compliance shield. If you already have n8n and an engineer, you are paying a subscription for a worse flow builder than the one you are running. If you have neither, you are buying something real.

Self-hosted vs SaaS: the three-year TCO

Take a mid-sized operation sending 10,000 utility and 2,000 marketing messages a month, with three people answering conversations.

The critical thing to hold onto: Meta's message fees are identical on both sides. Nobody escapes those. What differs is everything stacked on top.

Cost line Typical BSP Self-hosted (n8n + Evolution)
Meta per-message fees Paid via BSP Paid direct — same
Platform subscription $50–$150/mo (often ×3 seats) $0
Per-message markup (12k msgs @ ~$0.005) ~$60/mo $0
Hosting Included From $2.99/mo
Setup time An afternoon ~1 day, once
3-year cost on top of Meta ~$4,000–$7,500 ~$110–$550

Roughly $4,000 to $7,000 over three years, for a flow builder that is strictly less capable than the n8n instance you can rent for $2.99 a month. At ten times the volume the markup line alone dwarfs everything else on the page.

The counter-argument is real and we will not pretend otherwise: that day of setup, plus ongoing ownership of a container stack, is not free. If your team's time is scarce and expensive, buy the subscription. If you already run n8n — and if you are reading a page about self-hosting, you probably do — the arithmetic is not close.


Frequently Asked Questions About WhatsApp Automation

Can you automate WhatsApp without the official WhatsApp Business API?

Yes, but it depends what you mean by "without." Open-source gateways like Evolution API can drive a normal WhatsApp account through the reverse-engineered WhatsApp Web protocol (Baileys), with no Meta approval and no per-message fee. This violates WhatsApp's Terms of Service and can get the number permanently banned with no appeal, so it is not appropriate for a business's main customer line. The better reading of the question: you can skip the BSP reseller and its platform fee while still using the official Meta Cloud API. Evolution API speaks the official Cloud API too, so you self-host the gateway, pay Meta directly for messages, and keep your conversation data on your own server.

Is WhatsApp automation against WhatsApp's terms of service?

Automation itself is explicitly allowed — the WhatsApp Business Platform exists precisely so businesses can automate messaging. What the terms prohibit is unsolicited bulk messaging, messaging people who never opted in, and connecting through unauthorized (unofficial) clients. The distinction that matters is what you send versus how you connect. An automated order confirmation to a customer who opted in, sent over the official Cloud API, is entirely within the rules. A marketing blast to a scraped list is a violation regardless of which API you used.

Will my number get banned for using an unofficial WhatsApp API?

It can be, and the ban is typically permanent with no appeal process. Unofficial libraries such as Baileys drive a regular WhatsApp account over the WhatsApp Web protocol, which Meta does not authorize. Meta actively detects these connections. Bulk or unsolicited sending dramatically raises the risk, but even careful use carries it. Never point an unofficial connection at the phone number your business actually depends on.

What does WhatsApp automation actually cost in 2026?

There are three separate layers and vendors routinely blur them. First, Meta charges per delivered template message — it moved from per-conversation to per-message billing on July 1, 2025. Rates vary by country and category; marketing costs the most, while utility and authentication are far cheaper and unlock volume discounts. Second, service messages (your replies inside the 24-hour customer service window) are free. Third, if you go through a Business Solution Provider, they add a platform subscription plus a per-message markup of roughly $0.003–$0.010. That third layer is the one you can remove entirely by self-hosting.

What is the 24-hour customer service window?

When a WhatsApp user messages your business, a 24-hour window opens in which you can reply with free-form, non-template messages at no cost. Once it closes, you can only re-initiate contact with a pre-approved template message, which is billable. There is also a separate Free Entry Point window of 72 hours, triggered when a user reaches you through a Click-to-WhatsApp ad or a Facebook Page call-to-action — all message types are free inside it. Designing your automations so customers message you first is the single biggest lever on your WhatsApp bill.

Can n8n connect to WhatsApp?

Yes, two ways. n8n ships a native WhatsApp Business Cloud node that talks directly to Meta's Cloud API, which is enough for sending templates and receiving webhooks. For anything richer — multiple numbers, session management, media handling, group support, or switching between connection types — teams put Evolution API between n8n and WhatsApp as a gateway, and drive it from n8n over its REST API and webhooks.

What is Evolution API and how does it work with n8n?

Evolution API is an open-source WhatsApp gateway built on Node.js, with PostgreSQL or MySQL via Prisma and Redis for session state. It exposes a REST API and webhooks, and it is dual-mode: it can connect through the official Meta Cloud API or through the unofficial Baileys (WhatsApp Web) protocol. With n8n, you run both containers on the same private Docker network — n8n calls Evolution's REST endpoints to send messages, and Evolution posts inbound messages to an n8n webhook. Neither service needs to be exposed to the public internet beyond the single webhook endpoint.

Do I need a BSP (Business Solution Provider)?

No. Meta's Cloud API is available directly, and a BSP is a reseller layer on top of it. A BSP is genuinely worth paying for if you need a non-technical team inbox with agent seats, want someone else to handle business verification and template approvals, or operate in a regulated industry where you need a vendor with a DPA and an SLA. If you have any engineering capacity and your team already lives in n8n, the platform fee buys you very little.

Can I send WhatsApp group messages with the official API?

No. Meta's official Cloud API does not support sending to WhatsApp groups — it is built around one-to-one business-to-customer conversations. This is one of the few genuine capability gaps, and it is why some teams use Baileys-based tooling for internal group workflows. It is not a loophole for marketing: using an unofficial connection to push promotional content into groups is both a Terms of Service violation and a fast route to a permanent ban.

Is self-hosted WhatsApp automation GDPR compliant?

Self-hosting improves your position but does not grant compliance by itself. The advantage is real: when n8n and Evolution API run on your own server, message content and conversation history stay in your database, in a region you chose, with no third-party SaaS processor in the path. You still need a lawful basis for messaging, genuine opt-in records, a retention policy, and a data processing agreement with your infrastructure provider. Meta remains a processor for messages in transit either way.


Run the whole stack for $2.99/month

Managed n8n with unlimited executions, ready for Evolution API on a private network. Pay Meta directly for messages and delete the platform fee entirely.

7-day free trial · Money-back guarantee · Cancel anytime

Need Help?

Support Ticket
Fastest resolution
Email
support@openhosst.com
n8n from $2.99/Month
Unlimited executions · No server needed
Start Free Trial