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

# Send a campaign

> Send one email or WhatsApp message to a group of people, once, now or at a time you pick. Boom builds the flow for you and closes the campaign when it is done.

A **Campaign** sends one message per channel to an audience, once: a launch
announcement, a seasonal promotion, a reminder to everyone who left a cart.
You pick who gets it, the message and when it goes out. Boom builds the flow,
sends it, lets the agent answer WhatsApp replies for 24 hours, and closes the
campaign when every conversation has ended.

<Note>
  Use a **Transactional** to send a message every time an event happens, and an
  **Initiative** for ongoing work that keeps enrolling people, with waits,
  reminders or branches. See [transactional messages](/transactional-messages)
  and [initiatives](/initiatives).
</Note>

## How it works

1. You choose the audience: a segment, or people you add by hand or from a CSV.
2. You choose the messages: an email template, a WhatsApp template, or both.
   The email goes out first, then the WhatsApp.
3. You choose when: now, or a date and time.
4. At that time each person gets the message once. People who reply on WhatsApp
   talk to the agent for 24 hours.
5. When the last conversation ends, the campaign completes and its report is
   generated.

A campaign never keeps enrolling people who join the segment later. That is
the difference from an initiative.

### When the segment is read

* **At send time** (the default): Boom reads the segment when the message goes
  out. Someone who leaves it before then, for example by finishing a purchase,
  does not get it.
* **Now**: Boom reads the segment when you schedule the campaign, and those
  people get it even if they leave the segment before it sends.

You can add more people until the campaign closes. Anyone added after the send
time gets the message right away. Each person gets the campaign once, even if
you add them again. Once the audience is in, you can add people but not swap it
for another segment.

## Before you start

* **A channel.** A verified email domain, a connected WhatsApp number, or both.
* **A template per channel.** A published email template, or a WhatsApp
  template approved by Meta. Every template variable needs a value (a field of
  the customer's profile, or fixed text).
* **An audience.** A segment, or the people you want to reach.

## Set it up in Boom

<Steps>
  <Step title="Create the campaign">
    Open **Campaigns** in the sidebar and click **New**. Give it a name.
  </Step>

  <Step title="Add the message">
    Click **Add a message**, pick the channel and its template. Fill every
    variable. Click **Preview** to see the message as a real person from your
    audience would get it.
  </Step>

  <Step title="Choose who and when">
    Pick the audience, and whether the segment is read at send time or now. Then
    pick **Send now** or a date and time.
  </Step>

  <Step title="Brief the agent (optional)">
    With a WhatsApp message, replies go to the agent. **Brief the agent** lets you
    give it an objective, context, files and guiding questions. Everything there
    is optional.
  </Step>

  <Step title="Schedule">
    Click **Schedule**. Nothing sends before the time you picked. To check every
    message first, turn on **Review before sending** under Options: each one
    then waits in [Drafts](/drafts) until someone approves it.
  </Step>
</Steps>

<Note>
  If your organization has [Smart Sending](/smart-sending) limits, people inside
  them are skipped for this campaign. To reach everyone in the audience anyway,
  turn on **Always send** under **Options › Smart Sending**.
</Note>

<Warning>
  Once people are enrolled and waiting, the send time cannot move. To change it,
  cancel the campaign and schedule a new one.
</Warning>

## Pause, cancel and close

* **Pause** stops anyone new from being enrolled. People already enrolled keep
  their message and conversations. **Resume** picks up where it left off, even
  if the send time passed while it was paused.
* **Cancel** stops the campaign for good, including anyone not yet enrolled.
* The campaign **closes** on its own once everyone is enrolled, the send time
  has passed, and every conversation has ended. Its report is generated then.

## Set it up over the API or MCP

Create the whole campaign in one call with `initiatives_create` and a
`campaign` object, check it, then schedule it:

```json theme={null}
{
  "name": "Night routine launch",
  "campaign": {
    "audience": { "kind": "segment", "segmentId": "SEGMENT_ID", "readAtSend": true },
    "sendAt": "2026-10-01T09:15:00-06:00",
    "email": { "templateId": "EMAIL_TEMPLATE_ID" }
  }
}
```

* `initiatives_campaign_get` returns the setup, how many people are in the
  audience and how many have no email or phone, and `missing`: anything that
  still blocks scheduling.
* `initiatives_campaign_configure` changes it. Only the fields you pass change.
* `initiatives_launch` schedules it.

Over REST these are `POST /api/v1/initiatives`,
`GET /api/v1/initiatives/{id}/campaign`, `PATCH /api/v1/initiatives/{id}/campaign`
and `POST /api/v1/initiatives/{id}/launch`. See the
[API reference](/api-reference/overview) for every field.

<Note>
  The campaign form in the app is rolling out by organization. If **New** still
  opens the older step-by-step setup, ask your Boom contact.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.