Email costs effectively nothing per recipient. WhatsApp is billed per template message delivered. Everything else — how big a list you want, what you send, how often, and what counts as a good campaign — follows from that one difference. They are not competitors. They fail in opposite directions.
The mistake is treating WhatsApp as email with better numbers. Run it that way and you will pay for every impression of a campaign that email would have carried for free.
The economics run the other way
Since 1 July 2025 Meta charges per message rather than per conversation, and its pricing documentation is blunt about the trigger: “You are only charged when a template message is delivered.” Marketing, utility and authentication templates each carry their own rate, and the rate depends on the market you are messaging — with volume tiers on top for utility and authentication.
From 1 October 2026 the free space shrinks further. Meta will charge per message for service messages and for utility messages sent inside an open 24-hour window — the change we covered in what actually changes for your budget.
Put the two channels side by side and the planning logic inverts:
| Cost of one more recipient | negligible | a per-message charge |
| A campaign with a 2% response rate | fine | expensive |
| Bigger list | strictly better | strictly more expensive |
| The thing you optimise | volume and deliverability | relevance per message |
An email list is an asset that costs almost nothing to hold. A WhatsApp list is a liability if you message it the way you message an email list. That is not a warning about etiquette. It is arithmetic.
The consent rules are genuinely different
This is where most teams assume symmetry and get it wrong.
For email, Article 13(2) of the ePrivacy Directive carves out the so-called soft opt-in: if you obtained the address “in the context of the sale of a product or a service”, you may market your own similar products to that customer without separate prior consent, provided you gave clear notice at collection and offer a free, easy objection with every message. Member states implemented this differently, so the detail depends on where your recipients are — but the exemption exists.
WhatsApp has no equivalent on Meta’s side. The WhatsApp Business Messaging Policy states you may only contact people if “(a) they have given you their mobile phone number; and (b) you have received opt-in permission”, and puts the burden on you: “You are solely responsible for determining the method of opt-in, that you have obtained opt-in in a manner that complies with laws.”
So a customer relationship that lawfully earns you an email does not earn you a WhatsApp message. Two separate permissions, collected separately, recorded separately. We wrote up what a defensible record looks like in WhatsApp opt-in under GDPR.
Who decides what you are allowed to say
In email, the wording is yours. Nobody approves your subject line before it goes out.
On WhatsApp, “you may only initiate conversations using an approved Message Template”, and Meta reserves the right “to review, approve, pause and reject any Message Template at any time”. Sending outside an open window means writing inside a format someone else signed off on, days earlier.
There is a second control layer that email has no analogue for. Per the same policy, “people can block or report businesses and our systems will limit the amount of messages a business can send or calls a business can initiate if the business’ quality tier is low for a sustained period of time”. Recipient annoyance does not just cost you unsubscribes — it throttles the channel itself.
Email’s failure mode is the spam folder, guessed at by a filter you cannot see. WhatsApp has no spam folder, but delivery is not guaranteed either: Meta caps how many marketing messages one person receives and throttles senders whose quality stays low. Both are real. They are not the same problem, and the fixes have nothing in common.
About that 98% open rate
The figure everyone quotes for WhatsApp circulates without a traceable primary source, and Meta publishes no open-rate benchmark for the Business Platform. Treat any comparison built on it as marketing rather than measurement.
What you can measure is narrower and more useful. The Cloud API reports a delivery status per message — sent, delivered, read — because, as the Cloud API webhooks documentation puts it, “each outgoing message can have up to three separate webhooks (one for a status of sent, one for delivered, and one for read)”. Email has no equivalent in the protocol; the open rate is inferred from a tracking pixel that a growing share of mail clients loads or blocks on the recipient’s behalf.
That asymmetry is worth more than the folklore. On WhatsApp you know a message arrived. On email you are estimating.
What this means for you
Split the work by what a message is worth, not by which channel you like:
- Email — newsletters, long-form content, anything going to your whole list, anything where a 2% response rate is an acceptable outcome, and re-engagement of people who have gone quiet.
- WhatsApp — order and delivery updates, appointment and webinar reminders, abandoned checkout, replies to people who wrote first, and the small segments where one conversion pays for a thousand messages several times over.
- Both — the opt-in itself. Email is the cheapest place to ask for WhatsApp permission, because asking costs nothing and the ask can be repeated.
Two practical rules follow. Never migrate a list sideways: an email address does not carry consent for a phone number, and the numbers are usually missing anyway (the longer version here). And before you send a WhatsApp campaign, price it — recipients times the marketing rate for that market — and compare that number to what the same campaign would cost by email, which is roughly nothing.
Nybero keeps an append-only consent log per contact for exactly this reason, recording how and where each opt-in was given. If you are deciding where to start, start by pricing one campaign both ways. The answer is usually obvious once it has a number attached.