Agents

What agents are

An agent is a browser automation you describe in plain language instead of scripting. You give it a mission and a starting URL; it opens a real cloud browser, works through the site — navigating, filling forms, clicking, reading — and returns data that matches the output schema you defined.

The difference from a scraper is maintenance. A scraper is a list of CSS selectors that breaks when the site is redesigned. An agent reads the page it is on and works out what to do, so a moved button or a renamed field does not require a code change.

Don't see Agents in your sidebar?

Agents are rolling out gradually. If the section is not visible in your organization yet, contact support to enable it.

Anatomy of an agent

An agent is five pieces of configuration: what to do, where to start, what it knows going in, what it must bring back, and where that goes. Everything else is handled for you.

PartWhat it isExample
MissionA plain-language instruction. Write it as you would brief a colleague, including how to handle the awkward cases.“Log in with the provided credentials, open Orders, and record the current unit price for each part number.”
Start pointThe URL the agent opens first.https://portal.acme-supply.com/login
VariablesValues the mission can refer to. Either fixed literals or pulled from a flow run's extracted fields.part_number
CapturesThe typed schema of what you want back. The agent's answer is validated against it, so the output is always structured.unit_price
DeliveryWhere the captured output goes when the run finishes.Email, webhook, or a Bucket row
The mission is the product

Nearly every disappointing agent run traces back to a vague mission. Name the exact buttons and page titles, say what to do when a lookup returns nothing, and say when to stop. A mission that reads like a runbook works; one that reads like a wish does not.

Output captures: the schema the agent must fill

Captures declare the shape of the result. Each one has a name and a type, and nested structures are supported, so an agent can return a list of objects rather than a blob of text you have to parse afterwards.

Capture typeReturnsUse it for
TextA stringNames, statuses, reference numbers, free text
NumberA decimalPrices, quantities, rates
IntegerA whole numberCounts, stock levels
BooleanTrue or falseIn stock, approved, exists
DateA date as textDelivery dates, expiry dates
ObjectA nested group of fieldsOne record with several attributes
ListA repeating structureA table of results — one entry per row
FileA downloaded fileInvoices, statements or reports the agent has to fetch
Partial results are kept, not discarded

Every capture is optional. If the agent finds four of five values, the run returns the four it found rather than failing outright — you keep the partial result and can see exactly what is missing.

Chaining a flow to an agent

The strongest setup is extract, then act. A flow pulls fields out of a document, and the agent uses those fields as its inputs — so the document you received drives what happens on someone else's website, with no copying by hand.

  1. 1Open the flow's settings.
  2. 2Link the agent to the flow.
  3. 3Map extracted fields onto the agent's input variables.
  4. 4Run the flow — when extraction completes, the agent takes over automatically.

Variables come from one of two places, and you can mix them in a single agent:

Variable sourceWhere the value comes from
StaticA fixed value stored on the agent — a portal username, a fixed warehouse code.
From a flow runA field from the triggering run's output. If the flow has a Cleaner, the value is taken from the cleaned output — so conversions and computed columns are already applied.

Worked example. A purchase order arrives by email. The flow extracts one row per line item with a part number. A Cleaner normalises the part numbers. The linked agent then logs into the supplier portal, looks up each part, captures the live unit price and lead time, and writes the results into a Bucket next to what the PO said — so the discrepancy is visible before anyone approves the order.

Downloading files

Give an agent a file-typed capture and it can fetch documents as well as read them — a statement behind a login, an invoice PDF from a portal. Files are collected during the run and stored when it finishes, then delivered as time-limited links.

LimitValue
Largest single file25 MB
Total files per run100 MB
How files reach youA link in the delivered output, valid for a limited period

Exceeding a limit does not kill the run — the agent is told the file was too large and carries on with the rest of the mission.

Watching a run

Every agent run streams its steps as they happen, and you can open a live view of the browser session to watch it work. Finished runs keep a replay, so you can see exactly what the agent did rather than inferring it from the output.

  • A step-by-step log of what the agent did, in order
  • The captured output, and any captured files
  • Run metrics: duration and credits used
  • A live session while the run is in progress, and a replay afterwards
  • Run and session identifiers, for support requests
Debug from the replay, not the output

When an agent returns the wrong value, the replay usually shows why in seconds — it logged into the wrong tenant, or the search returned no results and it guessed. Fix the mission, not the schema.

Limits and credits

Agent runs are bounded so a mission that goes wrong cannot run forever. Two limits apply — a maximum runtime and a cap on how many steps the agent may take — and both can be tightened per agent.

LimitDefaultWhat happens when it is hit
Maximum runtime10 minutesThe run is stopped and marked failed.
Step cap25 stepsThe agent stops taking actions; the run ends without a complete result.
Cost3 credits per minuteWall-clock time is rounded up to the next whole minute, with a one-minute minimum.

Runtime is billed whether the run succeeds or fails. A mission that loops until it hits the ten-minute ceiling still costs the full ten minutes. Set a shorter maximum runtime on agents you are still tuning, and test with a low limit before raising it.

Starting a run requires a positive credit balance. The exact cost is not known in advance — it depends how long the browsing takes — so Tavnit checks that you have credits before it starts and charges the actual minutes when the run ends.

Where results go

An agent's captured output can be delivered three ways, or left in the app for you to read. Delivery happens once the run completes, and file captures are turned into fetchable links first.

DeliveryWhat arrives
EmailThe captured output as formatted JSON, to the addresses you configure.
WebhookA POST to your endpoint with the agent, the run, its status and the captured output — see webhooks.
BucketOne row per run in a Bucket, with captures mapped onto columns.
NoneThe result stays on the run's page in the app.

Delivery can optionally include the input variables the run was given, which makes a Bucket row self-describing: what was asked, and what came back.

Permissions and lifecycle

Creating, editing and deleting agents is restricted to Owners and Admins; members with a suitable role can trigger runs. Agents can be deactivated instead of deleted, and an agent that is wired into an active flow cannot be deleted at all.

  • Only Owners and Admins can create, edit or delete an agent
  • An inactive agent cannot be run
  • An agent linked to an active flow must be unlinked before it can be deleted
  • Runs can also be started from an AI assistant via the MCP connector, or from a linked flow
Triggering from your own code

Agents are designed to be triggered from the app, from a linked flow, or from an AI assistant. If you need to start one from your own system, the agent's ID is on its detail page — but the practical route for most integrations is to trigger the flow and let the chained agent follow, rather than calling the agent directly.