Skip to content

Free tool

Lint your {{n}} variables before Meta rejects the template

Paste a template body and get an instant report on numbering gaps, malformed braces, edge-position errors and review risks — plus a live preview with editable example values.

Paste the body exactly as you would submit it, {{1}}-style placeholders included. Everything runs in your browser — nothing is sent to a server.

Lint results

Paste a template body to run the checks — numbering, gaps, malformed braces, edge positions and more.

Preview with example values

Your message renders here with the example values substituted…

The JSON array lists one value per distinct variable, in order — the format template APIs expect for body example values.

How it works

Three steps, no signup

1

Paste the body

Drop in your template body exactly as you plan to submit it, {{1}}-style placeholders and all. The checks run as you type, entirely in your browser.

2

Fix what the report flags

Each rule shows as a pass, warning or error with the exact offending snippet — missing indexes, stray braces, variables at the start or end, and too-dynamic ratios.

3

Preview and copy

Edit the auto-generated example values, watch the message render in a live preview bubble, then copy the body and the example array (JSON) for your submission.

Good to know

Variables are where most template rejections start

Meta's placeholder rules look arbitrary until you see what they exist to prevent. Sequential numbering from {{1}} is not pedantry — the numbers are array positions. When you submit a template, the example values ride along as an ordered array, and at send time your API call supplies real values the same way. A gap in the sequence would leave a sample with no placeholder to belong to, so the API refuses the payload outright, before a human reviewer ever sees it. The same logic explains why the body cannot start or end with a variable and why mostly-placeholder bodies get rejected as too dynamic: an approved template is a contract about what the message will say, and a body that is variables held together by punctuation makes that contract meaningless.

The most reliable fix is also the least technical: use fewer variables inside fuller sentences. “Hi {{1}}, your order {{2}} has shipped and should arrive by {{3}}.” gives a reviewer three clearly-purposed slots inside real prose. Six placeholders chained across fragments does the opposite — it reads like a form letter to the reviewer and, just as importantly, to the customer who eventually receives it. If two values always travel together (a date and a time, an amount and a currency), consider merging them into one variable and formatting the combined string in your own code before sending. Fewer moving parts means fewer ways for a send to fail later, too.

  • Write example values as if a customer will read them. Reviewers see the filled-in message, not the raw body. “Priya” and “ORD-4821” read like a real notification; “test” and “123” invite closer scrutiny and slower review.
  • Keep values consistent with the copy. If the body promises a delivery date, the sample should look like a date. A mismatch between what a sentence claims and what the sample shows is an easy reason to reject.
  • Count distinct variables, not occurrences. Reusing {{1}} twice is allowed, but the example array still lists it once. Listing it twice shifts every later value out of position.

A clean variable report does not guarantee approval — content review still judges category fit and policy compliance. What it does guarantee is that a rejection, if it comes, is about something worth a conversation, not a stray brace or a missing {{2}} you could have caught in ten seconds.

FAQ

Frequently asked questions

Why do WhatsApp template variables have to be sequential?

Meta validates that placeholders form an unbroken sequence starting at {{1}} — {{1}}, {{2}}, {{3}} with no gaps. The numbers double as positions in the example-values array you submit alongside the template, so a missing index would leave the API unable to match samples to placeholders. A body using {{1}} and {{3}} but not {{2}} is rejected at submission, before human review even starts.

Why is starting or ending the body with a variable a problem?

Meta's validation rejects template bodies that begin or end with a placeholder. The practical reason is abuse prevention — a body that is bookended by variables could be repurposed into an almost entirely dynamic message after approval. Anchor every variable inside fixed text, for example 'Hi {{1}}, your order is confirmed.' rather than '{{1}}, order confirmed'.

Can I reuse the same variable twice in one body?

Yes. Repeating {{1}} in two places is valid and both occurrences receive the same value at send time. The thing to remember is that the example array counts distinct indexes, not occurrences — a body with {{1}} used twice and {{2}} used once needs exactly two sample values, not three.

What does a 'too dynamic' rejection mean?

If most of a template is placeholders with little fixed text around them, reviewers cannot judge what the message will actually say, and Meta commonly rejects it as overly variable content. A useful rule of thumb is at least around 15 characters of fixed text per variable. Fewer variables inside fuller sentences pass review more reliably and read better to customers.

Do the example values I enter get sent anywhere?

No. This checker runs entirely in your browser — the body and every example value stay on your machine. When you do submit the real template to Meta, though, the example values travel with it and reviewers read them literally, so keep them realistic here too.

Still have questions?

Book a demo

Talk to InfiQ

See what WhatsApp can do for your business

Tell us your volume — we map templates, estimate cost, and get you a sandbox in about 2 hours.

Step 1 of 2
WhatsApp

Protected by invisible spam checks · replies within 1 working day

Meta Business Partner

Submit templates that pass review the first time

InfiQ handles template creation, approval tracking, broadcasts and the developer API on the official WhatsApp Business API — 7-day free trial, no card required.

7-day free trial Enterprise-grade reliability Live in 2 hours Built for Indian businesses