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

# Create a broadcast

> Build and send a broadcast with the four-step wizard: audience, message, schedule, review.

A broadcast sends one message to many contacts on a single channel. You build it in a
four-step wizard — **Audience**, **Message**, **Schedule**, **Review** — at
**Messaging → Broadcasts → New broadcast**.

Three things to know before you start, because they shape everything else:

* **The channel is the one you're currently on.** There is no channel picker in the wizard.
  The broadcast uses your active channel, shown read-only on the **Message** step, and it's
  fixed once the broadcast is created. Switch channel first if you're on the wrong one.
* **WhatsApp broadcasts must use an approved template.** There is no message box for
  WhatsApp — you pick from your approved templates and fill in their variables. Facebook,
  Instagram, SMS and Telegram broadcasts use a plain message instead, with no template.
* **Broadcasts aren't available on Live Chat or TikTok.** Only WhatsApp, Facebook,
  Instagram, SMS and Telegram can send them.

<Steps>
  <Step title="Choose your audience">
    Set **Type** to **Contact** to message a segment, or **Retarget** to re-message the
    recipients of an earlier broadcast.

    For **Contact**, pick exactly one option:

    * **All contacts**
    * **Active contacts**
    * Any segment you've saved under **Contacts → Segments**
    * On Facebook and Instagram only: **Opted in — notifications** and
      **Messaging window open (24h)**

    There are no tag or attribute filters here — one segment is the whole targeting model.
    To send to a tag, a pipeline stage or contacts inactive for N days, build a segment in
    [Contacts](/contacts/tags-and-segments) first, then come back and pick it.

    Tick **Reachable contacts only** to drop contacts who have opted out of the audience.
    See the note below on what this does and doesn't do.
  </Step>

  <Step title="Write or pick your message">
    Give the broadcast a **Campaign name** — it's for you, and contacts never see it. The
    **Channel** next to it is read-only.

    **On WhatsApp**, choose a **Message template**. Only approved templates appear; if the
    list is empty or missing the one you want, use **Create new template** and see
    [Message templates](/broadcasts/message-templates). If the template has variables, a
    **Body parameters** section appears with one input per variable
    (**Enter parameter 1**, **Enter parameter 2**, and so on). Each one accepts a
    personalisation token, so a parameter can be `{{first_name}}` or
    `{{custom.order_id}}` and resolves per contact when the broadcast sends.

    **On SMS and Telegram**, type the message directly. Both support tokens like
    `{{first_name}}` in the body. SMS has no messaging window — long messages split into
    multiple segments and cost more.

    **On Facebook and Instagram**, type the message directly. Meta only delivers to people
    who messaged you in the last 24 hours, or who hold a notification opt-in — everyone else
    is skipped. Leave **Reach** on **Standard message**; **Marketing Messages (paid)** is
    labelled **Coming soon** and selecting it disables **Continue**.
  </Step>

  <Step title="Schedule it">
    Choose **Send immediately after approval** or **Schedule for later** and set **Send at**.

    Times use your account timezone from **Settings**, not your browser's. An immediate
    broadcast goes out within about a minute. A time less than a minute away is treated as
    immediate.

    **Require team approval before sending** holds the broadcast until someone approves it.
    If you don't have approval rights the checkbox is replaced by a note telling you the
    broadcast will be submitted for approval before it sends — approval is applied
    server-side either way.
  </Step>

  <Step title="Review and send">
    **Review & send** summarises the audience, message, schedule and approval state. Select
    **Create broadcast** — or **Submit for approval** if you don't have approval rights. You
    land back on the broadcasts list, where the new broadcast appears with its status.

    A broadcast that needs approval sits at **Pending approval** and never sends until
    someone with rights uses **Approve & schedule** on it.
  </Step>
</Steps>

<Warning>
  The wizard's steps are all clickable, so nothing stops you from jumping ahead to
  **Review**. A broadcast saved with a **Campaign name** but no template and no message text
  saves, runs, and fails for every contact. Check the **Message** step before you save.

  A missing **Campaign name** blocks the save instead — but the wizard shows no error, so the
  button simply appears to do nothing. **Campaign name** also lives on the **Message** step.
</Warning>

## What "Reachable contacts only" actually does

Opted-out contacts never receive a message — every channel blocks them at the point of
sending, whether or not you tick the box.

What the box changes is the audience list. Leave it unticked (the default) and opted-out
contacts are still pulled into the broadcast: they count towards the recipient total and
then land in **Failed**. Tick it and they're excluded up front, so your numbers reflect
reality. The hint says it also skips contacts who "can't be messaged on this channel" —
it doesn't. Closed messaging windows are not filtered out here; those contacts fail at send
time instead.

<Note>
  **Audience breakdown**, shown in the right rail on the **Schedule** and **Review** steps,
  is an estimate, not a count. The
  deliverable and opted-out figures are a fixed 95/5 split of the audience size — they are
  not calculated from who has actually opted out. Don't plan against them.
</Note>

<Note>
  **Send test message** doesn't send anything yet. It reports success without contacting the
  channel. To sanity-check a message, send a real broadcast to a segment containing only
  your own contact record.
</Note>

## Retargeting an earlier broadcast

Set **Type** to **Retarget**, pick a **Retarget broadcast** and a **Retarget engagement
type**: **All Sent**, **All Delivered**, **All Read**, **All Replied**,
**All Sent But Not Replied** or **All Failed**.

Only broadcasts already sending or sent on the current channel can be a source, and a
broadcast can't retarget itself. The audience is resolved when the broadcast sends, so no
count is shown while you build it. Recipients are also narrowed to contacts reachable on
this broadcast's channel — retargeting a WhatsApp broadcast from an SMS broadcast only
reaches the overlap.

## After you save

* The broadcast is queued as **Scheduled**, whether immediate or for later. The sender picks
  it up on the next sweep, at most a minute after it's due.
* An empty audience isn't an error. The broadcast completes immediately with zero recipients.
* Every message sent is written into the contact's conversation in the [Inbox](/inbox/overview),
  so you can follow up on replies there.
* There is no pause, cancel or delete. Editing the broadcast is the only way to change it,
  and editing one that requires approval clears the existing approval — it has to be
  approved again.

<Accordion title="A WhatsApp broadcast failed for everyone">
  The most common cause is the template. It's re-checked at send time, so a template that
  Meta rejects or revokes between scheduling and sending will fail the whole broadcast.
  Confirm the template still shows as approved, then create a fresh broadcast with it.
  A broadcast saved with no template and no text fails the same way.
  See [WhatsApp rules and limits](/broadcasts/whatsapp-rules-and-limits).
</Accordion>

<Accordion title="Delivered and Opened are stuck at zero">
  Those counters only move for WhatsApp (delivered and read) and SMS (delivered). Facebook,
  Instagram and Telegram broadcasts never report them, so they stay at zero however well the
  broadcast performed. [Analytics](/broadcasts/analytics) covers what each channel reports.
</Accordion>

<Columns cols={2}>
  <Card title="Message templates" icon="file-lines" href="/broadcasts/message-templates">
    Create and submit the approved WhatsApp templates a broadcast needs.
  </Card>

  <Card title="Audiences" icon="users" href="/broadcasts/audiences">
    Segments, retargeting, and who ends up in a broadcast.
  </Card>

  <Card title="Scheduling" icon="clock" href="/broadcasts/scheduling">
    Timing, timezones and approval holds.
  </Card>

  <Card title="Analytics" icon="chart-line" href="/broadcasts/analytics">
    Read the results, and what each channel actually reports.
  </Card>
</Columns>
