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

# Smart Sending

> Limit how often one person hears from you, across every initiative in your organization.

Smart Sending keeps your initiatives from piling up on the same person. Without
it, two journeys can message someone minutes apart, and a busy week can reach one
person a dozen times. That annoys people, and on WhatsApp it leads to spam
reports that lower your number's quality rating and can get it restricted.

Smart Sending is off until you turn it on, in **Settings › Smart Sending**.

## How it works

There are two rules. Each has its own on/off switch, and you can use either,
both, or neither.

| Rule | What it limits | Checked when |
| - | - | - |
| **Message limit** | At most **N** messages to one person on one channel within a window, for example 1 per day on WhatsApp. | A journey is about to send a message. |
| **Cooldown** | After any initiative messages someone, no **other** initiative can start with them for **D** days. | Someone is added to an initiative. |

**What counts, and what is limited:** proactive messages sent by a journey step.
That is WhatsApp templates, SMS and email.

**What never counts and is never limited:**

* The agent's replies inside a conversation.
* Messages your team sends from the inbox.
* Instagram and Messenger messages, which only go out inside a conversation the
  person started.
* Anything in your test environment, and WhatsApp messages to your organization's
  test numbers.

A few things that are true for both rules:

* **Each channel is counted on its own.** An email never uses up someone's
  WhatsApp allowance.
* **The window is rolling, not a calendar day.** "1 every day" means 24 hours
  after the last message, not "once today".
* **First come, first served.** Every message counts toward the limit, whichever
  initiative sent it, and the first one to reach the person takes the slot.
  There is no priority between initiatives. Use [Exceptions](#exceptions) for the
  ones that must always go out.
* **A change applies at once, to everyone.** Raise, lower or turn off a rule and
  the next message is checked against the new setting.

## Set it up

<Steps>
  <Step title="Review your exceptions first">
    Open **Settings › Smart Sending** and look at **Exceptions**. Add every
    initiative whose messages people need, like document requests, payment links,
    renewals or order updates. Those always send.
  </Step>

  <Step title="Turn on the message limit">
    Flip **Message limit**. A dialog asks how many messages and how often (for
    example "At most 1 message per person every day") and on which channels.
    WhatsApp is ticked by default; tick SMS or Email only if you want them limited
    too. The dialog also lists any initiative that would lose messages, each with
    a one-click **Add to exceptions**. Nothing changes until you click **Turn on**.
  </Step>

  <Step title="Optionally, turn on the cooldown">
    Flip **Cooldown between initiatives** and pick how long: 7, 14, 30, 60 or 90
    days.
  </Step>

  <Step title="Check an initiative">
    Each initiative's page says, under its details, whether it **Always sends** or
    **Follows Smart Sending**, and which rule applies.
  </Step>
</Steps>

<Warning>
  Do step 1 before step 2. An initiative that sends one person several messages a
  day, like a document collection flow, would otherwise lose most of them. The
  settings page flags every initiative that sent one person more than one message
  in a day over the last two weeks.
</Warning>

## The message limit

Pick **1, 2 or 3 messages** per person, **every day, every 2 days, or every
week**, on the channels you tick. The card then shows the limit with a checkbox
per channel, so you can extend it to another channel or narrow it later.

To give each channel its own numbers, open **Customize per channel**. There you
can set up to 10 messages in a window of up to 7 days (168 hours) per channel.

A send held for approval as a [draft](/drafts) is checked when it is delivered,
after someone approves it, not when the draft is created.

## The cooldown

The cooldown is the longer rule: "don't contact this person from another campaign
for 30 days". It is checked when someone is added, so a person inside their
cooldown is never added in the first place, rather than added and then stopped
halfway.

It counts messages on any channel from **other** initiatives. An initiative's own
messages never block it. These are always let through:

* Someone who messaged you first, or commented on your post.
* A conversation being handed from one initiative to another.
* An initiative in [Exceptions](#exceptions).

The settings page offers 7 to 90 days. Through the [MCP tools](#set-it-up-with-claude)
it can be up to 365 days.

If you use [webhooks](/webhooks), a person turned away by the cooldown shows up
as `enrollment.rejected` with `reason: "cooldown"`. When you start a journey for
several people at once, the confirmation says how many were skipped because of the
cooldown.

## Exceptions

Every initiative follows the limit and the cooldown, unless it is an exception.
An exception **always sends**: its messages go out even over the limit, and it
ignores the cooldown.

* **Add them** in **Settings › Smart Sending › Exceptions** with **Add
  initiative**, which opens a searchable list showing each initiative's status.
  You can tick several and add them in one go.
* **Or on the initiative itself:** turn on **Always send** under **Smart Sending**
  in its **Agent** step. On a [campaign](/campaigns), it is under **Options ›
  Smart Sending**.
* [Transactional messages](/transactional-messages) start as exceptions, since a
  notification has to go out. You can change that with **Always send**, under
  **Options** on the Transactional's page.

**Exceptions still count toward the limit.** A payment reminder at 10:00 means a
promo at 11:00 is skipped. That is on purpose: on WhatsApp, two messages close
together is what gets reported as spam, whatever they were for.

## What happens to a skipped message

A message over the limit is **skipped, not sent later**, and not resent.

* **In the journey,** the send step takes its **Capped, not sent** exit instead of
  **Sent**. Leave that exit unconnected and the person's run ends there. Connect
  it to do something else: wait a day and try again, try another channel, or end
  on purpose.
* **In Executions,** the run is labelled **Skipped** rather than Completed.
  Hovering the label names the rule, for example "Over the limit: 1 message every
  day on WhatsApp". The **Skipped by Smart Sending** filter shows only those runs.
* **On the person's timeline,** the step reads **Skipped by Smart Sending**.
* **In totals,** the initiative's overview counts runs skipped by Smart Sending
  and leaves them out of **Completed**, since they were stopped, not finished.
  Settings › Smart Sending shows how many messages were skipped in the last 14
  days. Sent counts in analytics only include messages that went out.

The person can be added again once the window clears.

## Recommended setups

| If you… | Try |
| - | - |
| Run promos and flows on WhatsApp, and want every email to go out (e-commerce) | Message limit **1 every day, WhatsApp only**. Order, delivery and subscription notices as exceptions. No cooldown. |
| Don't want to contact someone again from another campaign for weeks or months (fintech, subscriptions) | **Cooldown** of 30 to 90 days, plus a WhatsApp limit of 1 every day. Account and payment notices as exceptions. |
| Collect documents or payments, with several messages a day by design | Put those initiatives in **Exceptions** first, then any limit you like for the rest. |

## Coming from Klaviyo?

If you used Klaviyo's Smart Sending, most of it maps directly. The differences:

| | Klaviyo | Boom |
| - | - | - |
| Where you turn it off | Per campaign and per flow message | Per initiative (**Exceptions** or **Always send**) |
| The limit | 1 message per window, per channel | 1 to 10 messages per window, per channel |
| Messages that always send | Transactional messages, which also **don't count** toward the limit | Exceptions, which **still count** toward the limit |
| "Don't contact for X months" | Built with segments | Built in, as the **cooldown** |
| A skipped message | Skipped, not rescheduled | Skipped, not rescheduled; the journey can route it through **Capped, not sent** |
| Changing the window | People already inside the old window stay on it | Applies to everyone immediately |

## Set it up with Claude

Everything on the settings page is also available through
[Boom's MCP tools](/use-mcp), for admins of your organization:

| Tool | What it does |
| - | - |
| `smart_sending_policy_get` | Reads the limits per channel and the cooldown. |
| `smart_sending_policy_set` | Sets one channel's limit, e.g. `{ "channel": "WHATSAPP", "maxMessages": 1, "windowHours": 24 }`, or turns it off with `{ "channel": "WHATSAPP", "off": true }`. |
| `smart_sending_cooldown_set` | Sets the cooldown in days (1 to 365), or turns it off. |
| `initiatives_update` | Makes an initiative an exception with `smartSendingMode: "FORCE"`. `DEFER`, the default, follows the rules. |

## Good to know

* **Nothing is limited until you turn a rule on.** Your organization still records
  every send, so the day you turn a limit on it already knows who was messaged
  recently.
* **If Smart Sending can't check, the message goes out.** An outage on our side
  never silently stops your messages.
* **To turn a rule off,** flip its switch. It stops immediately.
* **Holding a skipped message and sending it once the window clears** is coming.


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