Skip to main content

Manage WhatsApp templates

Message Templates (/whatsapp-business/templates) are required for outbound WhatsApp marketing and many automated sends. Meta must approve each template before you use it in broadcasts, campaigns, or Smart Flows.

Video

Video coming soon for this topic

Who can do this

Admin or marketing users with WhatsApp Business access. Template submission affects your WABA quality score—coordinate with compliance.

Before you begin

  • WABA connected at /whatsapp-business/accounts
  • Phone numbers synced at /whatsapp-business/phone-numbers
  • Template copy reviewed for Meta policies (no prohibited content, clear opt-out where required)
  • Variable placeholders planned (Meta format: numbered placeholders like variable 1, variable 2)

What you'll accomplish

  • Draft template saved in SWS Agent
  • Template submitted to Meta (Submitted / PendingApproved)
  • Approved template selectable in broadcast and automation pickers

Open Message Templates

  1. Sidebar → WhatsAppTemplates (/whatsapp-business/templates).
  2. Page title: Message Templates
  3. Subtitle: Create, preview, and submit WhatsApp template messages for approval.

Empty state:

  • No templatesBuild your first template with variables and quick-reply buttons.
  • Create template (may prefill name welcome_message)

Create a template

  1. Select New template (header) or Create template (empty state).
  2. In Template builder inspector, complete fields:
FieldExample
Template nameorder_update (lowercase, underscores)
Languageen (default)
CategoryMarketing, Utility, or Authentication
BodyExample: Hello + variable 1 + , your order + variable 2 + is ready. (use Meta {{1}} syntax in the product UI)
Variables (comma-separated samples)Alex, #12345
Buttons (JSON)[{"type":"QUICK_REPLY","text":"Yes"}]
  1. Review Preview section (fallback: Template body preview…).
  2. Select Save draft.

Toasts:

  • Name and body are required
  • Template draft saved

Submit for Meta approval

  1. Ensure draft is saved first (Save a draft first if you skip this).
  2. Select Submit for approval.
  3. Toast: Submitted to Meta for review.

Status badges on template list (examples):

StatusMeaning
DraftLocal only
Submitted / PendingAwaiting Meta
ApprovedReady to send
RejectedEdit and resubmit

Meta review can take minutes to 48 hours. Check list periodically; rejected templates show Rejected with reason in Meta Business Manager.


Template categories (when to use each)

CategoryUse for
UtilityTransactional updates (order status, appointment confirm)
MarketingPromotions, re-engagement (stricter opt-in rules)
AuthenticationOTP and verification codes

Choosing the wrong category causes rejection—match Meta definitions.


Variables and buttons

Body variables: Use Meta numbered placeholders in the Body field (variable 1, variable 2, etc.). The Variables field provides sample values for preview only.

Buttons JSON: Quick replies and call-to-action buttons per Meta schema. Invalid JSON fails validation—start from the placeholder:

[{"type":"QUICK_REPLY","text":"Yes"}]

Using approved templates

After Approved:

  1. Broadcasts — Step 2 Template dropdown
  2. Campaigns — Variant A/B template selects
  3. Conversation BuilderTemplate node Template ID
  4. Smart Flows — send a WhatsApp message action

Verify your work

  • Template appears in list with correct name and category
  • Preview renders variables with samples
  • After submit: status moves from Draft to Submitted / Pending
  • After approval: Approved; test send from broadcast wizard succeeds

Tips

tip

Keep a library of Utility templates for operational messages—they often approve faster than Marketing.

tip

Name templates by purpose (appointment_reminder_24h) so pickers stay searchable at scale.

important

Marketing templates require recipient opt-in under Meta and local law—document consent in WhatsApp Contacts.


Troubleshooting

ProblemFix
Submit disabledSave draft first
Rejected by MetaRead Meta reason; avoid URLs in body if restricted; fix category
Template missing in broadcastMust be Approved; refresh page
Variables wrong in sendOrder must match numbered placeholders in template body
Buttons invalidValidate JSON; use supported button types only

See also