Automations
An automation is a job that runs without you: it reads from your tools, decides what to do, and writes back. You get one by doing the task once while Claritty watches, or by describing it. Nothing it writes goes out until you have seen it.
The path from a task to a live automation
Every automation goes through this once. The two ends are the interesting parts. The start is how Claritty learns the task, and the dry run is the gate that keeps a first run from mailing forty people.
Two ways to start
Record it
Install the Chrome extension and do the task once, in the real tools, at normal speed. Claritty records the pages you opened, the fields you read, and the actions you took, then works backwards to the rule you were following. Recording is the better option when the task lives in a web app whose data you cannot easily describe, like an internal admin page or a billing console.
Describe it
Type what you do in plain words. This works when the task is mostly about services Claritty already connects, for example “every weekday at 9, find invoices more than 30 days overdue in QuickBooks and email each vendor a reminder”.
Either way Claritty asks a short set of clarifying questions before it builds anything. They are the questions whose answers change the automation: which account, how far back to look, what counts as done. Answer them in your own words.
Nothing writes until you approve it
The first time an automation runs it runs dry. It does all the reading and all the deciding, and then stops and holds every write it wanted to make. You see the actual email, the actual Slack message, the actual row, and you approve, reject, or ask for changes in a sentence.
- 1Approve, and the held writes go out as they are.
- 2Reject, and nothing is sent. The run is closed.
- 3Request changes, and you say what was wrong in your own words. The automation is revised and dry-run again.
Approvals can also come to Slack, so the person who signs off does not need to be the person who built it. The approval message names the tool in plain words, so a reviewer sees “Publish a LinkedIn post” rather than linkedin.create_post.
What sets it off
An automation has three ways to start, and all three are set up from its page.
| Trigger | Use it when | What you get |
|---|---|---|
| Schedule | The task happens on a cadence. | Once, daily, weekly, monthly or on an interval, in your timezone. |
| Webhook | Another system should start it. | A URL to POST to, and signed requests if you turn them on. |
| MCP | You want to run it from an AI client or an agent. | A key scoped to automations:read and automations:run. Approving is a separate scope, automations:approve, and is never granted by default. |
Doing something to every row
A step can fan out over a list from an earlier step. This is how “find the overdue invoices and email each vendor” becomes one automation instead of one per vendor.
steps:
- id: n1
tool: vision.read
mode: read
input: { url: "https://billing.example/invoices?status=overdue" }
- id: n2
tool: gmail.send
mode: write
forEach: "${steps.n1.output.items}"
as: invoice
maxIterations: 50
input:
to: "${invoice.vendorEmail}"
subject: "Overdue invoice"forEach must be a reference to a list, written ${steps.n1.output.items}. A bare word is rejected when the manifest loads rather than quietly looping once.
maxIterations defaults to 50 and caps at 1000. A list longer than the cap is truncated, and the run reports the truncation. Read that line: a shortened loop otherwise looks like a run that finished.Runs, receipts and cost
Every run keeps a record of what it read, what it decided, and what it wrote, with the model cost for that run. Per-run cost is usually well under a cent, so it is shown to four decimal places rather than rounded to $0.00.
The hours-saved figure on the automations page counts successful runs only. A run that failed did not save anyone any time, and counting it would make the number worth less than nothing.
What stops one going live
| You see | What it means |
|---|---|
| Missing accounts | The automation needs a service you have not connected. It will not be scheduled until you connect it, rather than being scheduled and failing every morning. |
| Nothing starts this automation | It has no schedule, no webhook and no MCP key. Add one from its page. |
| A run stuck on unknown | Claritty waits up to 55 seconds for a result while a run may take up to 5 minutes. Unknown means it stopped watching, not that the run failed. The page reconciles when the run reports in. |
Changing one that already exists
Open the automation and say what should be different. Claritty rebuilds it and dry-runs the new version, so a change goes through the same gate as the first build. Deactivating an automation stops its scheduled work and keeps its history. Deleting removes it and its recording.