Skip to main content
    Back to Documentation
    Templates & Rules

    WhatsApp Template Best Practices: Get Approved, Avoid Rejection (2026 Guide)

    Write WhatsApp Business API templates that get approved fast, avoid auto-recategorization to Marketing, and survive Meta's quality rating system. With Singapore PDPA compliance notes for Voltade clients.

    8 min read
    Updated Apr 27, 2026
    templatesmeta approvalutilitymarketingpdpasingapore

    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:

  1. Whether your message goes out at all — unapproved or rejected templates won't send
  2. Whether you can message a cold customer — only approved templates can break the silence
  3. What you pay — different categories have different per-message rates
  4. 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.

  5. ❌ Rejected: {{1}}
  6. ❌ Rejected: {{1}} {{2}}
  7. ✅ Approved: Hi {{1}}, your order #{{2}} has been shipped. Track it: {{3}}
  8. Every variable needs:

  9. Sequential numbering: {{1}}, {{2}}, {{3}} — no skipping {{1}}, {{2}}, {{4}}
  10. A sample value when you submit
  11. Surrounding fixed text that gives the variable context
  12. 3. Use full URLs — never bit.ly or tinyurl

    URL shorteners are an automatic rejection. They obscure the destination, which is a phishing vector.

  13. Track your order: bit.ly/abc123
  14. Track your order: https://shop.example.com/orders/{{1}}
  15. 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.

  16. ❌ UTILITY rejected: "Your appointment is confirmed for {{1}}. Book another for 10% off!"
  17. ✅ UTILITY approved: "Your appointment is confirmed for {{1}}. Reply YES to confirm or NO to reschedule."
  18. 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.

  19. Green — healthy, no action needed
  20. Yellow — at risk, review send volumes and content
  21. Red — paused or disabled by Meta
  22. 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:

  23. Consent must be specific (purpose-bound — see the FAQ below)
  24. Consent must be voluntary — no pre-ticked boxes
  25. You must keep a timestamped record of when and how each user opted in
  26. 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:

  27. Category-aware template builder — flags promotional language inside UTILITY drafts before you submit
  28. Quality rating dashboard — see all your templates' Green / Yellow / Red status in one place
  29. Opt-in audit log — timestamped record of every consent, ready for PDPC audits
  30. Tell us what you need — we'll set up your templates and consent flow as part of onboarding.

    CategoryInside 24-hour windowOutside 24-hour window
    UTILITYFreeCharged (cheaper than Marketing)
    MARKETINGChargedCharged
    AUTHENTICATIONCharged (lowest tier)Charged (lowest tier)
    DateChange
    ------
    April 9, 2025Auto-recategorisation became the default — Meta can change a template's category after approval
    July 1, 2025Conversation-based billing retired. Per-message pricing now applies
    July 1, 2025Volume-based tiers introduced for UTILITY and AUTHENTICATION (cheaper at higher volumes)