- The first sends to a new audience. Check a few real messages before you let the rest go.
- Sensitive content. Collections, account changes, or anything where a wrong variable would hurt.
- Compliance review. When your process needs a named person to sign off on each outbound message.
Turn it on
1
Open the send step
In the journey builder, select a Send message step (WhatsApp, template
mode) or a Send email step.
2
Pick Draft for approval
Under Delivery, switch from Send immediately to Draft for
approval. The step gains a third exit, Rejected, next to Sent and
Capped, not sent.
3
Wire the Rejected exit (optional)
Connect Rejected to whatever should happen when a reviewer says no: a
different message, a wait and another try, or an exit. Leave it unconnected
and the person’s run ends quietly.
4
Publish
Publish the journey as usual. From then on, every send from that step waits
for review.
Review drafts
Drafts are reviewed inside the campaign or initiative they belong to. Open it and choose Drafts in its sidebar, under Operational, after Executions. The sidebar shows how many drafts are pending (up to “99+”). The initiative page shows an N drafts waiting button, and the journey builder toolbar shows the same count as a badge. Both open the Drafts tab. The tab lists every draft with its recipient, step, status and age, plus the first line of its message (the WhatsApp text or the email subject). A pending draft older than 24 hours is marked in amber, because its content was fixed when it was drafted. Use Filter to narrow it by status, channel, journey version, step or when it was created, and Refresh to pick up new ones. Click a row to see the preview: the exact message that will be sent, with the template, the variables, and for email the From, Reply-To and subject. On a narrower screen the preview opens as a drawer from the bottom. The preview also shows how old the draft is, and warns Template edited since drafted if the template changed after the draft was made. For email, Show full email opens the whole message. A draft that has been decided shows who approved or rejected it, and when. You can decide:- One draft, with Approve or Reject in its preview. This acts at once, with no confirmation step, and the preview moves to the next pending draft. It cannot be undone, so read the preview first.
- A selection, by ticking rows and choosing Approve selected or Reject selected.
- Everything matching the current filter, with Approve all pending or Reject all pending. Drafts created after you opened the page are not included, so you never approve something you have not had the chance to see. Both bulk options ask you to confirm the count, and warn you if any of the drafts are older than 24 hours.
What happens next
Approve sends the message you previewed, exactly as it is. Boom does not render it again, so a template edit made after the draft was created does not change what goes out. The journey’s send window and your channel’s rate limits still apply, so a large approval goes out at the same pace as live traffic. The run then continues on Sent. Reject sends nothing. The run takes the Rejected exit, or ends if nothing is connected to it. A rejected draft costs no credits: credits are only used when a message is actually sent.Checked again at delivery
Some things can change while a draft waits. These are checked again when an approved draft is delivered, and the draft is not sent if any fails. The Rejected exit is only for a reviewer’s rejection, so it never catches these. Each one takes the path below:- Do Not Contact. A person who opted out in the meantime is skipped. On WhatsApp the run ends. On email the run continues on Sent, the same as an email step that skips an opted-out person without drafts.
- The template. A WhatsApp template no longer approved by Meta, or an email template no longer published, stops the send and the run ends.
- The sender. A WhatsApp number or email sender that is no longer available stops the send and the run ends.
- The journey. If the journey was stopped, the draft is not sent and the run ends.
- Smart Sending. The message limit is checked at delivery, not when the draft is created. An approved draft that would go over the limit is not sent and the run takes Capped, not sent.
- A reply (WhatsApp only). If the person replies while an approved WhatsApp draft is waiting for its send window, the draft is skipped and the run continues on Sent. Email drafts have no send window, so this never applies to them.
Limits
- Supported steps. WhatsApp template messages and email. Free-text WhatsApp, SMS, Instagram and Messenger sends cannot be drafted.
- Not in Transactional messages. A transactional message has to go out when its event fires, so its journey cannot use drafts.
- Several runs at once. On a journey with several runs per person, a send that waits for a send window cannot be drafted.
- Drafts do not expire yet. A draft waits until someone decides it, however long that takes.
- A waiting draft keeps the person in the journey. While their draft is pending, the same person cannot be enrolled again in that journey. Approve or reject it first.
- Stopping the journey cancels its drafts. Pending drafts move to Canceled and those runs end.
Permissions
In the app, two permissions control drafts. Both are on the Admin and Member roles.
Someone with read but not update sees the list and previews, without checkboxes
or approve and reject buttons.
Over MCP
An AI agent connected over MCP can review drafts too:drafts_listlists drafts, with a preview of each, filtered by initiative, status and more.drafts_decideapproves or rejects drafts by id, or everything matching a filter. Approving sends real messages.
delivery: "draft" on a
SEND_MESSAGE (template mode) or SEND_EMAIL node. See journeys.
There is no REST endpoint for deciding drafts. Approving a send has to name the
person who approved it, and an organization API key identifies the integration,
not a person. See one uniform surface.
If you use webhooks, a run that ended because its draft was
rejected reports journey_run.ended with reason: completed. To tell it apart,
read the participant’s step history: the send step’s emittedSignal is
REJECTED.
Related
Journeys
Build the workflow whose send steps you draft.
Smart Sending
The message limit an approved draft is checked against.
Use MCP
Review and decide drafts from an AI tool.
Webhooks
How a rejected draft shows up on
journey_run.ended.