Templates
Create and manage Meta-approved message templates — required for all business-initiated WhatsApp conversations.
Why Templates Are Required
WhatsApp Business API enforces a strict policy: you can only send a free-form message to a contact who messaged you within the last 24 hours (the customer service window). Outside that window — or for the very first outbound message — you must use a Meta-approved template.Note
Templates must be submitted to Meta and approved before use. Text-only templates typically take minutes to a few hours. Media templates may take longer. Status is shown in the Templates list.
Template Categories
| Category | Use case | Initiates conversation? |
|---|---|---|
| Marketing | Promotions, offers, campaigns, newsletters. | Yes |
| Utility | Order updates, shipping notifications, OTPs. | Yes |
| Authentication | One-time passwords and login verification codes. | Yes |
Warning
Choose the correct category — submitting a promotional template as "Utility" can cause rejection or account suspension.
Creating a Template
1
Go to Templates → New Template
Click New Template. Enter an internal template name — lowercase letters, numbers, and underscores only (e.g.
order_shipped_v2). This name cannot be changed after submission to Meta.2
Select category and language
Pick Marketing, Utility, or Authentication. Select the language for this variant. You can submit additional language variants of the same template name after approval.
3
Build the template body
Write your message. Use double braces for personalization variables:
Hi {{1}}, your order #{{2}} has shipped!
Expected delivery: {{3}}.
Track it here: {{4}}Variables are numbered sequentially starting at {{1}}. When creating a campaign, you map each variable to a contact field (name, phone, email, or any custom field cf1–cf10) or a static value.4
Add header (optional)
A header appears above the body. Choose one type:
For media headers, you supply the actual file or URL at campaign creation time — not during template setup. This lets you reuse one template with different documents per campaign.
| Header type | Notes |
|---|---|
| Text | Short title line — supports one variable {{1}}. |
| Image | JPEG or PNG. When used in a campaign, provide the image via Upload or URL. |
| Video | MP4. Provide URL or upload when launching the campaign. |
| Document | PDF. Provide URL or upload when launching the campaign. |
5
Add footer (optional)
A short disclaimer or branding line displayed below the body in lighter text. Footers do not support variables.
6
Add buttons (optional)
| Button type | Description |
|---|---|
| Quick Reply | Tap-to-reply (up to 3). The contact's tap is received as a normal message. |
| Call to Action — URL | Opens a URL. Supports a dynamic suffix: https://yoursite.com/{{1}} |
| Call to Action — Phone | Dials a phone number directly from WhatsApp. |
| Flow | Opens a WhatsApp Flow embedded form. Requires a published Flow. |
Tip
URL buttons with
{{1}} in the URL let you send per-recipient deep-links — map the variable to a contact's custom field (e.g. tracking token or order ID) when launching the campaign.6
Submit for approval
Click Submit to Meta. Status changes to Pending while under review, then Approved or Rejected. Only Approved templates can be used in campaigns.
Template Quality Rating
Meta rates templates based on user feedback (blocks, reports):- Green — High quality. No restrictions.
- Yellow — Medium quality. Template may be paused if the rating drops further.
- Red — Low quality. Template is paused. Review content and audience targeting, then resubmit.
Tip
A dropping quality rating is a signal to review your audience or message content — not to send more messages faster.
Template Formatting
- Bold: wrap text with *asterisks* — e.g. *Hello*
- Italic: wrap with _underscores_ — e.g. _important_
- Strikethrough: wrap with ~tildes~ — e.g. ~old price~
- Monospace: wrap with ```backticks``` — e.g. ```code```
- Emojis are supported and count toward the 1,024-character body limit.
- Line breaks are preserved exactly as written.
- HTML tags are not supported — WhatsApp renders plain text with the above markup only.