Keep humans in control of your AI agents with tool approval settings, app rules, and the Ask Question ability.
Human in the Loop lets you require approval before your agent takes actions such as sending emails, creating repositories, or deleting records.Your approval settings determine which tool calls pause for review.
When the agent tries to use a tool that requires approval, it pauses and shows an approval card with the tool and a readable summary of the proposed action.
2
You get notified
You receive an approval request via in-app notification, Slack DM, or directly in the chat thread.
3
You approve or reject
If approved, the agent continues from where it left off. If rejected, it acknowledges the rejection and adjusts its approach.
The agent never executes a gated tool call without your explicit go-ahead.Approval cards show readable resource names and key details, not every tool argument. Some details may be unavailable or hidden by your permissions. Review the task context as well as the card before approving.
The most common approach. When you add a connector (like GitHub, Gmail, or Slack) to your agent, you can configure its Approval Settings to control when the agent needs permission.Open your agent’s configuration, find the connector in the Connectors list, and click the approval icon next to it.
Mode
What it does
Always allow
The agent can use all tools from this app without asking. This is the default.
Ask each time
Every tool call requires your approval, whether it reads or writes data.
Ask for writes/deletes
Read-only tools run freely. Write, delete, and unknown-risk operations require approval.
Never allow
Prevents every tool from this connector from running.
Custom
Set approval requirements on a per-tool basis. You control each tool individually.
”Ask for writes/deletes” is a great default for most apps. It lets your agent gather information freely while keeping you in the loop for any changes.
Every connector’s tools are sorted into read-only and write when the connector is added, so Ask for writes/deletes works the same way on a custom or self-hosted connector as it does on Gmail or GitHub. If a tool is grouped in a way you disagree with, use Custom and set that one tool yourself.
When you select Custom as the approval mode, you unlock per-tool controls. Open the app’s detail view to see the Tool Management section.
Tools are grouped by risk level: Read-only tools (fetch data) and Write/delete tools (modify or create data). Each group can be set to Always allow or Custom.When a group is set to Custom, you configure each individual tool:
Icon
Mode
What it does
(checkmark)
Always allow
Runs without asking.
(hand)
Ask each time
Always requires approval.
(block)
Never allow
Completely blocked from use.
For example, you might allow “Add Comment To Issue” freely, require approval for “Create Repository”, and block “Delete Repository” entirely.
App Rules let you define conditional approval requirements using CEL expressions that evaluate the actual arguments of each tool call. For example: “Require approval only when the email recipient is outside my company domain.”You can create rules in two ways:
Via the agent's chat
Ask your agent to create a rule in natural language. The agent translates it into a CEL condition and presents it for your approval.
Via the app config UI
Open the app’s detail view and use the Rules section to create rules manually.
App Rules require the App Rules Creation ability to be enabled on your agent if you want the agent to create rules via chat. You can also create rules manually through the config UI. For a deeper dive, see the App Rules documentation.
The Ask Question ability is different from the approval settings above. Instead of gating tool calls, it lets your agent proactively ask you a question when it needs input to continue.
When enabled, the agent can present you with structured choice cards (toggle groups, multi-select options) to gather your preference before proceeding. Useful for decisions like “Which template should I use?” or “Which of these three options do you prefer?”Every choice card includes Other with a text box. Choose it to provide an answer that is not listed.Toggle this on in your agent’s Abilities section.
Ask Question is great for open-ended tasks where the agent might need clarification. It lets the agent pause naturally and ask for your input rather than guessing.
A subagent can pause for tool approval, an Ask Question card, or a step, time, or credit checkpoint. The request applies to that subagent. If the parent is waiting on that subagent, the parent pauses too until you answer.If a subagent has several pending tool actions, the parent conversation can show a card for each. Answer all required requests before the subagent can resume. Approving a tool does not answer a separate request for browser input or a checkpoint decision.Approval requests keep their assigned approver. Viewing the parent or subagent chat does not change who can approve them.When a background subagent pauses for tool approval, the request reaches you where you’re talking to the parent agent, and the parent keeps working meanwhile. In web chat, the approval card appears in the parent chat under Background subagents. In a Slack thread, use Approve or Reject on the request card. In iMessage or email, the notice reads Reply "approve" to approve, or review in Gumloop. Reply with just approve, or review it in Gumloop to decline. On Microsoft Teams, the request goes to your Gumloop inbox and a Slack DM.
1
Review the subagent request
Check which subagent is paused and whether it needs tool approval or has reached a checkpoint.
2
Choose the appropriate response
For a tool approval, choose Approve or Reject. For a checkpoint, choose Continue to resume the subagent, or Stop to end its run.
Checkpoint Continue and Stop apply to the subagent, not the whole parent task. Stopping returns a stopped result to the parent, not a successful completion. Continuing does not remove execution or concurrency limits.
Approval requests appear in the chat and in your notifications. Slack-connected agents can also send requests in Slack.
A question or browser handoff asked in a web chat you’re watching does not also create an inbox notification.
In the chat
Notification bell
Tasks page
Slack
The approval card appears directly in the conversation with the tool name, proposed action, key details, and Approve / Reject buttons. Use ⌘ + Enter to quickly approve.
The card includes:
Tool name and icon at the top (for example, “Approve Send Email” with the Gmail icon)
Intent describing what the agent is trying to do
Display fields showing the key arguments (for example, To, Subject, Body)
Reject and Approve buttons
“Don’t ask again for this tool” checkbox to remember your decision for future calls
The in-app notification bell lights up with a badge count. Approve or reject directly from the inbox without opening the conversation.
Quickly approve or reject from here. The inbox also has a Resolved tab to review past decisions.
The Tasks page has an Approval Required filter showing every pending approval across all your agents in one place.
A centralized queue for everything that needs your attention, especially useful when you have multiple agents running.
For Slack-connected agents, approval buttons appear directly in the Slack thread. You get Approve, Reject, and Open in Gumloop buttons right in Slack.
You can also receive a Slack DM. Click Open in Gumloop to see the full context in the web app.
Open your agent’s configuration, find GitHub in the Connectors list, and set the approval mode to Ask each time (or Ask for writes/deletes if you only want to approve changes).
2
Ask your agent to do something
For example: “Please create a PR on the docs repo to change the title of the agents skills doc page to just ‘Skills’.”
3
The agent pauses for approval
Before executing the GitHub API call, it shows you an approval card with the details:
4
Review and decide
Review the proposed action and its key details. If everything looks right, click Approve. If something is off, click Reject and optionally provide a reason.
5
The agent continues
After approval, the agent resumes work on the task.
Creating a conditional rule via chat
1
Enable the App Rules Creation ability
Toggle it on in your agent’s Abilities section.
2
Ask your agent to create a rule
For example: “Create a human approval rule for any email that is sent to users without the gumloop.com domain.”
3
The agent builds the rule
It generates the appropriate CEL expression and shows you the rule details:
4
Approve the rule
Once you approve, the rule is live. You can see it in the app’s config:
5
The rule takes effect immediately
The rule requires approval for email to a non-gumloop.com address. Other approval settings and policies still apply, including to internal email.
Does the agent time out while waiting for approval?
The agent saves its state when it pauses for approval. Approving or rejecting resumes the request handling, but does not remove execution limits. Subagents can also pause at checkpoints; see What happens when a subagent pauses?.
Can I approve from Slack without opening the web app?
Yes. If your agent is connected to Slack, approval buttons appear directly in the Slack thread and in a Slack DM. You can approve or reject right from Slack. You can also click “Open in Gumloop” to see the full context in the web app.
What does "Don't ask again for this tool" do?
Checking this box before approving remembers your approval preference for that tool on the agent, not just the current request. Future calls use that preference, subject to applicable permissions and policies. For connector tools, you can change it in the connector’s Tool Management settings.For Manage Artifact, this applies to future artifact changes on the agent, not just the first file. File permissions and applicable policies still apply. There is currently no settings control to turn approval requests back on for Manage Artifact.
Can I set different approval requirements for different team members?
Approval settings are configured at the agent level and apply to all users interacting with that agent. For organization-wide policies that apply across all agents, use App Rules in your organization settings.
What's the difference between App Rules and Approval Settings?
Approval Settings are simple toggles: always allow, ask each time, ask for writes, or custom per-tool. They apply based on the tool’s risk category (read vs. write).App Rules are conditional. They use CEL expressions to inspect the actual arguments of a tool call and decide whether to require approval. For example, “only require approval when the email recipient is outside my domain” is something only App Rules can do.Both can work together. Approval Settings act as the baseline, and App Rules add conditional overrides on top.
Where can I see all pending approvals across my agents?
The Tasks page has an Approval Required filter that shows every pending approval across all your agents in one place. You can also use the notification bell in the top-right corner of the app for a quick glance.
What happens if I reject a tool call?
The agent does not execute the rejected tool. It acknowledges the rejection, and if you provided a reason, it takes that into account. The agent then continues the conversation, often adjusting its approach or asking for clarification.
Can my agent create App Rules on its own?
Yes, if you enable the App Rules Creation ability in your agent’s Abilities section. The agent can translate natural-language instructions into CEL conditions. The rule creation itself also requires your approval before it takes effect.
Does Human in the Loop work with sandbox (code execution) tools?
Yes. When an agent needs to run code in the sandbox (Python or shell), the approval card shows a preview of the code it wants to execute. You can review the exact script before approving. If the code makes MCP tool calls (for example, sending an email via Gmail), those nested calls are listed in the approval card as well.
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.