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

# Campaign approvals

> Require owner or admin sign-off before a campaign can be scheduled, with a review queue, submission notes and decision comments.

Campaign approvals put a review step between building a campaign and sending it. When the workflow is on, everyone below owner or admin has to submit their campaign for review. An owner or admin then approves it, rejects it, or sends it back with changes.

The gate is on **scheduling**, not on editing. Anyone who can build a campaign can still build one. They just cannot put it in the send queue until it is approved.

<Info>
  Approvals apply to campaigns only. Flows, popups and transactional messages
  are not covered by this workflow.
</Info>

## Turning it on

Go to **Settings → Workflow & Approval**, under the **AI & Automation** group.

<Steps>
  <Step title="Check your plan">
    Approvals are included on any paid plan. On the free plan, and on a
    workspace that has not activated a paid plan yet, the section shows an
    upgrade card with a **View plans** link instead of the toggle.
  </Step>

  <Step title="Turn on Require approval before sending">
    A single switch. Turning it on takes effect immediately for every campaign
    in the workspace.
  </Step>

  <Step title="Open the queue">
    The **Open approvals queue** button on the same screen takes you straight
    to Campaigns → Approvals.
  </Step>
</Steps>

Changing this setting is an **owner or admin** action. Other roles can open the page but cannot save the change.

## Who has to submit

| Role     | What happens when approvals are on                                                |
| -------- | --------------------------------------------------------------------------------- |
| Owner    | Schedules directly. Never asked to submit. Can review other people's submissions. |
| Admin    | Schedules directly. Never asked to submit. Can review other people's submissions. |
| Editor   | Must submit for approval before the campaign can be scheduled.                    |
| Designer | Must submit for approval before the campaign can be scheduled.                    |
| Viewer   | Cannot create or edit campaigns at all, so there is nothing to submit.            |

Owners and admins are the approvers. They bypass the gate entirely, which is deliberate: if the only two people who can approve also had to be approved, nobody could ever send.

See [Workspaces and roles](/en/getting-started/workspaces) for what each role can do elsewhere in the product.

## Submitting a campaign

There are two places to submit.

<CardGroup cols={2}>
  <Card title="From the campaign wizard" icon="wand-magic-sparkles">
    On the **Review** step, the primary button reads **Submit for approval**
    instead of Send now or Schedule. A short notice above it explains why.
    This path does not offer a note.
  </Card>

  <Card title="From the campaigns list" icon="list">
    Open the row menu on any eligible campaign and choose **Submit for
    approval**. A dialog opens with an optional note for the reviewer.
  </Card>
</CardGroup>

The **note for the reviewer** is optional and capped at 500 characters. Use it for the context a reviewer cannot get from the campaign itself: why you picked this audience, what changed since last time, when it needs to go out.

<Tip>
  If you want to leave a note, submit from the campaigns list rather than from
  the wizard. The wizard submits without one.
</Tip>

### When the option appears

**Submit for approval** shows up only when all of these are true:

* The workflow is on and you are not an owner or admin.
* The campaign is a **draft** or is **paused**.
* Its current approval state is one of: no approval yet, **Rejected**, or **Changes requested**.

A campaign already **Pending approval** or already **Approved** cannot be submitted again. Trying anyway tells you which of the two it is.

### The campaign has to be sendable first

Submitting runs the same readiness checks as scheduling. The campaign is refused if it has no template, no audience, or is missing something the channel needs:

* **Email** needs a subject line, a from name, and a from address on a verified domain and a verified sender inbox. See [Sender identities](/en/deliverability/sender-identities) and [Domains](/en/deliverability/domains).
* **SMS** needs an approved branded Sender ID. See [SMS Sender IDs](/en/deliverability/sender-ids).

This is on purpose. A reviewer should never be handed a campaign that could not have sent anyway.

## The review queue

The queue lives on **Campaigns → Approvals**. It is a tab on the campaigns page, not a separate sidebar item.

<Tabs>
  <Tab title="To review">
    Owners and admins only. Every request still waiting for a decision, oldest
    first, with a count on the tab. Each card shows the campaign name, who
    submitted it, how long ago, the channel, and the submission note if there
    was one. **View campaign** opens the campaign so you can read it before
    deciding.
  </Tab>

  <Tab title="My submissions">
    Everyone. Everything you have ever submitted, newest first, with its
    current state and the reviewer's comment once a decision is made. Editors
    and designers see only this tab.
  </Tab>
</Tabs>

While anything in the list is still pending, the page refreshes roughly once a minute so a decision made by someone else appears without a reload.

Campaigns in the list also carry a state badge: **Pending approval**, **Approved**, **Rejected** or **Changes requested**. A campaign that has never been submitted carries no badge.

## Deciding

Each pending card has three actions.

<AccordionGroup>
  <Accordion title="Approve" icon="check">
    Opens a dialog with an **optional** comment. Approving unlocks scheduling
    for that campaign. It does **not** schedule or send anything. The person
    who submitted it goes back and schedules it themselves.
  </Accordion>

  <Accordion title="Request changes" icon="pen">
    Opens a dialog where a comment describing what needs to change is
    **required**. The campaign goes to **Changes requested**. The submitter
    edits it and submits again.
  </Accordion>

  <Accordion title="Reject" icon="xmark">
    Opens a dialog where a reason is **required**. The campaign goes to
    **Rejected**. It can still be edited and resubmitted, so reject is a strong
    "not this" rather than a permanent block.
  </Accordion>
</AccordionGroup>

Comments and reasons are capped at 500 characters.

Two rules are enforced on every decision:

* **You cannot approve a campaign you submitted.** This matters when someone is promoted to admin after submitting.
* **A request can only be decided once.** If two reviewers open the same card, the second one is told it has already been decided.

Rejecting and requesting changes both land the campaign back with the submitter. The practical difference is tone and intent: request changes when you expect it back, reject when the campaign should not run in this form.

## After approval

Approval unlocks the send. It does not perform it.

The submitter reopens the campaign and the primary button on the Review step now reads **Send now** or **Schedule** as normal. Scheduling then runs the usual checks: quiet hours, Shabbat, sender readiness, and everything else in [Campaigns](/en/messaging/campaigns).

If anyone who still needs approval tries to schedule a campaign that is not approved, the request is refused with a message telling them to submit it first.

## Editing after submitting

<Warning>
  Changing what a campaign says or who it goes to **clears its approval**. This
  stops anyone getting sign-off on one message and then swapping in another.
</Warning>

An edit revokes a pending or approved campaign when it changes any of:

* The **channel**.
* The **template** the campaign points at.
* The **audience**, meaning the segments included or excluded.

When that happens:

1. The campaign drops back to no approval and has to be submitted again.
2. Its pending request disappears from the reviewers' queue.
3. If the campaign was already **scheduled**, the scheduled send is cancelled and the campaign returns to **draft**.

Point 3 is the one to watch. An approved, scheduled campaign that someone edits will not go out at its scheduled time. Reschedule it after it is approved again.

### What does not revoke approval

Editing the **contents of the template** does not revoke approval, because the campaign still points at the same template. Neither does changing the subject line, preview text, sender name, sender address, reply-to, UTM settings or the campaign name.

If your review process cares about wording, review the template content at approval time and agree with your team not to edit it afterwards. The product does not detect that change.

<Note>
  **Duplicating** a campaign always produces a fresh draft with no approval,
  even if the original was approved. The copy has to go through review on its
  own.
</Note>

## Notifications

Both sides are told what happened, in the app and by email. In-app notices arrive in the bell in the top bar.

| Event              | In-app notification                                       | Email                                     |
| ------------------ | --------------------------------------------------------- | ----------------------------------------- |
| Campaign submitted | Everyone in the workspace, linking to the approvals queue | Every owner and admin                     |
| Approved           | The submitter only, linking to the campaign               | The submitter                             |
| Rejected           | The submitter only, carrying the reason                   | The submitter, with the reason            |
| Changes requested  | The submitter only, carrying the comment                  | The submitter, with the requested changes |

Email subjects are prefixed so they are easy to filter: `Approval needed`, `Approved`, `Not approved` and `Changes requested`, each followed by the campaign name.

Notifications are best effort. If an email fails to send, the decision itself still stands and the state in the product is correct.

## The permanent record

Every step is written to the audit log at **Settings → Audit Log**, where you can filter by action and by user and export to CSV:

* Campaign submitted for approval
* Campaign approved
* Campaign rejected
* Campaign changes requested
* Campaign approval revoked

The revoked entry is what tells you an approval was cleared by an edit rather than by a person.

## Limits worth knowing

<AccordionGroup>
  <Accordion title="Owners and admins can always send without review">
    There is no way to require a second owner or admin to sign off on an
    owner's campaign. If you need that, the practical workaround is to give the
    people who build campaigns the Editor role and keep Owner and Admin for
    reviewers only.
  </Accordion>

  <Accordion title="There is no per-campaign override">
    The workflow is on or off for the whole workspace. You cannot exempt a
    single campaign, an audience, or a channel.
  </Accordion>

  <Accordion title="No approval history on the campaign itself">
    A campaign page does not show its full review history. **My submissions**
    is where a submitter sees their past requests and the comments on them, and
    the audit log is the workspace-wide record.
  </Accordion>

  <Accordion title="Editing template content is invisible to the workflow">
    Approval is tied to which template the campaign uses, not to that
    template's contents at the moment of approval.
  </Accordion>

  <Accordion title="Turning the workflow off does not clear existing states">
    Campaigns keep the badge they had. With the workflow off, nobody is blocked
    from scheduling, so those badges become informational only.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Campaigns" icon="paper-plane" href="/en/messaging/campaigns">
    Building, scheduling and reporting on a campaign.
  </Card>

  <Card title="Workspaces and roles" icon="users" href="/en/getting-started/workspaces">
    What Owner, Admin, Editor, Designer and Viewer can each do.
  </Card>

  <Card title="Sender identities" icon="at" href="/en/deliverability/sender-identities">
    Verified from addresses, which a campaign needs before it can be submitted.
  </Card>

  <Card title="SMS Sender IDs" icon="comment-sms" href="/en/deliverability/sender-ids">
    The approved branded name an SMS campaign needs.
  </Card>
</CardGroup>
