Message templates
Create WhatsApp message templates, submit them for Meta approval, and use variables, media headers and buttons. Category rules, approval times, rejection reasons and the 24-hour window.
A template is a pre-approved message you can send outside the 24-hour window — which is to say, any message you start rather than the customer.
Everything outbound that is not a direct reply is a template: campaigns, order updates, appointment confirmations, reminders.
Creating one
Broadcasts → New Template.
| Field | Notes |
|---|---|
| Name | Lowercase, underscores, no spaces: appointment_confirmed |
| Category | MARKETING or UTILITY — see below |
| Language | en_US, en, hi, te and others |
| Body | The message. Variables as {{1}}, {{2}} |
| Header | Optional image, video or document |
| Buttons | Optional quick replies or call-to-action |
Submit, and it goes to Meta for review.
Categories matter
UTILITY — a message about something the customer already did or opted into. Order confirmations, appointment reminders, delivery updates, payment receipts. Cheaper, approved faster, higher delivery tolerance.
MARKETING — promotions, offers, re-engagement, announcements. More expensive, reviewed more strictly, and subject to the customer's marketing opt-out.
Meta will re-categorise a template if you label a promotion as UTILITY. Categorise honestly — mislabelling gets templates rejected and hurts your quality rating.
Variables
Use {{1}}, {{2}} in order, starting at 1 with no gaps.
Hi {{1}}, your appointment at {{2}} is confirmed for {{3}} at {{4}}.
Reply here if you need to reschedule.
You must supply a sample value for each variable at submission. Meta reviews the template as it would actually read.
Rules that cause rejections:
- Variables must be numbered sequentially from 1
- A template cannot start or end with a variable
- No two variables adjacent to each other
- Sample values must be realistic, not
xxx
Media headers
A template can carry an image, video or document above the body.
The format is fixed at approval, but the actual file can differ on every send. This is what makes per-customer documents possible — one approved invoice_ready template with a DOCUMENT header, and each customer receives their own PDF. See Developer API.
| Format | Limit |
|---|---|
| Image | JPEG or PNG, up to 5 MB |
| Video | MP4, up to 16 MB |
| Document | PDF, up to 100 MB |
Buttons
Up to three:
- Quick reply — customer taps, you receive their tap as a message. Good for Yes/No and Accept/Decline flows
- URL — opens a link
- Phone number — dials
Limits: at most 2 call-to-action buttons, at most 1 phone button, at most 2 URL buttons.
Quick-reply taps carry reply context, which is what lets a workflow match a tap to the exact record it belongs to — the mechanism behind our appointment approval modules.
Approval
Status moves PENDING → APPROVED or REJECTED.
Most plain-text templates clear in minutes to a few hours. Meta's stated ceiling is 24 hours.
Click Sync templates to pull the latest status from Meta.
Common rejection reasons
| Reason | Fix |
|---|---|
| Looks like test content | Write the real message you intend to send |
| Promotional content marked UTILITY | Re-submit as MARKETING |
| Variable at start or end | Add wording around it |
| Unrealistic sample values | Use values a real message would contain |
| Spelling and grammar errors | Meta rejects sloppy copy |
A rejected template can be edited and resubmitted. Rejections do not harm your account, but repeated careless ones do attract scrutiny.
Using templates
- In the inbox — to reopen a conversation outside the 24-hour window
- In a broadcast — to many recipients at once, see Broadcasts
- Through the API — from your own systems, see API reference
Only APPROVED templates can be sent.
Need it to work differently?
The platform is the starting point, not the ceiling. Tell us what your process needs and we will build it — at a price we will negotiate.