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

# The send checklist

> Every check a campaign must pass before it can send, with the exact wording you'll see and how to clear each one.

export const Loop = ({id, src, alt, caption}) => {
  if (!src) {
    return <Placeholder id={id} kind="loop" label="Animation coming soon" description={alt} icon={<PlayIcon />} />;
  }
  return <figure className="brd-media" data-media-id={id}>
      <video className="brd-media-frame" src={src} autoPlay muted loop playsInline aria-label={alt} />
      {caption && <figcaption className="brd-media-caption">{caption}</figcaption>}
    </figure>;
};

export const Screenshot = ({id, src, srcDark, alt, caption}) => {
  if (!src) {
    return <Placeholder id={id} kind="screenshot" label="Screenshot coming soon" description={alt} icon={<ImageIcon />} />;
  }
  return <figure className="brd-media" data-media-id={id}>
      <img className="brd-media-frame block dark:hidden" src={src} alt={alt} />
      <img className="brd-media-frame hidden dark:block" src={srcDark || src} alt={alt} />
      {caption && <figcaption className="brd-media-caption">{caption}</figcaption>}
    </figure>;
};

A campaign can't send until it's ready on every channel. The send checklist names the missing piece
before you press **Send**, rather than refusing afterwards, and every item has a button that takes
you to the fix.

<Screenshot id="ss-campaigns-send-checklist-hero" alt="The Before you send checklist with three items done, two outstanding and a red credits item" />

You'll see the checklist in two places: in the composer while you build the campaign, and on the
campaign's page once it's scheduled.

## In the composer

The **Before you send** panel on the right of the composer shows **Ready** when everything is in
place, or how many items are left. **Send** and **Schedule** stay disabled until it's clear.

<Loop id="lp-campaigns-send-checklist-clear" alt="Selecting Write message jumps to the SMS block, and the item turns green once a message is typed" />

### Campaign setup

| Item                                          | Button              | How to clear it                                                                                                                                   |
| --------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| Select at least one channel                   | **Pick channels**   | Select a channel under **Channels**.                                                                                                              |
| Name the campaign                             | **Name it**         | Enter a **Campaign name**. If you've written a brief, the name is taken from its goal.                                                            |
| Choose who receives it                        | **Choose audience** | Add at least one list, segment or contact. See [Choose the audience](/campaigns/create-a-campaign#choose-the-audience).                           |
| Reachable on, followed by the channels        | **Edit audience**   | Done when at least one channel can reach someone. If it reads **No one in this audience can be reached on**, change the audience or the channels. |
| Subscribe to send on, followed by the channel | **Subscribe**       | The channel needs a subscription. Subscribe, or remove the channel.                                                                               |

### Content for each channel

These items appear only for the channels you've selected.

| Channel | Item                         | Button            |
| ------- | ---------------------------- | ----------------- |
| Email   | Pick a sender identity       | **Pick sender**   |
| Email   | Write the email subject      | **Write subject** |
| Email   | Design the email body        | **Open builder**  |
| SMS     | Pick an SMS sender ID        | **Pick sender**   |
| SMS     | Write the SMS message        | **Write message** |
| Push    | Choose which apps receive it | **Choose apps**   |
| Push    | Write the push title         | **Write title**   |
| Push    | Write the push body          | **Write body**    |

Organizations in WhatsApp early access also see **Choose an approved WhatsApp template** and
**Set the WhatsApp business number**.

### Credits

Once the audience is chosen and the send costs credits, a credits item appears:

* **Cost within balance**, with the estimate and your available credits, when the wallet covers it.
* **Top up**, followed by the shortfall and **credits to cover this send**, when it doesn't. Select
  **Top up** to buy credits without leaving the composer.

See [Credits: estimates and holds](#credits-estimates-and-holds).

### Checks from your account

Once the draft has saved, Brudcast adds the checks only it can answer: your domains, sender
approvals and business address. They show the message below, with a button to the fix.

| Message                                                                                         | Button               | How to clear it                                                                                                                                                          |
| ----------------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| No sender email is configured for the email channel                                             | **Pick a sender**    | Pick a sender identity in the Email block.                                                                                                                               |
| Sending domain mail.example.com is not registered for this organization                         | **Verify a domain**  | Add the domain under **Channels > Email**, or send from an address on a domain you've added.                                                                             |
| Sending domain mail.example.com is not verified (status: unverified)                            | **Verify a domain**  | Finish DNS setup. See [Verify your domain](/channels/email/verify-your-domain).                                                                                          |
| Sending domain … has been retired. Add and verify your own domain to keep sending.              | **Verify a domain**  | Your Brudcast trial address has retired. Send from your own verified domain.                                                                                             |
| Mail from … must be sent as, followed by the fixed sender                                       | **Fix the sender**   | A campaign on the Brudcast trial address must use its fixed name and address. Pick it again, or use your own domain.                                                     |
| Your organization's postal address is incomplete (missing …)                                    | **Add your address** | Fill in the street address, city and country under **Business address** in [Organization settings](/organization/organization-settings). You're brought back afterwards. |
| One or more images are embedded in the email instead of uploaded                                | **Fix the images**   | Re-add each image through the image picker so it's hosted. See [Images and the media library](/templates/email-builder#images-and-the-media-library).                    |
| No SMS sender id is configured for the SMS channel                                              | **Manage senders**   | Pick a sender ID in the SMS block.                                                                                                                                       |
| SMS sender id "ACME" is not an approved sender identity for this organization                   | **Manage senders**   | Use an approved sender ID, or wait for this one's review. See [Sender IDs](/channels/sms/sender-ids).                                                                    |
| SMS sender id "ACME" is not yet approved to send                                                | **View coverage**    | The sender ID hasn't been cleared for any destination yet. Check its coverage on the **Sender IDs** tab.                                                                 |
| Push content (title and body) is not configured for the Push channel                            | **Write the push**   | Fill in the Push block's **Title** and **Body**.                                                                                                                         |
| A message about the selected push apps                                                          | **Manage apps**      | The campaign's push apps aren't active. Check them under **Channels > Push**.                                                                                            |
| No contact in this audience has an active device registered with the targeted push applications | **Edit audience**    | Change the audience or the push apps.                                                                                                                                    |

## On the campaign page

A scheduled campaign's **Overview** tab shows a **Before you send** list. Each row is marked as
passing, as a warning, or as blocking, with a button to the fix.

| Row                                                                       | What it checks                                                                                                 | Button                                             |
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| **Audience**                                                              | At least one list or segment is attached, and someone can be reached on a channel                              | **Add audience**, or **View** when it passes       |
| **Content**, or a channel's content such as **Email content**             | Each channel has its content: the subject and body for email, the message for SMS, the title and body for push | **Fix in composer**, or **Preview** when it passes |
| **Sender**, or a channel's sender such as **SMS sender** or **Push apps** | Every channel has a sender set, and a campaign on the Brudcast trial address uses its fixed sender             | **Set sender** or **Choose apps**                  |
| **Credits**                                                               | The wallet covers the estimate                                                                                 | **Top up**                                         |

When something blocks the send, hovering over the disabled **Send** button tells you why. For
example, **Add at least one list or segment before sending.** or
**Top up your credits to cover this send.**

## Checks when the campaign sends

When you press **Send**, or when a scheduled campaign's time arrives, Brudcast checks again:

* Your organization is allowed to send. A [sending review](/deliverability/overview) or a
  suspension stops it.
* Every channel's product is still available, and email and push are still subscribed.
* Someone in the audience can be reached on at least one channel.
* Every item in the checklist above.
* The wallet covers the estimate. Credits are reserved at this point.

If a check fails when you press **Send**, the send is refused with the same message, and nothing is
reserved. If it fails for a scheduled campaign, the campaign stays **Scheduled** and Brudcast tries
again about every 30 seconds until it can send or you cancel it.

<Note>
  Unknown merge tags don't block a send. They show a warning in the **Content** section, because a
  tag that doesn't match a field sends as empty text.
</Note>

## Test and preview

Check a campaign before your audience does.

* **Preview the email.** Once the body is designed in the visual builder, the Email block shows a
  summary with a **Preview** button. It opens the message the way a mail app shows it, with the
  subject, the sender and the compliance footer. Inside the builder, **Preview** at the top right
  and the **Desktop preview** and **Mobile preview** switches do the same job.
* **Review every channel.** Once a campaign is scheduled or sent, its **Content** tab shows each
  channel in one pass down the page, marked **Ready** or **Draft**: the email's subject, **From**,
  **Reply-to** and rendered body; the SMS message, **Sender ID** and **Length**; and the push
  notification with its **Apps**, **Expires after**, **Priority**, **Click URL** and **Data**.
  **Tracking & tagging** underneath shows what the send was set up to record. Drafts open in the
  composer instead, so there's no **Content** tab until the campaign is scheduled.
* **Send a test push.** On a scheduled campaign, open the **More actions** menu (the ⋯ button) and
  select **Send a test**. Choose an active **Push app**, paste the **Device token** for your device,
  and select **Send test**. The test sends the campaign's saved notification with its image, click
  URL, data, expiry and priority. Merge tags are left as written, because there's no contact to fill
  them from, and test sends don't count toward your campaign statistics.

<Warning>
  There's no email test send. An email test is only written to your logs and never delivered, so
  it's no proof that a message arrives. To check email end to end, preview it, then send the
  campaign to an audience that contains only your own contact.
</Warning>

## Credits: estimates and holds

Before a campaign sends, Brudcast estimates what it will cost in credits. When it sends, it holds
that amount for every channel at once. When each channel finishes, it charges what was actually sent
and returns the rest.

<Snippet file="credit-costs.mdx" />

You see the estimate in the composer's **Live summary**, at the bottom of the audience picker, in
the checklist's credits item, in the send confirmation, and as an **Estimated cost** tile on the
campaign page, which reads **Free** when the send doesn't use credits.

The estimate starts from reach: how many people each channel can actually get to. Email and push
cost credits only for messages beyond what's left of your plan's allowance for the period, so a send
that fits inside the allowance costs nothing. SMS costs the destination's rate per segment, for
every segment of every message, and the segment count includes the "Reply STOP to opt out" line.

Credits are reserved when the campaign starts sending, not when you schedule it. Every channel is
reserved together: if the wallet can't cover all of them, nothing is held, the send is refused, and
the campaign stays in draft or scheduled. The SMS hold carries a safety margin, because merge tags
make message lengths vary, and the extra comes back when the channel finishes.

When a channel finishes, its hold settles to what it actually sent, and whatever's left goes back to
your wallet in the same mix of purchased and bonus credits it came from. The campaign page then
shows **Credits used** instead of **Credits on hold**. If a channel costs more than its hold, the
difference is taken from your balance, which can leave it below zero because the messages have
already gone out. The next campaign can't reserve credits until you top up.

Every reserve, settle and release appears in your wallet's transaction history, against the
campaign. See [Credits and wallet](/billing/credits-and-wallet).

## Related

<Columns cols={2}>
  <Card title="Create a campaign" icon="square-pen" href="/campaigns/create-a-campaign">
    Build a campaign end to end.
  </Card>

  <Card title="Credits and wallet" icon="coins" href="/billing/credits-and-wallet">
    Balances, bonus credits and the ledger.
  </Card>

  <Card title="Channels overview" icon="badge-check" href="/channels/overview">
    Senders for every channel, and their approval.
  </Card>

  <Card title="Email builder" icon="scale" href="/templates/email-builder#the-compliance-footer">
    Why a business address is required.
  </Card>
</Columns>
