> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Write once and send across up to seven channels with variables that personalize each dispatch.

<Tip>
  A template is your **ready-made letter**: build **once**, use `{{name}}`, `{{order}}`, and dispatch across SMS, WhatsApp, email, and more in a single call.
</Tip>

## What are Templates on Notifique?

They're the workspace **multi-channel model**: one record with blocks per channel (`sms`, `whatsapp`, `email`, etc.). On send, Notifique **merges** variables, validates scopes and credits, and queues each requested channel.

You can:

* **Create and edit** templates in the dashboard or API (`templates:*`)
* **Dispatch** to up to **100** recipients per call (`POST /v1/templates/send`)
* **Personalize** with `{{key}}`, contact data, and `variableDefaults`
* **Translate** per locale (`localeTranslations`) when the contact has a language preference
* **Combine** free-form channels (SMS, email…) with **official WhatsApp** synced with Meta

Think of a folder with versions of the same message, one per channel, that you send all at once.

<Info>
  **Instagram** and **Widget (site chat)** exist on the platform but **do not** support templates. Use each channel's API for those cases.
</Info>

## Supported channels

* **WhatsApp**, E.164 phone (`whatsapp`)
* **SMS**, E.164 phone (`sms`)
* **Telegram**, `chat_id` or `@username` (`telegram`)
* **Email**, email address (`email`)
* **RCS**, E.164 phone (`rcs`)
* **Push**, device ID (`push`)
* **Voice**, E.164 phone with `+` (`voice`)

Each template enables **1 to 7** channels. On send, `channels` must be a **subset** of enabled channels.

## When to use them?

Great for **multi-channel confirmation**, **recurring campaigns**, and **personalized** messages with variables. For a **one-off** send on **one** channel, you can call that channel's API directly (SMS, email, etc.) without a template.

## How it works in practice

1. **Create the template**, enable only needed channels
2. **Write** each block with `{{key}}` and optional defaults
3. **Dispatch** with `template`, `channels`, `to`, and `variables`
4. API returns **202** with IDs per channel (`messageIds`, `smsIds`, `emailIds`, …)
5. **Delivery** per channel → that channel's webhooks (`message.*`, `sms.*`, …)
6. **Meta approval** for official WhatsApp → **`template.*`** webhooks (below)

<Note>
  Each send consumes **credits per recipient and per channel**. If balance is insufficient for the full request, **nothing** is sent (`INSUFFICIENT_CREDITS`).
</Note>

***

## Official WhatsApp and Meta

This links **internal** Notifique templates to Meta's **official** catalog (Cloud API).

### Two WhatsApp template types

|                | **Internal** (`ZENVIO`)                   | **Official** (`WHATSAPP_OFFICIAL`)              |
| -------------- | ----------------------------------------- | ----------------------------------------------- |
| Where it lives | Workspace only                            | Meta **WABA** **and** Notifique                 |
| Typical line   | **Unofficial** WhatsApp (QR)              | **Official** WhatsApp (Embedded Signup)         |
| Approval       | Immediate in Notifique                    | Meta: `PENDING` → `APPROVED` / `REJECTED`       |
| WA content     | Simple text and image                     | Header, footer, buttons, carousel (per Meta)    |
| Other channels | SMS, email, etc. in the **same** template | SMS, email, etc. **still** in the same template |

On the **official line**, outside the **24h** window after the customer replied, only **approved** Meta templates can start or resume a conversation. On the unofficial line, this does not apply.

### Sync with Meta servers

You don't need duplicate copies per channel. Typical flow:

1. **Create internal** in Notifique (SMS + email + WhatsApp block)
2. **Pull from Meta**, sync catalog already approved on the WABA
3. **Link** the WhatsApp block to an existing Meta model, **or**
4. **Publish** internal to Meta and **wait for approval**

Internal name (`order_alert`) may differ from **`metaName`** on Meta (`order_update`). On official send, Meta uses the **approved** model in its catalog.

Several **official** numbers on the same Business account **share** the same template catalog.

Full guide (sync, link, publish, status, errors): **[Official Meta templates](/en/template-api/como-funciona/templates-oficiais-meta)**.

### Approval status

Track in the dashboard or via webhook:

| Status     | Meaning                     |
| ---------- | --------------------------- |
| `PENDING`  | Meta reviewing              |
| `APPROVED` | Can send on official line   |
| `REJECTED` | Rejected, fix and republish |
| `PAUSED`   | Paused for quality          |

Events: **`template.submitted`**, **`template.status_changed`**, **`template.category_changed`**. Details: [Webhook events](/en/template-api/como-funciona/eventos-do-webhooks).

<Warning>
  Editing only in Notifique **without** mirroring to Meta **does not** change what the customer sees on official WhatsApp. Delivered text comes from Meta's **approved** definition.
</Warning>

***

## Dashboard features

* Template library with **variable detection**
* **Default values** and per-locale translations
* **Meta** badge and colored status on official templates
* **Sync templates with Meta** on the official instance
* Workspace defaults: WhatsApp instance, email domain, Push app, voice number

## API features

* **Management:** `templates:read`, `templates:create`, `templates:update`, `templates:delete`
* **Send:** scope for **each** channel in `channels` (`whatsapp:send`, `sms:send`, …)
* Details in the **API reference** on the Templates tab

## Next steps

* [Quick Start](/en/template-api/como-funciona/quick-start): create and dispatch
* [Official Meta templates](/en/template-api/como-funciona/templates-oficiais-meta): sync, link, and approval
* [API Key scopes](/en/template-api/como-funciona/escopos-da-api-key): management and send
* [Webhook events](/en/template-api/como-funciona/eventos-do-webhooks): Meta `template.*`
* [Variables and CRUD](/en/template-api/como-funciona/variaveis-disponiveis-e-crud): per-channel payloads
