← All tools
Built by UnifyPort Coming soon
Lint your WhatsApp template before Meta does
WhatsApp Business message templates get rejected for small, mechanical reasons — a misnumbered placeholder, one button too many. This tool checks them before you submit, so you don't lose hours in Meta's approval queue.
What it checks
The mechanical rules Meta enforces during template approval — the ones that cost you a round-trip when you miss them:
- Placeholder numbering. Variables in a component must be
{{1}},{{2}}… numbered consecutively with no gaps. - Button limits. Quick-reply and call-to-action buttons each have caps, and the two types mix under rules Meta checks at submit time.
- Character caps. Body, header and footer each have a maximum length; overruns are rejected outright.
- Header media type. A media header must declare a supported type —
TEXT/IMAGE/VIDEO/DOCUMENT.
A template, checked
Paste the template JSON you would submit:
{
"name": "order_update",
"language": "en",
"components": [
{ "type": "BODY", "text": "Hi {{1}}, order {{2}} ships {{3}}." },
{ "type": "FOOTER", "text": "Reply STOP to opt out" }
]
}
…and see what Meta would flag, before Meta sees it:
✓ body placeholders {{1}}, {{2}}, {{3}} — consecutive
✓ body length within limit
✓ footer present, no variables (allowed)
! no header — optional, add one for media
When it helps
- Before every submit. Approval can take hours; a one-round rejection over a numbering typo is pure dead time.
- Non-engineers writing templates. PMs and ops can self-check copy before it reaches the dev who submits it.
- Bulk template migrations. Validate a batch in one pass instead of discovering rejections one at a time.
How it'll work
- 1. Paste your template (header + body + footer + buttons).
- 2. See each rule checked live, with the exact offending field highlighted.
- 3. Fix and re-check until everything passes.
- 4. Submit to Meta with confidence. Everything runs in your browser — nothing is uploaded.
Common questions
- Why do WhatsApp templates get rejected?
- Most first-round rejections are mechanical: non-consecutive placeholders, too many buttons, an over-length body, or a header media type that is missing or unsupported. Those are exactly the checks this tool runs.
- How should placeholders be numbered?
- Within a component, variables must read
{{1}},{{2}}… consecutively with no gaps. A jump from{{1}}to{{3}}is rejected. - Does it submit the template to Meta for me?
- No. It only validates the template shape against the rules. You still submit through your normal WhatsApp Business / UnifyPort flow.
- Does my template data leave the browser?
- No. Validation runs entirely client-side — the template you paste is never uploaded to a server.
Coming soon
This one is in the build queue. Want it sooner, or have a template rule that keeps tripping you up? Tell us on Telegram and we'll prioritise it. Meanwhile, the UnifyPort WhatsApp docs cover sending template messages through the API.