In this article 13 sections
- Step 1: Decide what the message is for
- Step 2: Choose the honest category
- Step 3: Name it clearly
- Step 4: Pick the matching language
- Step 5: Write the body like a person
- Step 6: Place variables correctly
- Step 7: Give realistic sample values
- Step 8: Add header, footer and buttons if useful
- Step 9: Check links
- Step 10: Submit, then wait
- Templates that usually pass
- After approval
- Templates in ONPAD
On the WhatsApp Business API, you need an approved message template to start any conversation — including every campaign you send. Meta reviews each template, usually within minutes, sometimes within a day.
Rejections are common, but they are also predictable. If you follow the steps below, most templates are approved on the first try. (If one has already been rejected, see why WhatsApp templates get rejected.)
Step 1: Decide what the message is for
Write one sentence describing the purpose: "Tell the customer their order has shipped and when it will arrive." If you cannot write that sentence, the template is not ready.
One template, one job. A message that confirms an order and announces a sale is two templates.
Step 2: Choose the honest category
| Category | Use it for | Example |
|---|---|---|
| Marketing | Offers, announcements, new products, greetings, re-engagement | Festive sale, new arrival |
| Utility | Something the customer already did or asked for | Order shipped, appointment reminder, payment received |
| Authentication | One-time passcodes only | Login code |
If the message contains an offer, it is marketing — even if it also mentions an order. Meta re-categorises or rejects templates in the wrong category, and choosing utility does not make a promotion cheaper.
Step 3: Name it clearly
Template names use lowercase letters, numbers and underscores — for example order_shipped or appointment_reminder_24h. Customers never see the name, but you will search for it in a list of fifty templates a year from now.
Step 4: Pick the matching language
The language you select must match the text. Hindi text submitted as English is rejected. For Hinglish written in English letters, English is usually the closer match.
Step 5: Write the body like a person
The body can be up to 1,024 characters, but shorter is better.
Do:
- Start with a greeting and the customer's name.
- Say clearly who you are and why you are writing.
- Keep a calm, friendly tone.
- For marketing, include a way to opt out, such as "Reply STOP to opt out".
Avoid:
- CAPITAL LETTERS for emphasis
- Several exclamation marks
- "FREE", "HURRY", "LAST CHANCE"
- Rows of emoji
- Asking for card numbers, passwords or ID numbers
Step 6: Place variables correctly
Variables are written {{1}}, {{2}} and are replaced when the message is sent. Three rules:
- The body cannot start or end with a variable.
- Two variables cannot touch:
{{1}}{{2}}is rejected. - There must be enough fixed text that the reviewer understands the message.
Step 7: Give realistic sample values
Every variable needs a sample. Meta reads them to understand the template.
Weak: {{1}} = "test", {{2}} = "xxx"
Strong: {{1}} = "Priya", {{2}} = "#10482"Step 8: Add header, footer and buttons if useful
- Header — optional text (up to 60 characters), image, video, document or location. Images make marketing messages stand out.
- Footer — optional, up to 60 characters. A good place for the opt-out line.
- Buttons — quick replies (the customer taps instead of typing), a website link (must be
https://), a phone number, or a copy-code button for coupons.
Quick reply buttons are the easiest way to get responses — and every reply opens a 24-hour window in which you can answer freely. See the 24-hour window, explained.
Step 9: Check links
Use links on your own domain, make sure the page is live, and avoid link shorteners such as bit.ly, which Meta often refuses.
Step 10: Submit, then wait
The status moves from Pending to Approved or Rejected. If rejected, change something meaningful before resubmitting — the same text gets the same answer.
Templates that usually pass
Order shipped (utility)
Hi {{1}}, your order {{2}} from Sunrise Store has been shipped.
It should reach you by {{3}}. Track it here: https://sunrisestore.in/trackSamples: Priya, #10482, Friday
Appointment reminder (utility)
Hi {{1}}, this is a reminder of your appointment at Care Clinic
on {{2}} at {{3}}. Reply 1 to confirm or 2 to reschedule.Samples: Rahul, 14 November, 11:30 am
Festive offer (marketing)
Hi {{1}}, our Diwali collection is now in store. Customers on our
WhatsApp list get 15% off until {{2}}. Visit us or shop online.Footer: Reply STOP to opt out. Samples: Anjali, 31 October
Replace the example business names with your own before submitting — templates that mention another business are rejected.
After approval
- Watch the template's quality. If recipients block or report it, Meta can pause it.
- Do not overuse marketing templates. Fewer, relevant messages keep your number healthy.
- Keep a small library of approved templates for common situations, so your team never waits for approval when a customer needs an answer.
Templates in ONPAD
ONPAD has a template builder with a live preview, starting-point templates for common cases, and statuses synced with Meta. The full reference, including every field limit, is in our templates documentation. You can try it free for 7 days.