In short: A message template is a message Meta approves in advance. It is the only way to message a customer outside the 24-hour window, and every campaign uses one. Keep each template to one purpose, one category and one language.
When you need a template
- The customer wrote in the last 24 hours: you can reply with any free-form message.
- The window is closed, or the customer never wrote: only an approved template. The customer must have agreed to get messages from you.
- Campaigns and anything your business starts (reminders, confirmations): always a template.
Every delivered template is charged by Meta according to its category. See Paying Meta and WhatsApp Messaging Costs.
The three categories
| Category | Use it for | Rules |
|---|---|---|
| Marketing | Promotions, launches, win-back, surveys | Most expensive. Not delivered to US (+1) numbers. Meta limits how many one person gets from all businesses. |
| Utility | Order confirmations, shipping updates, appointment reminders | Must be about something the customer did. No promotion at all. |
| Authentication | One-time codes, login confirmations | Meta’s fixed text. Code up to 15 characters. No links or emojis. |
Meta reviews the content and can move a template to another category. One promotional line in a Utility template makes it Marketing.
Rules that get templates approved
- Name: up to 30 characters, lowercase English letters, numbers and underscores only. Example:
order_shipped_v2. - Body: up to 1,024 characters, one language, a few emojis at most.
- Parameters are numbered:
{{1}},{{2}}, in order. The body can’t start or end with one, and two can’t sit side by side. Keep enough fixed text around them. - Header (optional): text up to 60 characters, an image, video, PDF or location.
- Footer (optional): up to 60 characters, no parameters.
- Buttons (optional): up to 10 in total, with at most 2 URL buttons and 1 phone button.
- Links: use your own domain, not a link shortener.
- Don’t ask for card numbers, ID numbers or bank details.
Good: “Hi {{1}}, your order {{2}} from ColorShop has shipped and will arrive by {{3}}.” Bad: “{{1}}, your order has shipped.” (starts with a parameter).
For Marketing templates, use the Stop messages button picker. It adds an opt-out button and a matching footer, and customers who tap it are blocked from campaigns automatically.
Common questions
Can I edit a template?
No. Delete it and create a new one. This is also how you fix a rejected template.
Rejected for “incorrect category”
The content has promotion in it. Create it again as Marketing, or move the promotion to a separate template.
The template was approved, then paused
Customers blocked or reported it. Meta pauses it for 3 hours, then 6, then disables it. Send it only to people who expect it, or write a clearer version.
I need the same message in two languages
Create one template per language with the same parameters.