## Overview

**HSM templates** (Highly Structured Messages) are WhatsApp message models **approved by Meta**. They
are required to **start** a conversation outside the 24-hour window — for example, in a campaign to a
contact list.

Many templates have **variables** (placeholders like `{{1}}`, `{{2}}` or named ones like `{{name}}`)
that are filled with each contact's data. In ConversaLabs, you fill these variables with the
**variable picker** (`{{var}}`), and the value is resolved for each recipient at send time.

## Prerequisites

- A connected **WhatsApp inbox**.
- **Approved HSM templates** on the inbox (approval is handled with Meta).
- Contacts with the **data** you intend to use in the variables (for example, the name).

## Step by step

1. In a **WhatsApp campaign** (or when sending a message that requires a template), select the
   **inbox** and choose the **template**.
2. Select the template **language** (and check the **category**, set during approval).
3. For each template **variable**, provide the value:
   - type fixed text; or
   - use the **variable picker** (`{{var}}`) to insert a dynamic field (such as the contact's name),
     which will be substituted per recipient.
4. Review the template **preview** with the filled values.
5. Complete the send (or schedule the campaign). The platform resolves the variables **per contact**
   at send time.

## Settings & options

- **Template**: the approved model that will be sent.
- **Language**: the language version of the template.
- **Category**: the template's purpose, set at approval (for example, marketing or utility).
- **Variables**: the `{{...}}` placeholders in the template, filled with fixed text or the variable
  picker.
- **Variable picker ({{var}})**: inserts dynamic fields (contact, account, etc.) that are resolved
  individually for each recipient.
- **Preview**: shows how the message will look with the values applied.

## Use cases

- Personalize the greeting with the **contact's name** in a bulk send.
- Send a specific **code** or **link** per contact inside a template.
- Reuse the same template across several campaigns, changing only the variable values.

## Tips, limits & best practices

- Fill **all** the template variables — empty fields can **block** the send to that contact.
- Use dynamic variables with **reliable data**; if a contact lacks the data, prefer a fixed fallback
  value so the message isn't left incomplete.
- Remember the **template content is fixed** (approved by Meta) — you only change the variable values,
  not the model's text.
- Variables are resolved **on the server**, per recipient — you don't need to build a different
  message for each contact.

## Troubleshooting

- **The template doesn't appear**: confirm it is **approved** and on the correct **inbox**.
- **The send fails for some contacts**: check whether any **variable** was left without a value for
  those contacts.
- **The name (or other data) doesn't show**: confirm the field exists on the contact and that the
  right variable was selected in the picker.

## See also

- [WhatsApp campaign for contact lists](/hc/ajuda/articles/campaigns-whatsapp-campaign-en)
- [Campaigns overview](/hc/ajuda/articles/campaigns-overview-en)
- [Website campaigns](/hc/ajuda/articles/campaigns-campanhas-site-en)