> ## 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.

# Dashboard campaigns

> Template, channels, audience, scheduling, Run, and stats: same queue and credits as the API.

<Tip>
  **Campaign** = **what** (template) + **where** (channels) + **who** (segment or IDs). **Run** queues sends, not a separate engine from the send API.
</Tip>

## What is a campaign?

**Batch send** to an audience using a multi-channel **template**. Dashboard and API share the same queue, credits, and status.

Analogy: **template** is the letter. **Segment** is the address list. **Campaign** is stamp and drop in the mailbox.

## Campaign × segment × direct send

|                       | **Campaign**                          | **Segment**           | **Direct API send**                        |
| --------------------- | ------------------------------------- | --------------------- | ------------------------------------------ |
| Purpose               | **Batch** immediate or scheduled send | Reusable **audience** | One-off or few recipients                  |
| Needs                 | Template + channels + audience        | JSON rules only       | Channel route or `POST /v1/templates/send` |
| Continuous automation | No (use **Automations**)              | No                    | Can be a script                            |

## When to use?

Great for **newsletters**, **promotions to filtered audiences**, and **testing with few IDs** before the full base. For a **single alert** via script, use direct channel or template send.

## Campaign channels

`channels` accepts: **`whatsapp`**, **`sms`**, **`email`**, **`telegram`**.

Each listed channel must be **enabled on the template**.

| Channel  | Contact needs    | Extra config                   |
| -------- | ---------------- | ------------------------------ |
| WhatsApp | **Phone**        | `instanceId` or Sending Pool   |
| SMS      | **Phone**        | ,                              |
| Email    | **Email**        | `fromEmail` or verified domain |
| Telegram | Peer on instance | `telegramInstanceId`           |

Missing phone, email, or peer → contact **skipped for that channel** (no per-person error).

<Info>
  **Marketing:** contact needs `receiveMarketing` **and** **topic** subscription when template is linked. Others do not enter the queue.
</Info>

## How it works in practice

1. **Template** with active channels and content
2. **New campaign**, name, template, channels, audience (segment or IDs)
3. Routing per channel table above
4. Optional: **schedule** (`scheduledFor`) → **SCHEDULED**
5. **Preview** segment if used
6. **Run** → **RUNNING** → **COMPLETED** or **FAILED**

### Status

| Status      | Meaning                          |
| ----------- | -------------------------------- |
| `DRAFT`     | Draft                            |
| `SCHEDULED` | Scheduled                        |
| `RUNNING`   | Queuing / running                |
| `COMPLETED` | Last run succeeded               |
| `FAILED`    | Last run failed                  |
| `CANCELLED` | Cancelled (DRAFT/SCHEDULED only) |

## In the API

| Action               | Typical scope      |
| -------------------- | ------------------ |
| Create / schedule    | `campaigns:create` |
| Dispatch now         | `campaigns:run`    |
| Cancel               | `campaigns:update` |
| Stats and recipients | `campaigns:read`   |

**Run** returns `sent` and `runId`. Short links get `utm_campaign` and `utm_content` automatically.

## Checklist before Run

1. Campaign channels **enabled on template**?
2. Segment **Preview** makes sense?
3. Telegram peers on correct instance?
4. Tested with **few IDs**?
5. **Credits**, instances, and email sender OK?

## Next steps

* [Quick Start](/en/contacts-api/como-funciona/quick-start)
* [Segments](/en/contacts-api/como-funciona/segmentos-na-audiencia)
* [Templates](/en/template-api/como-funciona/quick-start)
