WhatsApp Business template approval: get yours through Meta on the first try
Half of WhatsApp Business template submissions get rejected by Meta — usually for reasons the dashboard doesn't make clear. The fix is structural: categorise correctly, use variables where Meta expects them, and avoid the language patterns that trip the auto-reviewer. This is the practical playbook with 10 templates that pass review and the most common rejection reasons in plain English.
Built for: Marketing ops, growth, and product teams submitting WhatsApp templates
What goes wrong today
Templates rejected with no clear reason
Meta's dashboard says 'POLICY_VIOLATION'. You stare at perfectly innocent copy. The reviewer is auto. The reason is buried in the policy doc.
Wrong category, wrong pricing
Submit a transactional message as Marketing and you pay 3x more per conversation. Submit Marketing as Utility and it gets rejected.
Templates approved but quality drops fast
Template passed review, customers report it, quality drops to yellow, sends are throttled. The copy was technically approved but felt spammy.
Time wasted on iteration
Each rejection round takes 24 hours. A 3-iteration template costs 3 days. Marketing calendar slips.
How Calliyo fixes each one
Categorise before you write
Decide first: is this triggered by a customer event (Utility), is it promotional (Marketing), or is it an OTP/verification code (Authentication)? Different categories have different review bars.
Use real variables
Every dynamic value must be a {{1}} {{2}} placeholder. 'Hi John' fails — write 'Hi {{1}}'. 'Bangalore office' fails — write 'Hi {{1}}, your {{2}} appointment is confirmed.'
Strip the spam patterns
No ALL CAPS shouting, no more than 1 emoji per line, no 'CLICK NOW LIMITED OFFER!!!', no fake urgency ('Last chance!' when it's not). Auto-reviewer treats these as spam signals.
Match category to content
Marketing template selling a course = Marketing category. Receipt for that course = Utility. Login OTP = Authentication. Pricing differs (~₹0.30-0.80 per conversation in India), so use the cheapest applicable category.
10 templates that pass review
Copy-paste these. Variables ({{1}}, {{2}}) are real and required by Meta.
Hi {{1}}, your order #{{2}} for {{3}} has been confirmed. Expected delivery: {{4}}. Track: {{5}}Note: High approval rate; cheapest category
Hi {{1}}, this is a reminder for your appointment with {{2}} on {{3}} at {{4}}. Reply RESCHEDULE to change.Note: Reliable approval; pair with reschedule button
Payment of ₹{{1}} received for {{2}}. Invoice: {{3}}. Reach us at {{4}} for any queries.Note: Always approved; do not add upsell copy
Hi {{1}}, your shipment {{2}} is now {{3}}. Expected at your address on {{4}}.Note: Variable {{3}} = 'out for delivery' / 'in transit' / etc.
Hi {{1}}, thanks for the call. As discussed, here's the {{2}} brochure: {{3}}. I'll check in tomorrow.Note: Strongly performs on reply rate
Hi {{1}}, our {{2}} sale ends {{3}}. Flat {{4}}% off on {{5}}. Shop now: {{6}}Note: Approved when limits are real; flagged when 'flash sale ends today' is used repeatedly
Hi {{1}}, we just launched {{2}} — built for {{3}}. Take a look: {{4}}Note: Keep it short; avoid superlatives like 'best-ever', 'revolutionary'
Hi {{1}}, it's been a while. We've added {{2}} since you last visited — explore here: {{3}}Note: Only to opted-in dormant customers (90+ days)
Your verification code is {{1}}. It expires in {{2}} minutes. Do not share with anyone.Note: Cheapest per-conversation; restricted to verification flows only
Your password reset code is {{1}}. Use within {{2}} minutes. If you didn't request this, ignore this message.Note: Strict policy — no marketing copy can be mixed in
Common rejections and how to fix them
The auto-reviewer hits these six patterns most often.
Almost always: wrong category. Try resubmitting as Utility if you submitted as Marketing, or vice versa. If still rejected, strip emoji and exclamation marks.
Variable placeholders are wrong. Each variable must be {{1}}, {{2}}, etc. in order, no skipped numbers. No spaces inside braces. No text-and-variable mixing like 'Hello {{1}}John'.
The template category doesn't match the body. A 'discount!' message tagged Utility fails. Resubmit as Marketing.
Customers blocked or reported the template. Pause sends for 7 days; the rating recovers. Rewrite the copy to be more direct, less salesy.
Meta wants a sample value for every {{n}}. If you say 'Hi {{1}}' and the sample is 'Hi John', the review picks up 'John' as a real value. Don't put brand names, URLs, or codes there.
Bare URLs in marketing templates are flagged. Use the official 'Visit website' button instead. For utility, full URLs are usually fine if they belong to your verified domain.
Frequently asked questions
Why was my template rejected with 'POLICY_VIOLATION'?
90% of the time, it's the wrong category. Meta auto-reviews based on intent: promotional copy in Utility category fails; transactional copy in Marketing also fails. Resubmit with the correct category and the same copy usually passes.
What's the difference between Utility and Marketing categories?
Utility = triggered by a customer event (order placed, demo booked, payment received, ticket update). Marketing = promotional (sales, launches, re-engagement). Authentication = OTPs and codes. Utility is cheapest; Authentication is cheapest for verification flows; Marketing is the most expensive.
How long does template review take?
Usually 1-4 hours for clean templates. Up to 24 hours if Meta does manual review. Authentication templates often approve fastest. If it's been 48 hours, the template was rejected silently — check the dashboard.
Can I edit an approved template?
Minor edits (typos, variable order) re-trigger review. Major edits (changing intent/category) require resubmitting as a new template. Calliyo lets you draft locally before pushing to Meta to avoid burning approved-template slots.
What's the limit on number of approved templates?
Meta allows ~250 templates per WhatsApp Business Account. More than enough for most SMEs. The bigger constraint is quality — too many low-performing templates can drag the account quality rating.
Can I use templates in any language?
Yes — Meta supports 100+ languages. Each language version is a separate template that needs separate approval. Hindi, Marathi, Tamil, Telugu, Bengali, Gujarati templates all pass approval at similar rates to English. Calliyo's library includes Hindi versions of all 30 base templates.
Run WhatsApp on Calliyo
Official Business API, shared team inbox, AI-triggered templates from your call workflow. 7-day free trial, no credit card.
Read next
- WhatsApp CRM that actually moves leads (without getting blocked)WhatsApp CRM for Indian SMEs. Auto-trigger templates from calls, run follow-up cadences, manage one shared team inbox — without getting blocked by Meta.
- WhatsApp follow-up automation: send the right message after every callAuto-trigger WhatsApp follow-ups after every call. Build cadences for demos, carts, renewals and site visits. India-specific examples, no manual copy-paste.
