Skip to main content
Agents don’t only work while you watch. Under Activity you can set up automations: an agent that runs on its own and does the work, then leaves the result (or a notification) for you.

What you can automate

  • Run an agent — invoke an agent with a set task, optionally with specific datasets and skills attached.
  • Start a conversation — create a fresh conversation and message an agent, so the work shows up as a conversation you can pick up.
  • Refresh data — keep a connected dataset up to date on a schedule.

Agent or script

An automation runs one of two ways, and Erdo picks the cheaper one that does the job:
  • Agent — an AI runs each tick, following your instructions. Use it for work that needs judgement every time: interpreting an anomaly, weighing several metrics, writing a digest someone reads.
  • Script — a deterministic check runs each tick with no AI at all. Use it for mechanical work: comparing a number to a threshold, noticing new rows, emailing a templated alert. A script costs nothing to run, so it can fire the moment data lands rather than waking an AI on a timer to look.
Both follow the same schedule, the same approval rules, and leave the same history. When you ask for “email me when a new lead comes in”, Erdo builds the script kind — it’s the same alert an agent would send, without the per-run cost.

Triggers

  • Schedule — run on a recurring cadence (e.g. every morning, every Monday).
  • Webhook — run when an external system POSTs to the automation’s URL; the payload is handed to the agent.

Refreshes pause themselves when nobody’s looking

A scheduled data refresh exists to keep something you look at fresh — a dashboard, a published page, the dataset itself. When two weeks pass without anyone viewing what a refresh feeds, Erdo pauses its schedule rather than keep spending runs on data nobody reads. The automation shows as Auto-paused under Activity, the workspace owner gets a one-time email, and nothing is deleted: the dataset, its history, and the automation’s configuration all stay exactly as they were. Resuming is automatic the moment the output matters again. Open the dashboard it feeds — or a real visitor lands on the published page — and the schedule picks back up, with the stale data refreshed right away. Turning the automation back on from Activity, or running it manually, resumes it too. Only scheduled data refreshes pause this way. Automations that act — sending alerts, archiving email, filing reports — are never paused for lack of views, because their work isn’t something you watch.

Notification emails

When an automation emails you — a new lead landed, a threshold was crossed, a weekly summary is ready — Erdo composes the message rather than the automation writing raw markup. You get the same styling as every other Erdo email: a heading, the facts as label/value rows, a button through to the page or dashboard the alert is about, and addresses and links that are clickable, so you can reply to a lead straight from the notification. Every message also carries a plain-text version, so it stays readable in a client that blocks HTML and in a forwarded copy. This holds however the alert is built. Erdo will often set an alert up as a small deterministic script — it fires the moment the data lands and costs nothing to run, unlike an agent waking on a timer to check — and those scripted alerts are styled exactly like the ones an agent sends. When the same kind of email goes out from several places — one lead alert across a handful of campaigns, say — Erdo can save it as a reusable template in your Knowledge: the layout is written once, with placeholders for the details, and each send fills in the data. Editing the template updates every automation that uses it, and the values are still escaped and given a plain-text version automatically, so a template is as safe as a one-off message.

Editing an automation

Change an automation in place without recreating it — rename it, move its schedule, pause it, or replace what it does (an agent automation’s instructions, a scripted one’s body). Its history and its place in your workspace carry over. From the terminal:
The same edit is available over the API and MCP (erdo_update_heartbeat), and in the app.

Keep an eye on things

Everything an automation does is visible under Activity:
  • Runs — the execution history, with status, timing, and any errors.
  • Feed — a live log of what’s happening across your workspace: agent runs, data refreshes, approvals, and new knowledge.

You’re still in control

Automated runs follow the same rules as interactive ones: consequential actions still go through approval, and new knowledge still lands in Review. An automation can do the work unattended without being able to act outside the bounds you’ve set. Unattended runs consume approvals rather than asking for them. Nobody is watching a 6am run, so it never raises a card — a scheduled automation that raised one per tick would fill your queue with asks about work that had already stopped waiting. Instead it looks for a standing approval covering what it is about to do, and fails the run with a message naming the action when it finds none. Grant one by running the action once in a conversation and choosing always allow, or by creating a policy against the automation directly. Sending email is one of these actions, including from a script’s own actions.invoke('erdo', 'send_email', …). If you want mail sent on arrival rather than on a schedule, prefer an arrival notification: its recipient list is the authorisation, so there is nothing separate to grant and nothing that can quietly widen.