WhatsApp template messages are the gateway to outbound messaging. You cannot send the first message to a customer without an approved template. This guide covers everything — categories, structure, variables, approval, and what gets templates rejected.
A WhatsApp template message (also called HSM — Highly Structured Message) is a pre-approved message format that businesses use to initiate WhatsApp conversations with customers. Before you can send the first message in a conversation, you must use a template that Meta has already approved.
Once a customer replies to your template, you enter a 24-hour service window where you can send any message without a template. Templates are only required for the first outbound message and for messages sent outside the 24-hour service window.
When you DO need a template: Sending an order confirmation to a new customer. Sending a payment reminder 3 days after a purchase. Sending a promotional broadcast to your customer list. Starting a conversation with a lead who hasn't messaged you first.
When you DON'T need a template: Replying to a customer who messaged you first. Responding to a support query within 24 hours. Continuing an active conversation within the 24-hour window.
Template category determines the per-conversation cost Meta charges. Choosing the wrong category is the #1 reason for template rejection.
| Category | Use for | Examples | Cost (India) |
|---|---|---|---|
| Marketing | Promotional messages, offers, campaigns | Sale broadcast, product launch, loyalty points offer | ~₹0.58–0.72/conv |
| Utility | Transactional notifications about an action they took | Order confirmation, shipping update, payment receipt, appointment reminder | ~₹0.10–0.14/conv |
| Authentication | One-time passwords and verification codes | OTP for login, signup verification, 2FA code | ~₹0.10–0.14/conv |
Critical rule: If your message contains any promotional content (discounts, offers, calls to purchase) it is a Marketing template — regardless of whether there's also transactional content. Submitting promotional content as Utility will get rejected.
Can be text (up to 60 chars), image, video, PDF document, or location. Use headers to add visual context — product images in order confirmations, invoice PDFs in payment receipts. One variable allowed in text headers.
The main message text — up to 1,024 characters. Supports bold (*text*), italic (_text_), strikethrough (~text~), and monospace (```text```). Up to 20 variables {{1}} through {{20}} for dynamic content. This is the most important section.
A short line of grey text below the body — up to 60 characters. Cannot contain variables. Used for disclaimers, contact info, or opt-out instructions.
Up to 3 buttons per template. Types: Quick Reply (text buttons that send a reply), Call to Action URL (opens a link), Call to Action Phone (dials a number). Buttons dramatically increase engagement vs text-only templates.
Variables are placeholders in your template that get replaced with actual data when the message is sent. Format: double curly braces with a number — {{1}}, {{2}}, etc.
Variable rules: Variables must be numbered sequentially starting from {{1}}. You cannot skip numbers (no {{1}} and {{3}} without {{2}}). Each variable must be filled when sending — empty variables cause message delivery failure. Provide sample content for each variable at template submission time.
Meta verifies your template content matches the category you selected. Marketing content in a Utility template is the most common rejection reason. Be honest about the template purpose.
Meta reviewers should understand what your business does and why this message is being sent. Vague templates ("Hi {{1}}, please check {{2}}") get rejected. Specific templates ("Hi {{1}}, your courier shipment {{2}} is out for delivery") are approved.
No prohibited content: gambling, adult content, tobacco, weapons, regulated financial products (without required disclosures), multi-level marketing. No misleading claims. No urgency language designed to pressure customers into immediate action.
When submitting, provide realistic sample content for every variable. "{{1}} = Priya" not "{{1}} = variable1". Reviewers use your samples to understand the template context.
| Rejection reason | Fix |
|---|---|
| Marketing content in Utility template | Either remove promotional content (discount, offer, CTA to purchase) OR change category to Marketing and resubmit. |
| Template too vague | Add specific context. Include business type, the triggering event, and what the customer should do. Replace generic variables with specific field names in samples. |
| Prohibited content category | Check Meta's commerce policy for your industry. For regulated categories (finance, healthcare), add required disclosures. For truly prohibited categories, you cannot send WhatsApp marketing messages. |
| URL in template unreachable | Ensure the domain in any URL within the template or button is live and accessible. Use your registered business domain — personal link shorteners (bit.ly, tinyurl) are sometimes rejected. |
| Variable format error | Ensure all variables use double curly braces: {{1}}, {{2}}. Single braces {1} or other formats fail. Variables must be sequential. |
WA.Expert's template library has 100+ pre-approved templates for common use cases. Submit once, use forever.