The Complete Guide to WhatsApp Message Templates
Everything you need to know about creating, submitting, and getting WhatsApp message templates approved — including category rules, variable best practices, and common rejection reasons.
What Are WhatsApp Message Templates?
Message templates (formerly called HSMs — Highly Structured Messages) are pre-approved message formats that WhatsApp businesses use to reach contacts outside the 24-hour customer service window.
If a customer messaged you more than 24 hours ago, you cannot send them a free-form message. You must use an approved template. This rule protects WhatsApp users from spam.
Templates are reviewed by Meta, usually within 1–5 minutes for simple text templates, up to 24 hours for complex rich-media ones.
Template Categories
Meta defines three categories. Choosing the wrong one is the most common reason for rejection.
UTILITY
For transactional or functional messages directly related to a product/service the customer opted into.
✅ Order confirmations, shipping updates, payment receipts, appointment reminders, OTPs
AUTHENTICATION
For one-time passcodes and verification codes only. Has strict formatting requirements.
✅ "Your verification code is {{1}}. Valid for 10 minutes."
MARKETING
For promotional content, offers, product announcements, or any message that doesn't fit UTILITY.
✅ Sale announcements, re-engagement messages, product launches, newsletters
Important: Marketing templates cost more per conversation than UTILITY templates. Misclassifying a marketing message as UTILITY to save costs is a policy violation and will result in template rejection or account restriction.
Template Structure
A template consists of up to four components:
HEADER (optional) — Text, image, video, or document
BODY (required) — Main message text, up to 1,024 characters
FOOTER (optional) — Short disclaimer or opt-out text
BUTTONS (optional) — Up to 3 quick reply or call-to-action buttonsVariable placeholders
Use {{1}}, {{2}}, etc. for dynamic content. Variables must be numbered sequentially.
✅ Good:
"Hi {{1}}, your appointment is confirmed for {{2}} at {{3}}."
❌ Bad (mixing variable types):
"Hi {{name}}, your order {{orderId}} is ready."
Meta requires numbered placeholders, not named ones.
Creating a Template in MotherBot
- Go to Templates → New Template.
- Choose a category (UTILITY / MARKETING / AUTHENTICATION).
- Select the language — you need a separate template for each language you want to use.
- Fill in the body text with your variables.
- Optionally add a header, footer, and buttons.
- Click Submit to Meta.
MotherBot submits the template to Meta's API and polls for status every 30 seconds. You'll see Approved, Rejected, or Pending in the template list.
Common Rejection Reasons
| Reason | Fix |
|--------|-----|
| Wrong category | Re-submit under correct category |
| URL in UTILITY template body | Only allowed in buttons or header |
| Vague variable usage | Add sample values for all variables |
| Template name contains brand names | Use generic descriptive names |
| Grammar/spelling errors | Proof carefully — Meta is strict |
| Threatens consequences | Rewrite without urgency pressure |
| Misleading content | Ensure body matches what user expects |
Button Types
Quick Reply buttons
Up to 3 buttons. User taps one; the button text is sent as their reply.
Use for: YES/NO confirmations, opt-outs, simple choices.
Call-to-Action buttons
- Phone number — opens the dialer with a pre-filled number
- URL — opens a link, optionally with a dynamic URL suffix via
{{1}} - Copy code — copies a code to clipboard (great for promo codes)
You can mix one URL button and one Phone button in the same template.
Template Variables — Best Practices
- Always provide sample values when submitting. Meta reviewers can't approve templates with empty variables.
- Keep samples realistic. If your variable is a name, use "John", not "TEST_VAR_1".
- Don't use variables for the entire message body. At least 50% of your body text should be static — Meta rejects templates that are entirely variable content.
- Limit variables per template. More than 5–6 variables makes template management complex and increases rejection risk.
Tags