What is a WhatsApp Message Template?
A message template is a pre-formatted message you submit to Meta for review before sending it to customers. You need approved templates to message anyone outside an open 24-hour messaging window — which means anyone you haven't heard from in the last 24 hours.
Templates control three things:
Get the category wrong, and you'll either get rejected, or worse, get billed at Marketing rates when you thought you were sending a Utility message.
The 3 Categories (and Why This Is The #1 Thing To Get Right)
Every template falls into one of three categories. Pick wrong and Meta will silently re-categorise you.
UTILITY
Transactional messages tied to a specific user action or event. Order updates, appointment reminders, payment receipts, account alerts.
Rule: must be either explicitly requested by the user, or essential (fraud alerts, safety warnings).
MARKETING
Promotional messages — discounts, new product announcements, upsells, re-engagement campaigns. Anything not tied to a specific transaction.
AUTHENTICATION
One-time passwords (OTPs) and verification codes. Strict format requirements, no marketing copy allowed inside.
Critical 2025 Update — Auto-recategorisation
As of April 9, 2025, Meta auto-reclassifies templates without your permission. If you submit a UTILITY template with promotional language, Meta will silently approve it as MARKETING and bill you accordingly. The old allow_category_change opt-in is now the default behaviour.
This means you can submit a clean UTILITY template, get it approved as Marketing, and only notice on your next bill.
Pricing By Category (2026)
Meta switched to per-message billing on July 1, 2025 — the old conversation-based model is dead. Volume-based tiers now apply for Utility and Authentication: the more you send, the cheaper each message gets.
For the full breakdown, see our WhatsApp pricing guide.
6 Best Practices
1. Pick the category accurately — assume Meta will overrule you
Before submitting, ask: "Is this tied to a specific transaction or user action?" If yes, UTILITY. If you're driving awareness, traffic, or a sale, MARKETING. If it's an OTP, AUTHENTICATION.
If you mix intents — e.g., "Your order has shipped! Use code SAVE10 for 20% off your next order" — Meta will categorise the entire template as Marketing.
2. Variables must add content, not BE the content
Templates that are only variables get rejected. A body of just {{1}} is a spam vector — anyone could use it to send anything.
{{1}}{{1}} {{2}}Hi {{1}}, your order #{{2}} has been shipped. Track it: {{3}}Every variable needs:
{{1}}, {{2}}, {{3}} — no skipping {{1}}, {{2}}, {{4}}3. Use full URLs — never bit.ly or tinyurl
URL shorteners are an automatic rejection. They obscure the destination, which is a phishing vector.
Track your order: bit.ly/abc123Track your order: https://shop.example.com/orders/{{1}}4. UTILITY must be strictly transactional
No upsells, no "while you're here", no promotional copy. Mixed-intent templates get re-classed to MARKETING and billed accordingly.
5. Monitor quality rating like deliverability
Each template gets a quality rating — Green, Yellow, or Red — based on user feedback (blocks, reports, "not interested" replies) over a rolling 7-day window.
If your phone number's overall quality stays low, Meta drops you to a lower messaging tier (e.g., from 100K to 10K daily limit).
6. Get explicit, logged opt-in BEFORE the first message
Meta's Business Policy requires opt-in confirming the user "wishes to receive subsequent messages or calls" from your business via WhatsApp.
For Singapore, PDPA layers on top:
A customer giving you their number on a quote form is NOT WhatsApp opt-in unless the form explicitly says "we'll message you on WhatsApp about your quote."
Top 5 Reasons Templates Get Rejected
1. Non-sequential variables — {{1}}, {{2}}, {{4}} skips {{3}}
2. Template is only variables / placeholders — body of {{1}} with no fixed text
3. Shortened URLs — bit.ly, tinyurl, etc.
4. Promotional content in UTILITY category — "shop now", "limited time", discount codes
5. Requesting sensitive identifiers — full card numbers, NRIC / national ID, passwords, full bank account numbers
Template Examples That Work
UTILITY — Order Update
Hi {{1}}, your order #{{2}} has shipped via {{3}}. Track it here: {{4}}
UTILITY — Appointment Reminder
Hi {{1}}, this is a reminder of your appointment on {{2}} at {{3}}. Reply CONFIRM to keep it or RESCHEDULE to change.
MARKETING — Promotional Offer
Hi {{1}}, our {{2}} sale starts today. Up to {{3}}% off across the store: {{4}}. Reply STOP to opt out.
AUTHENTICATION — OTP
{{1}} is your verification code. For your security, do not share this code.
(Authentication templates have stricter format rules — Meta provides templates you can use directly.)
What Changed in 2025
If your template policy or pricing assumptions are from 2024 or earlier, they're outdated.
Singapore PDPA — Beyond Meta's Policy
Meta's opt-in is a global minimum. Singapore's PDPA requires more.
Specific consent. A "receive messages from us" tick on a contact form covers contact about that form's purpose only. To send marketing later, you need separate marketing consent.
Marketing opt-in ≠ utility opt-in. A customer who consented to order updates has NOT consented to promotional broadcasts. You'd need to add a marketing-consent ask separately.
Audit trail. PDPC investigations ask for opt-in evidence — when, how, what consent text was shown. If you can't produce it, the consent doesn't exist.
Frequently Asked Questions
Why did my "order shipped" template get re-billed as Marketing this month?
Likely because Meta auto-reclassified it. Common triggers: copy that mentions a discount, an upsell prompt, or a "shop now" CTA inside what was meant to be a transactional update. Submit a tighter UTILITY-only version.
Do I need separate opt-ins for marketing vs order updates?
Yes, under Singapore PDPA. Order updates are tied to a transaction the customer initiated. Marketing requires a separate, specific consent.
Can I send to a customer who gave me their number on a quote form?
Only if the form explicitly said you'd message them on WhatsApp about that quote. Even then, it's not marketing consent — only quote-related consent.
Why does my OTP template keep getting rejected?
Authentication templates have strict format rules. You can't include marketing copy, links to your site, or branding beyond your business name. Meta provides ready-made authentication templates — use those when possible.
What happens if a customer reports my message as spam?
Your template's quality rating drops. If it goes Red, the template is paused. If your phone number's overall quality stays low, Meta drops you to a lower messaging tier.
Are utility messages really free?
Free only when sent inside an open 24-hour service window initiated by the user. Outside that window, utility templates are charged (less than marketing, but not zero). See the 24-hour rule guide for details.
How many messages can I send per day?
Tiered: starts at 1,000 unique users / day, scales to 10K → 100K → unlimited based on quality rating, business verification status, and consistent volume.
How Envoy Helps
Envoy AI CRM gives you guard rails on top of Meta's template system:
Tell us what you need — we'll set up your templates and consent flow as part of onboarding.
| Category | Inside 24-hour window | Outside 24-hour window |
|---|---|---|
| UTILITY | Free | Charged (cheaper than Marketing) |
| MARKETING | Charged | Charged |
| AUTHENTICATION | Charged (lowest tier) | Charged (lowest tier) |
| Date | Change | |
| --- | --- | |
| April 9, 2025 | Auto-recategorisation became the default — Meta can change a template's category after approval | |
| July 1, 2025 | Conversation-based billing retired. Per-message pricing now applies | |
| July 1, 2025 | Volume-based tiers introduced for UTILITY and AUTHENTICATION (cheaper at higher volumes) |