Message templates
A template (also called an HSM — Highly Structured Message) is a pre-approved message format used to send the first message to a customer or to send any message outside the 24-hour customer-service window.
Why templates exist
WhatsApp does not allow free-form business-initiated messages — they would be a spam vector. Instead:
- A customer messages you → 24-hour window opens → you can reply with anything.
- After 24 hours of customer silence → the window closes → outbound must be a template.
- For never-before-seen customers (campaigns, broadcasts) → must be a template.
Templates are content-locked at approval time: the wording, layout, and variable structure are fixed. You can only fill in the variable values per send.
Creating a template
- Go to Settings → Channels → WhatsApp Templates.
- Click + New template in the top-right. A modal opens on top of the list.
- Give the template a Name — lowercase letters, digits, and underscores only (e.g.
appointment_reminder_v2). The field strips invalid characters as you type. - Pick a Category — Marketing, Utility, or Authentication.
- Pick a Language — English, Arabic, or English (US).
- Author the Body, using
{{1}},{{2}},{{3}}, … wherever you want a variable. Every placeholder you type is detected live and added as a row in the Variables section below the body. - For each detected variable, choose a strategy:
- Fallback — send a default value when the recipient doesn’t have that attribute on file. The fallback value is required.
- Skip contact — drop the recipient from the send instead of substituting anything.
- Tick the Healthcare attestation checkbox confirming the template contains no diagnosis, specific medication name, test result value, or clinical advice.
- Click either button in the footer:
- Save draft — stores the template in CraftBot without sending it to Meta. The attestation is not required for a draft.
- Submit to Meta — saves and immediately submits for Meta review. The attestation is required, and every variable must either have a fallback value or be set to Skip contact.
After either action the modal closes and the new template appears in the list — you stay on the templates page.

The Variables section
The Variables section appears automatically as soon as you type a {{n}} placeholder in the body, and reconciles every time you add or remove one. Each row shows the placeholder token (e.g. {{1}}), a strategy dropdown, and — when the strategy is Fallback — a free-text fallback value.

Contact-attribute mapping (which contact field each placeholder pulls from at send time) is configured later, in Campaigns and recipes.
The footer actions

Cancel closes the modal and discards everything you typed. Save draft is enabled as soon as Name and Body are non-empty. Submit to Meta is enabled only after the healthcare attestation is ticked and every fallback row has a value. Meta usually reviews within minutes; complex templates can take up to 24 hours.
Approval categories
- Approved — usable immediately.
- Rejected — Meta flagged the content (often for promotional language in a
UTILITYtemplate, or wording that violates commerce policy). Edit and resubmit. - Paused — Meta temporarily stopped delivery (high block rate from recipients). Investigate why and improve the audience.
Using a template
In a recipe, use a Message-Template node (forthcoming Phase 5) and pick the approved template + provide variable values:
template: appointment_reminder
language: en
variables:
- "Mr. {{customer_name}}"
- "{{appointment_date}}"In Campaigns (Phase 5), the campaign wizard walks you through template selection and per-recipient variable mapping.
Limits
- Variables are positional —
{{1}},{{2}}, … — not named. - Maximum 1024 characters in the body.
- Buttons capped at 3, label ≤ 25 characters each.
- Header media must be hosted at a publicly reachable HTTPS URL or pre-uploaded via Meta’s media API.
Tracking template performance
Each template has a delivery dashboard (Settings → Channels → WhatsApp Templates → click a template):
- Sent / delivered / read / replied per day.
- Block rate (% of recipients who blocked the sender after this template).
- Quality rating (Meta-assigned: green / yellow / red).
Watch the quality rating — sustained “yellow” or “red” is a sign you should rewrite the template or reduce send volume.