# WhatsApp templates

> Create and manage the WhatsApp message templates your campaigns send. Covers categories, languages, variables, headers and footers, and approval status.

WhatsApp requires that any message you send to *open* a conversation use a pre-approved **message template**. Templates are the building block of [Outbound campaigns](/docs/outbound/campaigns): a campaign picks a template, fills in its variables per recipient, and sends it.

> **WHERE TO FIND IT:** Open an agent → **Outbound** → the **Templates** manager. Here you create, edit, and delete the templates available to campaigns.

## Anatomy of a template

Each template has a few defining fields:

| Field | What it is |
| --- | --- |
| Name | A lowercase identifier (letters, numbers, underscores), e.g. `order_shipped`. |
| Category | How WhatsApp classifies the message: marketing, utility, or authentication. |
| Language | The template language code, e.g. `en_US`. |
| Body | The message text, with `{{1}}` / `{{name}}` placeholders for variables. |
| Header | An optional header (text or media) shown above the body. |
| Footer | An optional short line of text below the body. |
| Status | approved, pending, or rejected — only approved templates can be sent. |

## Template categories

WhatsApp routes and prices messages by category, and the category affects what content is allowed:

| Category | Use it for | Examples |
| --- | --- | --- |
| Marketing | Promotions and re-engagement. | Sales, product launches, win-back offers. |
| Utility | Transactional updates tied to an action the customer took. | Order confirmations, shipping updates, appointment reminders. |
| Authentication | One-time passcodes and verification. | Login OTPs, password resets. |

> **PICK THE RIGHT CATEGORY:** Choosing the accurate category improves approval odds and deliverability. Don't label a promotion as utility — WhatsApp may reject or reclassify it.

## Create a template

1. **Open the Templates manager** — In the Outbound tab, switch to Templates and click New template.
2. **Set name, category, and language** — Use a clear lowercase name. Choose the category that matches the message and the language code your customers read.
3. **Write the body with variables** — Add the message text and insert {{1}}, {{2}}, … (or named placeholders) wherever content should be personalized per recipient.
4. **Add a header or footer (optional)** — Headers can carry a title or media; footers are a short trailing line such as an opt-out note.
5. **Save** — Bookbag counts the variables and stores the template so campaigns can use it.

```text
Hi {{1}}, good news — your order {{2}} is on its way!
Expected delivery: {{3}}. Reply here with any questions.
```

## Variables

Placeholders in the body are detected automatically and counted. When a campaign uses the template, each variable is mapped to a contact field, a custom attribute, or a static value and rendered per recipient. See [Outbound campaigns → Personalization](/docs/outbound/campaigns).

> **KEEP VARIABLE NUMBERING TIDY:** Use sequential placeholders (`{{1}}`, `{{2}}`, `{{3}}`) and make sure every one maps to a real value at send time. Unmapped placeholders render literally, which looks broken to the customer.

## Approval status

In production, WhatsApp reviews templates before they can be sent, so a template moves through **pending → approved** (or **rejected**). Only **approved** templates can be selected in a campaign — attempting to send an unapproved template is blocked.

> **INFO:** Templates you create in Bookbag are available to campaigns immediately for design and simulation; real sends require the template to be approved on your WhatsApp account.

## Editing and deleting

- **Edit** a template to change its body, category, language, header, or footer. Changing the body re-counts variables.
- **Delete** a template you no longer use. Existing campaigns keep a snapshot of the template text they sent, so deleting a template doesn't alter past campaigns.

## What's next

- [Outbound campaigns](/docs/outbound/campaigns) — Use a template to message an audience and track replies.
- [Connect WhatsApp](/docs/deploy/whatsapp) — Enable real delivery through the Cloud API.
- [Custom attributes](/docs/contacts/custom-attributes) — Store the data you personalize templates with.
