> For the complete documentation index, see [llms.txt](https://docs.channel360.co.za/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.channel360.co.za/api-usage/concepts/templates-placeholders-and-components.md).

# Templates, placeholders and components

What a WhatsApp template is, what it is made of, and how placeholders work.

A template is a pre-written message that WhatsApp has approved, with numbered blanks you fill in each time you send it.

## What a template is

WhatsApp (Meta) only lets a business start a conversation with an approved template. That is why every [notification](/api-usage/send-a-template-notification.md) uses one. Once a customer writes to you, you can [reply](/api-usage/reply-to-a-customer.md) freely for 24 hours without a template.

## What a template is made of

| Part          | What it is                                                                                                                                                                                                                                         |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | The template's name. Lowercase letters, digits and underscores only. Each name and language pair must be unique.                                                                                                                                   |
| `description` | What the template is for.                                                                                                                                                                                                                          |
| `language`    | The language the template is written in. If it does not match the text, Meta rejects the template. See [Meta's supported languages](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/supported-languages/). |
| `category`    | `MARKETING`, `UTILITY` or `AUTHENTICATION`. Each has its own rules.                                                                                                                                                                                |
| `status`      | Whether WhatsApp has approved it (see below).                                                                                                                                                                                                      |
| `components`  | The parts of the message (see below).                                                                                                                                                                                                              |

## Status

A new template starts as `PENDING`. Meta then marks it `APPROVED` or `REJECTED`. Only `APPROVED` templates can be sent. [Meta's template guidelines](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines/) list the reasons for rejection.

## Category and speed

Channel360 queues messages by template category. `AUTHENTICATION` templates (such as one-time PINs) use the fastest lane. `MARKETING` templates use the standard lane. `UTILITY` handling depends on your organisation settings.

You do not choose a lane in the request. The approved template category decides it.

## Components and placeholders

A template has up to four components:

* **Header** — an optional top line: text, an image, a video or a document.
* **Body** — the main text. Required.
* **Footer** — an optional short line at the bottom.
* **Buttons** — optional buttons, such as a link or a quick reply.

A **placeholder** is a numbered blank such as `{{1}}`. Placeholders are numbered within each component. For example, the `order_shipped` template looks like this:

```
[Header]  an image
[Body]    Hi {{1}}, your order {{2}} has shipped and will arrive on {{3}}.
[Button]  Track order → https://shop.example.com/track/{{1}}
```

When you send it, you fill each blank in the request. [Filling template placeholders](/api-usage/send-a-template-notification/filling-template-placeholders.md) shows how.

## Related

{% content-ref url="/pages/WJxaVkA8aid4LJ3eAZ5c" %}
[Manage templates through the API](/api-usage/manage-templates-through-the-api.md)
{% endcontent-ref %}

{% content-ref url="/pages/RJMlaxNFSbVbTDbJ9pC3" %}
[Tags vs. the API](/api-usage/concepts/tags-vs-the-api.md)
{% endcontent-ref %}
