Skip to main content

Using Approval Gates

There are two ways to keep a person in the loop during a mission:

GatePausesSet up in
Approval nodeThe workflow, at a fixed pointThe workflow builder
Tool-call approvalAn agent, just before it calls a particular functionApproval Override on the function, agent or team, or your project's risk appetite

Use an Approval node to sign off on a stage ("publish this draft?"). Use tool-call approval to control specific actions wherever they happen ("always ask before sending email").

Add an Approval node​

  1. In the builder, add an Approval node from the palette where the run should pause — for example between a "Draft reply" agent and a "Send reply" function.

  2. Connect the previous step to the Approval node, and the Approval node's Approved handle to the next step.

  3. Click the node and set:

    FieldWhat to enter
    Approval TitleThe alert heading, for example "Send reply to customer?". Defaults to "Approval required: label".
    Approval MessageWhat the approver should check.
    Timeout (seconds, 0 = no timeout)Reject automatically if nobody responds in time. 0 waits indefinitely.
  4. Click Save Changes.

warning

Leave the Rejected handle unconnected. A rejection (or timeout) stops the run, and after an approval the run currently follows every connection leaving the node — so a step connected to Rejected would run when the request is approved.

The Approval Message is plain text — variables aren't filled in. To show the approver what they're approving, have the previous step's output visible on the canvas: approvers can expand that node with View output before deciding.

Responding to an Approval node​

When a run reaches the node:

  1. The node shows Action Required ("Waiting for approval…") and the progress bar tooltip says "Paused — action required".
  2. An alert appears in the Alerts panel (the bell in the header) for people in the project, titled with the Approval Title.
  3. Click Approve or Reject — on the node on the mission canvas, or on the alert.
OutcomeWhat happens
ApproveThe run continues.
RejectThe node and the mission end Failed ("Approval rejected by user").
TimeoutTreated as a rejection.

Pending Approval node requests are stored, so they reappear in the Alerts panel after you sign out and back in. Every decision — approved, rejected or timed out — is recorded as oversight evidence for governance.

Require approval for a tool call​

Tool-call approval applies wherever an agent uses the function — in chat, in a workflow or in a program. Each Approval Override offers Inherit from risk appetite, Always require (pin) and Never require (pin). The platform uses the first pin it finds, in this order:

  1. the team's Approval Override (when the agent is running in a team);
  2. the agent's Approval Override;
  3. the function's Approval Override.

If none of them is pinned, your organisation, project or personal risk appetite decides, based on the call's risk level. Two consequences:

  • A team or agent pin hides any function pin beneath it. To gate one function, for example "Send email", pin that function to Always require and leave the agent and team on Inherit.
  • Never require does not stop approval for a critical-risk call unless the risk appetite is Bypass all.
note

Some tooltips in the app describe this order the other way round. The order above is what the platform applies.

See Functions, Agents, Teams and Governance for where to set these.

In a workflow run​

When an agent or team node wants to call a function that needs approval:

  1. The node shows Action Required, and an alert titled "mission - Function Approval" says which agent wants to call which function.
  2. Click Approve or Reject on the node or the alert.
OutcomeWhat happens
ApproveThe tool call runs and the agent carries on.
RejectThe tool call is skipped; the agent is told and carries on without it.
No answer within 5 minutesThe tool call is skipped and the run carries on, but the mission ends Failed ("unapproved tool calls: …") so the gap is visible.

Scheduled and webhook runs usually have nobody watching. If a function must run unattended, pin it to Never require (and make sure no agent or team pin overrides it); otherwise every unattended run that reaches it ends Failed.

Tips​

  • Gate the action, not the thinking. Put the Approval node (or the tool pin) right before the step that sends, writes, deploys or pays — not around research steps.
  • Use timeouts on anything scheduled, so a run doesn't wait indefinitely.
  • Pair with a Kill Switch when you need to stop runs entirely rather than decide one at a time.
  • Remove gates you always approve. Approvals nobody reads become noise.