Skip to content

Approval steps: a person decides before you spend

Pause each item until someone approves it, so upscales, videos and variants only run on work a person actually wanted.

In this article (7)

The expensive steps in a creative flow come late — an upscale, a video clip, a batch of variants. Without a gate, every item that gets that far gets them. The Approve card puts a person in the way: each item stops, someone looks at it, and only approved items carry on.

Setting it up

Drop Approve (✓) between the cheap steps and the expensive ones — for example Concept → Approve → Render. In its settings:

  • Instructions for the approver — what to look for. Shown next to every waiting item.
  • Who can decide — anyone who can run flows, or only the people you tick.
  • Decide within and If nobody decides — how long items wait (default 72 hours) and what happens after: Reject (nothing more is spent — the default) or Approve.
  • Approved items go to / Rejected items go to — usually the next step and Results.

Deciding

When a run reaches the card, everyone who can decide gets one notification for that run — in the bell, and by email or webhook if they use those — and a reminder halfway to the deadline. Approval requests arrive even for flows you muted: they are a task for you, not a run result.

On the run page (or in the Builder's Results) each waiting item shows its image or text, the instructions, Approve and Reject, and an optional comment (on a card that can send items back, Send back too — see below). Approve all and Reject all decide every waiting item at once. A rejection is always final. Two people can't both decide the same item — the second is told it was already decided.

What happens next

  • Approved items continue straight away.
  • Rejected items skip the steps after Approved and finish as Rejected — a decision, not a failure, so the run still reads Done and Retry failed leaves them alone.
  • The comment travels on: a later step can use {step.Approve.comment} — for example a cheap Claude step on the rejected path that turns "make it warmer, less text" into a revision brief.
  • Every decision is recorded in the activity log with who made it and when.

Sending rejected items back for another try

Instead of stopping a rejected item, the card can send it back: set When an item is rejected to Send it back for another try, pick the step to redo, and how many more tries (up to 4). Put {step.Approve.comment} in that step's instruction — "Write an ad concept for {item.product}. Feedback: {step.Approve.comment}" — so the next try uses what the reviewer said. Reviewers then see Send back next to Approve and Reject: Send back makes another try, Reject still stops the item for good. The item comes back for approval, and everyone who can decide is notified again.

Each try is charged like the first, so the number of tries is a hard limit: after the last try there is no Send back. If nobody decides in time, the card's timeout decides — silence never buys another round.

Changing the text (Rewrite…)

A card can let reviewers change an item's text, not only comment on it: list the columns under Reviewers may rewrite these columns (an ad's image prompt, animation prompt and line, say). Each waiting item then has Rewrite…, which opens those columns:

  • Redo with this sends the item back and makes it again from your text (it needs a try left).
  • Approve with this approves it as it is, and the steps after approval use your text. The Ad video template animates an approved scene with your edited animation prompt this way, without drawing a new image.

What you changed stays on the item and in the activity log.

Letting a client decide

An agency's client can make the call themselves, from a share link, without an account. It takes two switches, both off by default:

  1. On the Approve card, tick Clients can decide through share links.
  2. Share the run with Let viewers approve on.

The client then sees "Your decision moves this item forward" on each waiting item. Approve continues it; Request changes stops it, and whatever they typed in the comment box travels on as the comment. The first verdict decides; anyone after that is recorded as feedback. Decisions are final, and each shows as "Dana · guest via shared link" on the run, in the activity log and in your bell.

A link can only decide items of the run it was shared from — never another run, flow or workspace. Anyone holding it can release that step's spend for that run, so turn the card switch on only for links you send to the client, and revoke the link when the review is done.

Good to know

  • Waiting costs nothing and holds nothing — no key, no queue slot.
  • With Wait for all as the flow's fan-in, the next step waits until every item is decided; with Continue per item, approved items move on as soon as each is approved.
  • An Approve card can't sit inside a separate Repeat loop — use its own Send it back for another try instead.