Approvals
An editor writes the campaign; someone more senior reviews it and sends. That separation has always been possible - Campaigns: Write and Campaigns: Send are different permissions - but approvals turn it into a workflow: a way to submit, a queue for the reviewer, a record of who approved what, and a rule that an edit after approval does not silently keep the approval.
Approvals are off by default. Nothing changes for anyone until a workspace turns them on.
Turning it on
Approvals are an add-on. They have to be enabled for your organization before a workspace can use them - talk to us if Settings → Approvals says the feature is not available on your plan.
Once your organization has it, each workspace configures its own rule at Settings → Approvals. That needs Settings: Write, an admin-level permission, so the editors the rule constrains cannot switch it off.
Two levels on purpose: the organization decides whether the capability is available, each workspace decides whether it applies to their campaigns.
There are three choices:
| Setting | What it means |
|---|---|
| Never | Today's behaviour. Anyone with Campaigns: Send can send. |
| Every campaign | Nothing sends without a reviewer. |
| Only above a size | Nobody approves a 200-person test; everybody wants eyes on a 400,000-person send. |
If you pick only above a size and leave the number empty, every campaign needs approval. A size rule with no size is read as "everything is above it", which is the safe reading of a half-finished setting.
Journeys
Journeys are set separately, because a journey is the riskier of the two: a campaign sends once, a journey keeps sending for as long as it runs. Leave the separate setting off and journeys follow the campaign rule - they are never left unprotected by accident.
A journey has no size threshold. It enrols people continuously, so any audience number measured at launch is a snapshot of something that has not happened yet. For journeys the choice is all or nothing.
Approving your own work
Off by default. An approver who is also the author is a rubber stamp, and separation of duties is the reason the feature exists.
It is a setting rather than a rule, though, because a two-person team with a hard ban cannot send anything at all. Turn it on where waiting for someone else would block every send, and know what you are choosing.
Sending something for review
Open a draft campaign and choose Submit for approval. It needs Campaigns: Write - the point of the workflow is that the person who cannot send can still start the process.
The campaign moves to Waiting for review and appears in Approvals in the sidebar. Everyone who can approve gets an email.
If nobody in the workspace holds the approval permission, the campaign cannot be approved by anyone. Grant Campaigns: Approve to at least one person before turning approvals on.
Reviewing
Approvals in the sidebar lists everything waiting, campaigns and journeys together, oldest first. Authors see it too - you should be able to tell whether anyone has looked at your submission without asking.
Approving in parts
A campaign is reviewed in three parts, because different people are competent to judge different things. A copywriter can tell you the subject line is wrong; they cannot tell you the segment is wrong.
| Part | Covers |
|---|---|
| Content | The message, template, variants, A/B setup, UTM tags |
| Audience | Targeting, resend policy, subscription category, campaign tags, frequency-cap override |
| Delivery | Channel, schedule, triggers, send rate and volume limits, sender, conversion tracking |
Sign off one part, or Approve all. The campaign is only Approved once all three carry a sign-off - partly reviewed is still waiting on somebody.
Campaign tags sit under Audience rather than Delivery, which surprises
people. A suppression list can carry exception tags, and it stops applying to
any campaign that carries one of them. So a tag is an exemption: tag a campaign
vip-approved and the list holding that exception tag no longer excludes
anyone - which adds previously-suppressed people to the send.
Adding a tag widens the audience. That is precisely the edit an audience sign-off must not survive, which is why it lives here and not under Delivery.
Requesting changes
Request changes sends it back to draft with your note attached, and the author sees the note on the campaign. A reason is required - a rejection with no explanation just comes back to you.
What happens if the campaign changes
An edit after approval voids the approval for the part it touched. Change the subject line and the content sign-off is gone; the audience sign-off stands.
Without this, approve → edit → send walks straight past the reviewer, and that is the ordinary thing a hurried marketer does rather than an attack.
Re-saving without changing anything costs nothing.
Approving is not sending
They are separate permissions on purpose. "I agree this is correct" and "I am releasing this to 400,000 people" are different decisions, and keeping them apart is what lets a workspace require three people. An approved campaign still has to be sent by someone holding Campaigns: Send.
Bigger sends, more senior sign-off
Under Settings → Approvals you can name who must approve above a given audience size - a Director above 50,000, a VP above 500,000.
Two things worth knowing:
- Someone named on a level can approve at that level without any other permission. The VP who signs off one send a quarter does not need to become an admin.
- A send crossing several levels needs the highest one, not all of them. Requiring every level would make a large send need four signatures, which is how a governance feature gets switched off.
The size is checked again when the campaign is sent, not only when it is approved. A segment is a query, not a list: a campaign approved at 40,000 can reach 600,000 by the time it goes out, and the signature it collected was for a different campaign than the one about to send.
If the audience cannot be measured at that moment, the campaign is treated as being at the highest level. "We could not tell how big it is" is not the same as "it is small".
We warn you in advance. If a scheduled campaign grows past the level it was approved for, the approvers get an email before its send time - while there is still time to act. If it does reach its send time without the right approval, it moves to Failed with an explanation and a Retry button, rather than quietly trying and failing every minute while nobody notices.
Permissions
| Permission | Who needs it |
|---|---|
campaigns:write | Submitting for review |
campaigns:approve | Approving or rejecting a campaign |
canvas:approve | Approving or rejecting a journey |
campaigns:send | Actually sending an approved campaign |
settings:write | Turning approvals on or off |
campaigns:approve and canvas:approve cannot be granted to an API key.
Approval is a human review step, and a key approving what a key submitted is the
bypass the workflow exists to prevent.