Calliyo — SIM-based CRMStart Free Trial
WhatsApp CRM
WhatsApp · Template approval

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.

UtilityOrder confirmation
Hi {{1}}, your order #{{2}} for {{3}} has been confirmed. Expected delivery: {{4}}. Track: {{5}}

Note: High approval rate; cheapest category

UtilityAppointment reminder
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

UtilityPayment confirmation
Payment of ₹{{1}} received for {{2}}. Invoice: {{3}}. Reach us at {{4}} for any queries.

Note: Always approved; do not add upsell copy

UtilityShipping update
Hi {{1}}, your shipment {{2}} is now {{3}}. Expected at your address on {{4}}.

Note: Variable {{3}} = 'out for delivery' / 'in transit' / etc.

UtilityDemo / call follow-up
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

MarketingLimited-time promotion
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

MarketingNew product announcement
Hi {{1}}, we just launched {{2}} — built for {{3}}. Take a look: {{4}}

Note: Keep it short; avoid superlatives like 'best-ever', 'revolutionary'

MarketingRe-engagement
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)

AuthenticationLogin OTP
Your verification code is {{1}}. It expires in {{2}} minutes. Do not share with anyone.

Note: Cheapest per-conversation; restricted to verification flows only

AuthenticationPassword reset
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.

POLICY_VIOLATION (no detail)

Almost always: wrong category. Try resubmitting as Utility if you submitted as Marketing, or vice versa. If still rejected, strip emoji and exclamation marks.

INVALID_FORMAT

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'.

TAG_CONTENT_MISMATCH

The template category doesn't match the body. A 'discount!' message tagged Utility fails. Resubmit as Marketing.

Quality drop after approval

Customers blocked or reported the template. Pause sends for 7 days; the rating recovers. Rewrite the copy to be more direct, less salesy.

Variable doesn't match example

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.

URL not allowed

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

Chat with us