Skip to main content
Glama

WebRun Browser Automation

Create scheduled agent

create_agent

Create a scheduled agent — a recurring or one-time automation that runs on a timer in a real Chrome browser. Two modes. WORKFLOW MODE: pass workflowId plus a schedule — the platform copies everything else (prompt, starting URL, output contract, model, proxy, policy, files) from the workflow and bakes your variables into the prompt; results and memory stay centralised on the workflow. STANDALONE MODE: omit workflowId and provide name, prompt (a Goal / Ground rules / Stages / Output browsing runbook — see the prompt field description), and a schedule; the connection's environment is used automatically. Ask the user only what it should do and when it should run, in plain language — pick sensible defaults for everything else and state them; never ask about environments or technical settings. Results are delivered to your connected chat and appear in session history.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoAgent name. Required standalone; defaults to the workflow title in workflow mode.
proxyNoSTANDALONE MODE (workflow mode inherits the workflow proxy instead): Proxy for runs. {source:"WebRun", country?} or {source:"custom", type:"http"|"socks", host, port, username?, password?}. Custom passwords are encrypted at rest and never returned. Social/messaging workflows (WhatsApp, Telegram, Instagram, Facebook, X, LinkedIn, TikTok): set country to the country the user is in right now — recommend it and confirm the country with them first; a mismatch is the usual cause of refused logins and sessions that log out repeatedly, and a scheduled workflow re-hits it every run, so keep the country stable once set.
memoryNoSTANDALONE MODE: the agent's private notebook, shown to it every run and updated automatically after each run. Seed ONLY durable facts the next run must know (target descriptions, preferences, known state) — one short line each. Task steps belong in prompt, not here. Usually best left empty.
promptNoSTANDALONE MODE (required there): The task the browser agent runs, written as a BROWSING RUNBOOK. Structure it as: `Goal:` — one sentence naming the outcome. `Ground rules (every stage, every turn):` — bullet invariants when the task needs them, e.g. work one item at a time — never batch; only record a figure you can read on screen this turn — if it is not shown record it as "not stated", never estimate; keep a running tally and restate it every turn ("captured C items · written R rows"). Then `Stage N — <Site name> (<https://url>)` — one section per website or phase, listing the concrete steps to take in the browser (open/navigate, click, read, capture, compare, flag) in the order a person would do them, each stage ending with `Done when: <verifiable completion condition>`. Finish with `Output —` stating exactly what to produce or deliver once the final tally is met, including what to say when there is no data (never fabricate a row). When a stage delivers per-recipient (message/email each customer), state the MATCHING RULE in that stage — the identifier shared by the source record and the destination recipient (e.g. the customer name exactly as written in the source, matched against the contact name) — and the no-match branch: skip it and report it, never deliver to a similarly-named near-match. Write the user's CONCRETE values (group names, URLs, numbers) directly into the text; use {{variables}} ONLY when the user explicitly wants a reusable template whose inputs change per run. A short single-site task can be just a Goal plus its steps. PURE TASK ONLY — never write memory bookkeeping into the prompt (no "check memory", "record in memory", "store in memory" steps): tracking is authored in memoryContract and WebRun applies it to every run automatically.
scheduleYesWhen the agent fires. Required.
expiresAtNoISO 8601 date-time after which the agent auto-pauses (recurring schedules).
variablesNoWORKFLOW MODE, and only when the workflow's prompt actually contains {{variables}}: values for them, BAKED IN at deploy and reused every run (stored variableValues defaults fill gaps). Every template variable must be covered — an unattended agent cannot ask later. Workflows with concrete prompts need nothing here.
outputTypeNoSTANDALONE MODE: output contract (same rules as create_workflow).
workflowIdNoWORKFLOW MODE: 24-hex id of the workflow to deploy (from list_workflows). The prompt, starting URL, output contract, model, proxy, policy, and files are all copied from it.
startingUrlNoSTANDALONE MODE: page Chrome opens at the start of each run.
outputSchemaNoSTANDALONE MODE: JSON Schema object (structured) or column-name array (structured_csv).
environmentIdNoSTANDALONE MODE, rarely needed — OMIT it: the connection-bound environment (or your only one) is applied automatically; never ask the user to choose. Workflow mode always uses the workflow's deployed environment.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYes
nameYes
notesNo
agentIdYes
successYes
scheduleNoHumanized schedule
timezoneNo
workflowNoPresent in workflow mode: the workflow this agent was deployed from
nextRunAtNoISO 8601 timestamp of the first fire

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / proxy
      Added value: +{
      +  "description": "STANDALONE MODE (workflow mode inherits the workflow proxy instead): Proxy for runs. {source:\"WebRun\", country?} or {source:\"custom\", type:\"http\"|\"socks\", host, port, username?, password?}. Custom passwords are encrypted at rest and never returned. Social/messaging workflows (WhatsApp, Telegram, Instagram, Facebook, X, LinkedIn, TikTok): set country to the country the user is in right now — recommend it and confirm the country with them first; a mismatch is the usual cause of refused logins and sessions that log out repeatedly, and a scheduled workflow re-hits it every run, so keep the country stable once set.",
      +  "properties": {
      +    "country": {
      +      "description": "2-letter ISO code or \"random\" (WebRun).",
      +      "type": "string"
      +    },
      +    "host": {
      +      "type": "string"
      +    },
      +    "level": {
      +      "enum": [
      +        "system",
      +        "chrome"
      +      ],
      +      "type": "string"
      +    },
      +    "password": {
      +      "type": "string"
      +    },
      +    "port": {
      +      "type": "number"
      +    },
      +    "source": {
      +      "enum": [
      +        "WebRun",
      +        "custom"
      +      ],
      +      "type": "string"
      +    },
      +    "type": {
      +      "enum": [
      +        "http",
      +        "socks"
      +      ],
      +      "type": "string"
      +    },
      +    "username": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / prompt / description
      Previous value: -"STANDALONE MODE (required there): The task the browser agent runs, written as a BROWSING RUNBOOK. Structure it as: `Goal:` — one sentence naming the outcome. `Ground rules (every stage, every turn):` — bullet invariants when the task needs them, e.g. work one item at a time — never batch; only record a figure you can read on screen this turn — if it is not shown record it as \"not stated\", never estimate; keep a running tally and restate it every turn (\"captured C items · written R rows\"). Then `Stage N — <Site name> (<https://url>)` — one section per website or phase, listing the concrete steps to take in the browser (open/navigate, click, read, capture, compare, flag) in the order a person would do them, each stage ending with `Done when: <verifiable completion condition>`. Finish with `Output —` stating exactly what to produce or deliver once the final tally is met, including what to say when there is no data (never fabricate a row). When a stage delivers per-recipient (message/email each customer), state the MATCHING RULE in that stage — the identifier shared by the source record and the destination recipient (e.g. the customer name exactly as written in the source, matched against the contact name) — and the no-match branch: skip it and report it, never deliver to a similarly-named near-match. Write the user's CONCRETE values (group names, URLs, numbers) directly into the text; use {{variables}} ONLY when the user explicitly wants a reusable template whose inputs change per run. A short single-site task can be just a Goal plus its steps. PURE TASK ONLY — never write memory bookkeeping into the prompt (no \"check memory\", \"record in memory\", \"store in memory\" steps): tracking is authored in memoryContract (and the job-list flags) and WebRun injects it into every run automatically."New value: +"STANDALONE MODE (required there): The task the browser agent runs, written as a BROWSING RUNBOOK. Structure it as: `Goal:` — one sentence naming the outcome. `Ground rules (every stage, every turn):` — bullet invariants when the task needs them, e.g. work one item at a time — never batch; only record a figure you can read on screen this turn — if it is not shown record it as \"not stated\", never estimate; keep a running tally and restate it every turn (\"captured C items · written R rows\"). Then `Stage N — <Site name> (<https://url>)` — one section per website or phase, listing the concrete steps to take in the browser (open/navigate, click, read, capture, compare, flag) in the order a person would do them, each stage ending with `Done when: <verifiable completion condition>`. Finish with `Output —` stating exactly what to produce or deliver once the final tally is met, including what to say when there is no data (never fabricate a row). When a stage delivers per-recipient (message/email each customer), state the MATCHING RULE in that stage — the identifier shared by the source record and the destination recipient (e.g. the customer name exactly as written in the source, matched against the contact name) — and the no-match branch: skip it and report it, never deliver to a similarly-named near-match. Write the user's CONCRETE values (group names, URLs, numbers) directly into the text; use {{variables}} ONLY when the user explicitly wants a reusable template whose inputs change per run. A short single-site task can be just a Goal plus its steps. PURE TASK ONLY — never write memory bookkeeping into the prompt (no \"check memory\", \"record in memory\", \"store in memory\" steps): tracking is authored in memoryContract and WebRun applies it to every run automatically."
  3. Changed1 schema field changed
    • changedInput schema / properties / prompt / description
      Previous value: -"STANDALONE MODE (required there): The task the browser agent runs, written as a BROWSING RUNBOOK. Structure it as: `Goal:` — one sentence naming the outcome. `Ground rules (every stage, every turn):` — bullet invariants when the task needs them, e.g. work one item at a time — never batch; only record a figure you can read on screen this turn — if it is not shown record it as \"not stated\", never estimate; keep a running tally and restate it every turn (\"captured C items · written R rows\"). Then `Stage N — <Site name> (<https://url>)` — one section per website or phase, listing the concrete steps to take in the browser (open/navigate, click, read, capture, compare, flag) in the order a person would do them, each stage ending with `Done when: <verifiable completion condition>`. Finish with `Output —` stating exactly what to produce or deliver once the final tally is met, including what to say when there is no data (never fabricate a row). Write the user's CONCRETE values (group names, URLs, numbers) directly into the text; use {{variables}} ONLY when the user explicitly wants a reusable template whose inputs change per run. A short single-site task can be just a Goal plus its steps. PURE TASK ONLY — never write memory bookkeeping into the prompt (no \"check memory\", \"record in memory\", \"store in memory\" steps): tracking is authored in memoryContract (and the job-list flags) and WebRun injects it into every run automatically."New value: +"STANDALONE MODE (required there): The task the browser agent runs, written as a BROWSING RUNBOOK. Structure it as: `Goal:` — one sentence naming the outcome. `Ground rules (every stage, every turn):` — bullet invariants when the task needs them, e.g. work one item at a time — never batch; only record a figure you can read on screen this turn — if it is not shown record it as \"not stated\", never estimate; keep a running tally and restate it every turn (\"captured C items · written R rows\"). Then `Stage N — <Site name> (<https://url>)` — one section per website or phase, listing the concrete steps to take in the browser (open/navigate, click, read, capture, compare, flag) in the order a person would do them, each stage ending with `Done when: <verifiable completion condition>`. Finish with `Output —` stating exactly what to produce or deliver once the final tally is met, including what to say when there is no data (never fabricate a row). When a stage delivers per-recipient (message/email each customer), state the MATCHING RULE in that stage — the identifier shared by the source record and the destination recipient (e.g. the customer name exactly as written in the source, matched against the contact name) — and the no-match branch: skip it and report it, never deliver to a similarly-named near-match. Write the user's CONCRETE values (group names, URLs, numbers) directly into the text; use {{variables}} ONLY when the user explicitly wants a reusable template whose inputs change per run. A short single-site task can be just a Goal plus its steps. PURE TASK ONLY — never write memory bookkeeping into the prompt (no \"check memory\", \"record in memory\", \"store in memory\" steps): tracking is authored in memoryContract (and the job-list flags) and WebRun injects it into every run automatically."
  4. Changed4 schema fields changed
    • changedInput schema / properties / environmentId / description
      Previous value: -"STANDALONE MODE: environment to run in. Omit to use the connection-bound environment (or your only one). Workflow mode always uses the workflow's deployed environment."New value: +"STANDALONE MODE, rarely needed — OMIT it: the connection-bound environment (or your only one) is applied automatically; never ask the user to choose. Workflow mode always uses the workflow's deployed environment."
    • changedInput schema / properties / memory / description
      Previous value: -"STANDALONE MODE: seed for the agent's persistent memory (carried across runs)."New value: +"STANDALONE MODE: the agent's private notebook, shown to it every run and updated automatically after each run. Seed ONLY durable facts the next run must know (target descriptions, preferences, known state) — one short line each. Task steps belong in prompt, not here. Usually best left empty."
    • changedInput schema / properties / prompt / description
      Previous value: -"STANDALONE MODE (required there): The task the browser agent runs, written as a BROWSING RUNBOOK. Structure it as: `Goal:` — one sentence naming the outcome. `Ground rules (every stage, every turn):` — bullet invariants when the task needs them, e.g. work one item at a time — never batch; only record a figure you can read on screen this turn — if it is not shown record it as \"not stated\", never estimate; keep a running tally and restate it every turn (\"captured C items · written R rows\"). Then `Stage N — <Site name> (<https://url>)` — one section per website or phase, listing the concrete steps to take in the browser (open/navigate, click, read, capture, compare, flag) in the order a person would do them, each stage ending with `Done when: <verifiable completion condition>`. Finish with `Output —` stating exactly what to produce or deliver once the final tally is met, including what to say when there is no data (never fabricate a row). Use {{variables}} for per-run values. A short single-site task can be just a Goal plus its steps. PURE TASK ONLY — never put memory/dedup instructions here; those belong in memoryContract (the policy channel)."New value: +"STANDALONE MODE (required there): The task the browser agent runs, written as a BROWSING RUNBOOK. Structure it as: `Goal:` — one sentence naming the outcome. `Ground rules (every stage, every turn):` — bullet invariants when the task needs them, e.g. work one item at a time — never batch; only record a figure you can read on screen this turn — if it is not shown record it as \"not stated\", never estimate; keep a running tally and restate it every turn (\"captured C items · written R rows\"). Then `Stage N — <Site name> (<https://url>)` — one section per website or phase, listing the concrete steps to take in the browser (open/navigate, click, read, capture, compare, flag) in the order a person would do them, each stage ending with `Done when: <verifiable completion condition>`. Finish with `Output —` stating exactly what to produce or deliver once the final tally is met, including what to say when there is no data (never fabricate a row). Write the user's CONCRETE values (group names, URLs, numbers) directly into the text; use {{variables}} ONLY when the user explicitly wants a reusable template whose inputs change per run. A short single-site task can be just a Goal plus its steps. PURE TASK ONLY — never write memory bookkeeping into the prompt (no \"check memory\", \"record in memory\", \"store in memory\" steps): tracking is authored in memoryContract (and the job-list flags) and WebRun injects it into every run automatically."
    • changedInput schema / properties / variables / description
      Previous value: -"WORKFLOW MODE: values for the workflow's {{variables}}, BAKED IN at deploy and reused every run (stored variableValues defaults fill gaps). Every template variable must be covered — an unattended agent cannot ask later."New value: +"WORKFLOW MODE, and only when the workflow's prompt actually contains {{variables}}: values for them, BAKED IN at deploy and reused every run (stored variableValues defaults fill gaps). Every template variable must be covered — an unattended agent cannot ask later. Workflows with concrete prompts need nothing here."
  5. Added

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses significant behavioral traits beyond the annotations: the platform copies workflow settings, bakes variables into the prompt, results are delivered to the connected chat and session history, memory is automatically updated, and the schedule timezone also drives the browser session. It also warns about proxy country mismatch causing login issues. These details are not present in the annotations and greatly enhance understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured, with clear sections for modes and parameter-specific guidance. Every sentence contributes value, and the organization makes the complexity navigable. It is appropriately detailed for a tool this complex, though a slightly more compact format could be imagined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, nested objects, two modes), the description is remarkably complete. It covers the core behavior, user interaction guidelines, prompt construction, proxy nuances, memory rules, and output delivery. The presence of an output schema and comprehensive parameter descriptions further bolster completeness. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema_description_coverage is 100%, the description adds substantial meaning beyond the schema. For example, it explains how to structure a prompt as a browsing runbook (Goal, Ground rules, Stages, Output), provides rules for memory seeding, clarifies proxy modes and country recommendations, and specifies when variables are required. This goes far beyond what the schema descriptions offer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a scheduled agent, a recurring or one-time automation running in a real Chrome browser. It explicitly distinguishes two modes (workflow mode and standalone mode), which differentiates it from sibling tools like create_workflow and list_agents. The verb and resource are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use each mode: use workflowId to deploy a workflow, or omit it for standalone. It also instructs the agent on how to interact with the user ('Ask the user only what it should do and when it should run'), what to avoid (never ask about environments or technical settings), and even details proxy country recommendations for social/messaging workflows. This is comprehensive and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources