Getting templates approved▾
Getting templates approved
Categories, examples, common rejection reasons and what to do when Meta recategorises you.
Template review is automated and mostly fast. Rejections cluster around a handful of causes, all of them avoidable.
Pick the category honestly
| If the message… | Category |
|---|---|
| Tells the customer about something they did — order, booking, payment | UTILITY |
| Delivers a one-time passcode and nothing else | AUTHENTICATION |
| Promotes, upsells, re-engages, or mentions a discount | MARKETING |
| Is a utility update that also mentions an offer | MARKETING — the offer decides it |
Common rejection reasons
| Reason | Fix |
|---|---|
INVALID_FORMAT | Placeholders are adjacent, or one starts or ends the body. Put static text between and around them. |
| Missing examples | Every {{n}} needs a sample value in example. Submissions without them are rejected outright. |
SCAM | Copy resembles phishing — remove urgency about accounts, payments or prizes. |
ABUSIVE_CONTENT | Usually a purchased-list re-engagement message. Rewrite around a real prior relationship. |
| Link shorteners | bit.ly-style domains read as cloaking. Use your own domain. |
Recategorisation
Meta re-reviews approved templates and can move a UTILITY template to MARKETING if the copy reads promotionally. That changes what every conversation it opens costs. You get seven days' notice; subscribe to template.category_updated and either accept it or rewrite and resubmit.
Keep a plain utility variant
If a template straddles the line, ship two: a strictly transactional
UTILITY one for the update itself, and a separate MARKETING one for the offer. Cheaper and far less likely to be paused.