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

# Send template

> Sending pre-approved WhatsApp templates

<Callout type="warning">
  **Not callable with an API key.** A `POST /channels/whatsapp/send-template`
  endpoint does exist, but it's internal — it requires a service token rather
  than a tenant API key, so it has no request runner here.

  The supported way to send pre-approved templates is through a
  [WhatsApp Campaign](/docs/api-reference/campaigns/overview) — a campaign maps each
  call outcome to a template and sends it automatically.
</Callout>

### Creating a WhatsApp campaign with templates

```bash theme={null}
POST /whatsapp/campaigns
```

```json theme={null}
{
  "name": "Post-call follow-up",
  "agentId": "AGENT_ID",
  "phoneNumberId": "WHATSAPP_PHONE_NUMBER_ID",
  "templates": [
    {
      "templateName": "call_answered_followup",
      "languageCode": "en_US",
      "process": "OUTGOING",
      "callStatus": "ANSWERED"
    }
  ]
}
```

* `phoneNumberId` — from `GET /whatsapp/fetch-numbers` (campaign-engine)
* `templates` — each entry maps a `callStatus` (`ANSWERED`/`UNANSWERED`) to an
  approved Meta template name; list approved templates via
  `GET /whatsapp/meta-templates`

See [Create campaign](/docs/api-reference/campaigns/create-campaign) for the general
campaign lifecycle (start, monitor, etc.).
