Using Approval Gates
There are two ways to keep a person in the loop during a mission:
| Gate | Pauses | Set up in |
|---|---|---|
| Approval node | The workflow, at a fixed point | The workflow builder |
| Tool-call approval | An agent, just before it calls a particular function | Approval 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
-
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.
-
Connect the previous step to the Approval node, and the Approval node's Approved handle to the next step.
-
Click the node and set:
Field What to enter Approval Title The alert heading, for example "Send reply to customer?". Defaults to "Approval required: label". Approval Message What the approver should check. Timeout (seconds, 0 = no timeout) Reject automatically if nobody responds in time. 0waits indefinitely. -
Click Save Changes.
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:
- The node shows Action Required ("Waiting for approval…") and the progress bar tooltip says "Paused — action required".
- An alert appears in the Alerts panel (the bell in the header) for people in the project, titled with the Approval Title.
- Click Approve or Reject — on the node on the mission canvas, or on the alert.
| Outcome | What happens |
|---|---|
| Approve | The run continues. |
| Reject | The node and the mission end Failed ("Approval rejected by user"). |
| Timeout | Treated 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:
- the team's Approval Override (when the agent is running in a team);
- the agent's Approval Override;
- 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.
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:
- The node shows Action Required, and an alert titled "mission - Function Approval" says which agent wants to call which function.
- Click Approve or Reject on the node or the alert.
| Outcome | What happens |
|---|---|
| Approve | The tool call runs and the agent carries on. |
| Reject | The tool call is skipped; the agent is told and carries on without it. |
| No answer within 5 minutes | The 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.
Related
- Missions — where approvals appear
- Workflow Node Reference — Approval and Kill Switch nodes
- Functions
- Governance