Approval Flow
Approval flow is human-in-the-loop gating: a run pauses until someone approves, rejects, or (for information requests) submits answers. Pending items appear on the Approvals page.
Approval is not the same as agent Guardrails. Guardrails filter topics and patterns on messages; approval pauses execution of a tool or step until a person decides.
When to use
- Gate risky agent tools (writes, sends, destructive actions) so the model proposes the call but does not run it until approved
- Pause a workflow or agent for an explicit yes/no decision (Request Approval)
- Collect text or multiple-choice answers from role holders before continuing (Request Information)
Require tool approval on agents
In the agent builder, open the Tools tab. Use the shield control on a tool to set approval:
| Mode | Behavior |
|---|---|
| No approval | The tool runs as soon as the model calls it |
| Require role approval | Pick one or more workspace roles. Any member with one of those roles can approve or reject. Requests appear on Approvals. If the current chat user already holds an approval role, they can approve inside the chat without leaving the conversation. |
| Require current user approval | The current chat user must approve (chat channel only) |
When a gated tool is called:
- The agent run pauses and creates an approval request.
- Assignees see it on Approvals.
- Approve — the tool runs with the proposed arguments.
- Reject or revoke — the tool does not run; the model is told the outcome and can continue.
Approval is configured on the agent’s tool binding, not on the underlying function or API definition. Host/provider tools that are not wrapped as normal agent tools are not gated this way.
For the Tools tab and attaching tools, see Agents.
Request Approval
Request Approval pauses until a human decides yes or no. Use it as:
- A workflow block (Request Approval; approved vs rejected outgoing paths)
- An agent tool — attach it from Manage Tools (or
#in Task) so the model can request approval mid-run
| Setting | What it does |
|---|---|
| Message | What the approver sees on the request |
| Mode | Roles (pick one or more roles) or Current user (chat channel only; other channels use role approval) |
| Roles | Required when mode is roles — who can approve or reject |
In a workflow, the block has two outgoing paths:
| Handle | When it fires |
|---|---|
| Default (approved) | Someone approved the request |
| Rejected | Someone rejected or revoked the request |
The run waits until a decision is made, then continues (workflow path or tool result back to the agent). Output includes the decision, who decided, an optional note, and the approval id.
Request Information
Request Information pauses until role holders submit answers — text and/or multiple-choice fields you define. Use it as:
- A workflow block on general / agent-tool graphs (Request Information)
- An agent tool — attach it like any other tool so the model can collect structured answers mid-run
| Setting | What it does |
|---|---|
| Message | Prompt shown on the Approvals page |
| Roles | Who can submit |
| Fields | One or more fields (text or mcq), each with a label and optional required flag; MCQ needs at least one option |
Use this when you need structured input before continuing, not a simple yes/no. Answers are submitted on the Approvals page. Available on general and agent-tool style channels.
Review pending approvals
Open Approvals from the side menu. The page is the workspace inbox for human-in-the-loop requests assigned to you (or your roles).
| Tab | What you see |
|---|---|
| Pending | Tool approvals, Request Approval, and Request Information items waiting for action — with a live count |
| History | Past decisions and submitted answers |
On a pending item you can approve, reject, or revoke (for yes/no approvals), or fill fields and submit (for information requests). Expand tool arguments when you need to inspect what would run.
The list updates in realtime: when a new request is created or an existing one changes status, the page refreshes so you do not need to reload. Statuses include pending, approved, rejected, and revoked.
How a pause resolves
Tool call, Request Approval / Information (block or agent tool)
↓
Approval request (pending)
↓
Approve / reject / revoke / submit
↓
Run resumes (tool executes, or rejection message / rejected path / answers on the pipe)
There is no dedicated expiry on approval requests — they stay pending until someone acts. Design for humans who may not respond immediately.
Where approval is used
| Place | How |
|---|---|
| Agents | Per-tool shield on the Tools tab; Request Approval / Request Information as attachable tools |
| Workflows | Request Approval and Request Information blocks |
| Approvals page | Assignees review pending items and decide — on the web side menu or the companion app Approvals tab |
Limits
- Current user approval requires a chat channel and an authenticated platform user on the session; otherwise the request cannot be decided that way.
- Roles mode needs at least one role selected.
- Reject does not silently skip — tools return a rejection outcome to the model; workflow Request Approval takes the rejected handle (including on revoke).
- Request Information is answered on the Approvals page and is limited to general / agent-tool channels.
- Approvals do not auto-expire.
- Do not confuse this with WhatsApp template Meta approval or other product “approval” steps outside HITL.