Every WhatsApp programme eventually hits the same 2am problem: something has gone wrong, you need to tell customers, and the message you want to send does not exist as an approved template. On the WhatsApp Business Platform, a business can only start a conversation — or write to someone more than 24 hours after their last message — with a pre-approved template. So the template set is not copywriting; it is the list of things you will ever be able to say first. Design it like that.
The rules in one paragraph#
Templates are submitted to Meta, reviewed (often within minutes, sometimes longer) and filed under a category: marketing, utility or authentication. The category decides the price and how strictly the template is reviewed. Since 1 July 2025 the platform bills per message rather than per conversation, and Meta has changed what is free inside the 24-hour customer-service window more than once since then. The latest change took effect on 1 October 2026: free-form replies inside the window (service messages) are charged after 1,000 free per business phone number each month, with no rollover, and utility templates sent inside an open window, free since July 2025, are charged too. Messages in the 72-hour free entry point window after a click-to-WhatsApp ad or a Page button still carry no delivery charge. Treat the pricing page as the source of truth and re-read it each quarter; WhatsApp 101 summarises the rules as of October 2026. Meta also limits how many marketing templates one person receives from businesses overall, so a marketing send can fail even when everything on your side is approved.
Interactive figure
The 24-hour window
Window open. This will send. A free-form reply is allowed while the window is open — no template, no approval. Rates and what counts as billable have changed more than once — Meta moved to per-message billing on 1 July 2025. Check the pricing page rather than a blog post. WhatsApp pricing.
Design the set, not the message#
Think of templates as a small API you are publishing to your future self. The question is not "what do I want to say today" but "what kinds of thing will I ever need to say first".
A workable starting set:
| Template | Purpose | Usual category |
|---|---|---|
| Confirmation | Something the customer started has happened | Utility |
| Status change | Something they expect has changed | Utility |
| Action required | They must do something by a date | Utility |
| Incident notice | Disruption, security or recall | Utility |
| Re-engagement | A reason to reopen a conversation, used sparingly | Marketing |
Each with enough variables to be reusable. Five well-parameterised templates beat forty specific ones and are far easier to keep approved.
Category is a billing decision and a trust decision#
Do not file marketing as utility. Reviews are content-based; Meta can move a template to the category it thinks fits and will notify you when it does. Repeated mis-filing damages the account's standing. The saving is small and the downside is the channel.
Model cost per outcome, not per message. A utility template that produces a resolved query is cheaper than a marketing template that produces nothing, whatever the unit prices say.
Interactive figure
Cost per message, or cost per outcome?
- Utility template
- 10 cost per outcome
- Marketing template
- 50 cost per outcome
Utility template is cheaper per outcome. The starting values are placeholders, not Meta's rates: put in the prices you are quoted and the outcome rates you measure against a holdout.
Keep a break-glass template approved#
The single highest-value practice: keep an approved, generically worded incident template that you hope never to use.
Word it so it can carry any incident — what happened, what you are doing, where to look for updates — with variables for the specifics and a link. Approval is usually quick, but on the day you need it a rejection, a pause or a backlog is the difference between telling customers and not. The temptation is to write it specifically. Resist; a specific template has to be approved again for the next incident.
Version templates like code#
Templates drift. Someone edits copy, resubmits, and production now references a template whose meaning has changed.
Keep template definitions in version control next to the code that sends them, and treat an approval as a deployment. When a template changes, that is a new version, not an update — the old one sent real messages and you need a record of what they said.
What a template record has to carry
- Body and variables
The exact text as approved, with the variable positions. Not the current draft — the approved one.
- Category
Utility, marketing, authentication. The billing consequence and the trust consequence in one field.
- Approval state
Approved, pending, rejected, paused. With the reason, in the platform's words.
- Version and dates
When it was approved, when it was superseded. Messages sent under it point here.
- Language
One record per locale, not one record with a translation field. They are approved separately.
- Break-glass flag
Marks the pre-approved template you keep for the incident you have not had yet.
The set, as a portfolio#
The discipline is in the count rather than the craft. A programme with forty templates usually has a dozen that carry the traffic and many that nobody has retired.
Where each template earns its approval
Confirmations and receipts. Highest trust, lowest scrutiny, and the ones people actually want.
Status changes. Trusted because they are relevant, not because they were asked for.
A deadline attached. The only category where urgency is honest.
Re-engagement. Sparingly, and the first one you should cut when quality slips.
Why templates get rejected#
Rejection is rarely about the words. It is about the gap between the category claimed and the message written.
- Marketing filed as utility — the most common cause.
- Variables that carry the whole message. A template whose only fixed text is "Hello {{1}}" is a way of avoiding review and is treated as one.
- No exit. A re-engagement template without a way to stop receiving them.
- Vague or misleading content, such as an unexplained link or a sender that does not match the business.
And one to avoid on your own account: a template that invites a reply you have no capacity to answer. If it asks a question, someone — or something — has to be ready.
What gets a template rejected — and one to avoid yourself
- Marketing filed as utility
The most common cause
- Variables that carry the whole message
"Hello {{1}}" is a way of avoiding review
- No exit
A re-engagement template without a way to stop
- Vague or misleading content
An unexplained link, a sender that does not match the business
- A question nobody is ready to answer
Not a rejection reason — one to avoid on your own account
A worked example#
A regional internet provider sets up WhatsApp for billing and support.
- Five templates in English and Arabic (ten records): payment received, plan changed, payment due in three days, service disruption (break-glass), and a quarterly upgrade offer (marketing).
- The disruption template reads, in effect: "We are aware of a problem affecting {{1}}. Our team is working on it. Updates: {{2}}." It was approved in week one and not used until a fibre cut in month five, when it went to affected customers within minutes.
- The upgrade offer was first submitted as utility, re-categorised to marketing by Meta, and kept there. Its cost was then compared with upgrades it produced, not with the utility price.
The break-glass template, in practice
- Five templates approved
In English and Arabic: ten records, including the disruption notice
- Upgrade offer re-categorised
Submitted as utility, moved to marketing by Meta, kept there
- A fibre cut
The disruption template reaches affected customers within minutes
What to ask a provider#
- Can I manage templates through your API and export them, with category, status and version history?
- Do you pass through Meta's category-change and quality notifications to me as webhooks?
- Do you add a margin to Meta's per-message prices, and is it per message or per conversation?
- How do you show a template send that failed because of Meta's per-user marketing limits?
Where to go next#
Templates exist because of the 24-hour window. Next in this track: what RCS changed. For why the official platform matters, read the cost of an unofficial transport.
Sources
Every claim worth checking, with somewhere to check it.
- WhatsApp Business Platform pricingMeta for Developers
- Updates to pricingMeta for Developers
- Upcoming pricing updates for Meta Business Agent, service and utility messagesMeta for Developers · 2026-09-30
- template_category_update webhook referenceMeta for Developers