---
title: Browser Tool
description: Let an agent act on the live page — click, fill, type, select, submit, navigate — with an approval gate on every action.
---

Let an AI agent click, fill, type, select, submit or navigate on the active tab, with your approval before every action.

## What it does

Browser Tool is a tool for an agent, not a step in the flow. It has no output port: you connect it to the **Tools** slot of a [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/), and the agent's model can then call it while it works on its prompt.

Each call names one action (`click`, `fill`, `type`, `select`, `submit` or `navigate`) and a target: a CSS selector for page actions, a URL for `navigate`. **Fill** clears the field first, then types the value; **type** adds text without clearing.

Before anything happens, an approval row appears in the **Executions** pane describing the action, for example "click #unsubscribe on example.com". It names the action and target, never the value being typed, so passwords and personal data stay hidden. You approve or reject. A rejected action never runs, and the model is told you declined so it can continue without it. If nobody answers within 2 minutes, the action is rejected.

## When to use it

* Let an agent work through a page for you: fill a form, click through a flow, submit a request, with you confirming each step.
* The page is already open in the tab the workflow runs against.
* The model should decide which element to act on, based on what it read.

For fixed, planned page actions, use the regular page action nodes instead: they don't need a model or an approval for each step.

## Inputs and settings

This node has no settings.

There is nothing to configure. The model picks the action, the selector, the value and the URL on each call. Give it page structure to work with: pass the page's text or structured data into the agent's **Prompt** so it can choose the right selectors.

## Outputs

This node has no output port. It plugs into a slot on another node instead of passing items along.

* **Tools** slot of [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/)

What each action did goes back to the model, not to the next node. The agent's own output shows the result: its `response`, and the list of tool calls it made in `steps`.

## Dependencies and credentials

None. This node needs no connection and has no slots for other nodes.

## Example workflow

1. [Get Structured Data](/nodes/extension/getstructureddata/) reads the newsletter settings page you have open.
2. [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/) with **Prompt** `Unsubscribe me from all marketing emails on this page. Page data: {{ $input }}`, a [Chat OpenAI](/nodes/builtin/ai/aidependencies/llm/openai/) model in **Model**, and Browser Tool connected to **Tools**.
3. Run the workflow. When the agent wants to click or fill, approve each row in the **Executions** pane. Once you trust the sequence, choose **Approve all remaining for this run**.
4. [Display Markdown](/nodes/extension/displaymarkdown/) shows `{{ $input.response }}`, the agent's summary of what it did.

## Common issues

* **Nothing happens on the page.** The action is waiting for your approval in the **Executions** pane, or it was rejected after 2 minutes without an answer.
* **The agent says "The user denied this action".** You (or the timeout) rejected it. Run again and approve the step.
* **"Action denied: invalid or blocked URL".** `navigate` only accepts `http` and `https` addresses on public hosts; local, private and `javascript:` or `file:` addresses are refused.
* **"Action denied: no selector was provided".** The model asked for a page action without saying which element. Ask it in the **Prompt** to name the element with a CSS selector.
* **The action runs but nothing changes.** The selector matched nothing, or the page had not finished loading. This node acts through the browser extension, so run the workflow from the extension, on the right tab.

## Related nodes

* [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/): the agent this tool plugs into.
* [HTTP Request Tool](/nodes/builtin/ai/aidependencies/tools/http-request/): let the agent call an API instead of using the page.
* [Wait For Approval](/nodes/builtin/flow/wait-for-approval/): a planned approval step you place in the flow yourself.
* [Action Approval](/concepts/ai/action-approval/): how the approval gate protects you.