WhatsApp message templates
Templates are pre-approved message formats required when reaching out to customers who have not contacted you first. Think of them as pre-written scripts that Meta reviews and approves in advance. Once approved, you can send them to any customer at any time. See Send a template message for how to deliver one.
Your SignalWire Dashboard lists a connection’s templates on its WhatsApp Templates tab, under Integrations. Creating and editing templates is done through the API or directly in the Meta Business dashboard. A template you create in Meta appears in your Space only after you open the connection and select Sync with Meta.
Template components
A template is made up of components. A Body component is required; the header, footer, and buttons are optional.
Parameters
Templates support variable placeholders so you can personalize messages with customer names, order
numbers, and so on. There are two styles, set by parameter_format:
- Positional (
positional): referenced as{{1}},{{2}},{{3}}in order. - Named (
named): referenced by descriptive labels like{{first_name}}or{{order_status}}.
Categories
The category field must be one of:
marketing: promotional messages, offers, announcementsutility: transactional messages, order updates, account alertsauthentication: one-time passwords and verification codes
Manage templates
Templates are managed through the API. For the full request and response schemas, see the reference:
The example below creates an order-update template with positional parameters. The components
array is the heart of the request; each component’s fields depend on its type.
Approval and updates
Templates must be reviewed and approved by Meta before use. Approval typically takes a few minutes
to a few hours. A template’s current state is reported in its template_status field. It must be
approved before it can be used to send messages.
A template can only be updated while it is not yet approved. Once approved, delete and recreate it to make changes.
Anywhere a template ID is accepted, you can use either the SignalWire template ID (a UUID) or the Meta template ID (a numeric string).