How it works

Approvals & workflow

TL;DR

Reads run freely; every write pauses at an approval gate. Approve in the app or via an email magic-link, with the full context — title, reasoning, tool and arguments. Before a write runs, live account state is re-validated. Every decision is recorded in the audit log.

Plan → approve → execute

  1. 1You write a goal; the orchestrator generates a step-by-step plan.
  2. 2Read-only steps run immediately; each write step halts at “waiting for approval”.
  3. 3You approve or reject each write — in-app or by email magic-link.
  4. 4On approval, the Safety agent re-checks live state, then the step executes; on reject, that step is skipped (downstream dependents skip too).
  5. 5Every mutation is summarized, verified, and written to the audit log.

Approve in-app or by email

Each pending write shows its title, the agent’s reasoning, the exact tool and arguments, and the task goal — so you approve with full context.

  • In-app: the Workspace shows the prompt; click Approve or Reject.
  • Email magic-link: a one-time link opens an approval page; useful for approvers who don’t live in the app.
  • Idempotent: reloading or re-submitting an approval is a safe no-op.
  • Stale-prompt detection: if the plan was replaced, old approval links no longer apply.

Pre-approval & auto-approve

You can approve a step before the executor reaches it (pre-approval). You can also enable auto-approve on a task or schedule so every write runs without pausing.

Auto-approve is genuinely hands-off — use it only for tasks and schedules you fully trust, ideally with account-memory guardrails in place.

Audit log & stale-state safety

The Audit log records every mutation with who, when, the channel (in-app or email), the decision, and before/after detail. Stale-state validation means a change planned against old data won’t apply if the account moved on — the step is rejected instead.

Frequently asked questions

Can I reject just one step?
Yes. Rejecting a single step skips that step (and anything that depended on it) without aborting the whole run.
What stops a stale plan from doing damage?
Before each write, the Safety agent re-validates live account state. If something changed since planning (e.g. a campaign was paused elsewhere), the step is rejected rather than applied.
Where do I see what changed?
The Audit log lists every mutation with the user, timestamp, approval channel and before/after values.

Related