Alpha: at most one automation per account (signed-in or without an account). Each automation can run at most three times in total (manual, webhook, or cron). Limits may change after alpha.
Click New or Import JSON to open the full editor, or use Edit on a schedule below. (Opening from History also opens the editor.)
Give the automation a name, then choose recurring cron (UTC), a one-time run, inbound HTTP, manual run, or any mix that fits your flow.
Uses UTC. One field must not be empty — presets include * and common steps.
After you save, you get a secret URL. Hitting it (GET or POST) runs this automation — same as cron, but on demand.
In agent mode, use the task text. In replay mode, define steps in the replay section — {{variables}} below can still be substituted where the server applies them.
Replay mode uses saved Playwright-style steps instead of a free-form agent task.
JSON Schema, example object, or bullet list — added to the system prompt so the model’s answer lines up with what your webhook expects.
When a run finishes, we POST JSON to this endpoint with the result. Required to save the automation.
Experiment in the playground below, or start building pipelines right away.
Build pipelinePoint at a URL and describe your task in plain language.
Get structured JSON via HTTP polling, webhooks, or your own integration.
Describe what you want the agent to do…
Ground it in the site. If you can, paste a page URL to start from. Mentioning parts of the page (header, search box, a button label) helps the agent find the right place—only as much detail as feels natural.
Give concrete steps: what to click, what to type in which box, which result to pick, and what to do if a cookie or login wall appears.
Example structure (edit URLs and labels):
Paste a JSON Schema, a small example object, or a short bullet list of fields. It is added to the system prompt so the JSON block lines up. Stored only in this browser.
{{name}} in your task for real values each run
Optional
Up to five pairs. Example: city → Stockholm so your task can say “weather in {{city}}”. Values are substituted before the agent runs. Stored only in this browser.
We will email a reset link if an account exists for this address.
Choose a new password.
Run an agent task without WebSockets: enqueue with POST /api/agent/jobs (response 202), then poll GET /api/agent/jobs/{job_id} until status is completed or failed. List your jobs with GET /api/agent/jobs or open HTTP API jobs in the browser (requires sign-in).
Base URL for this page:
Query structured_data_only=true on GET /api/agent/jobs/{job_id} to return only the parsed JSON from the assistant reply (same split as schedule automations with Webhook payload: only structured_data) — no job envelope. While queued or running: 202 with body null. Completed: 200 with the object/array or null. Failed: 200 with null.
Protected routes use Authorization: Bearer <access_token> — same JWT as /api/auth/login or this demo after Sign in. Each job is only visible to the user who created it. Treat copied commands like passwords if they contain a real token. Step-by-step (construction) mode is only available over the WebSocket protocol.
Optional output_json_schema (string) is the same as the demo’s “Desired JSON output shape” — JSON Schema, example object, or field list — and steers the model’s fenced JSON output.
For free-navigation agent mode, set target_url to __agent__ (same as the in-app agent).
Uses the first http:// or https:// URL in your task as target_url (for site context). The full task text is sent as text. Sign in so the command includes your Bearer token, or replace
YOUR_ACCESS_TOKEN.
Then poll GET /api/agent/jobs/{job_id} (add ?structured_data_only=true for parsed JSON only, like schedule webhook “structured only”) with the same Authorization header, or open HTTP API jobs.