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 uses one credit per run and no AI, so it can fire the moment data lands without waking an AI on a timer to look.
Escalating: a script that calls in an agent
Most days a check finds nothing. Refunds are normal, the pipeline moved as expected, nobody churned. Running an agent every morning to establish that is paying for judgement on the days there is nothing to judge — and picking the script instead means that on the one morning something is wrong, all you get is the threshold that tripped. You don’t have to choose. A script can hand its finding to an agent, and only on the runs where it matters:- It doesn’t wait. An agent takes minutes; the script gets the conversation it started and moves on. So the brief has to say where the agent should put its answer — email this address, write to that dataset, update that page. “Investigate the spike” with no destination produces work nobody sees.
- Put everything in one brief. A script run escalates once. If two checks trip on the same morning, describe both in the same brief rather than starting two agents.
- Approvals still apply. Escalating is not a way around the review queue — anything the agent does that would normally need approval still needs it, and a run that hits one waits there for a person. If the escalation should complete unattended, grant a standing approval for what it will do (run the action once in a conversation and choose always allow) before you rely on it.
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.When your credits run out
Automations that use AI need credits to run. When your workspace’s balance runs out, background automations start failing instead of running — and because credits are shared across the workspace, one empty balance affects every automation that needs them, not just one. You hear about it immediately, not after it has quietly failed for a day: the first failure opens a single item in your Activity feed naming the automations affected, and your workspace’s admins get one email with the same facts and a link to add credits. It’s one item and one email for the whole episode — a balance that stays empty doesn’t re-alarm on every failing run — and both clear themselves as soon as a run succeeds again after a top-up. The one thing to act on: if nobody adds credits within 24 hours, Erdo disables the failing automations so they stop burning through retries. Nothing is deleted — re-enable any of them from Activity once credits are added, and it picks up where it left off.Suggestions Erdo makes for you
While an agent works through your data it sometimes notices something worth watching every day — a metric that drifts, a table that stops filling, a spend line that only matters once it moves. Rather than arming a schedule you never asked for, it files the idea as a suggestion. Suggestions live in their own collapsed group at the top of the automations list under Activity → Automations, headed with a count so you can tell at a glance whether there is anything new. Nothing runs, nothing costs credits, and nothing sends email until you open one and say yes. Opening a suggestion shows exactly what it would do: the instructions the agent wrote, the datasets it would read, and the interval it proposes. Change any of them before you activate — what you approve is what runs, not the original draft. Activating turns the suggestion into an ordinary automation that behaves like one you created yourself, schedule and all — it appears in the list below, runs on the schedule you picked, and an agent asked later what already watches that data will find it. Dismissing removes the suggestion. If there are no suggestions, the group isn’t there.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: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 ownactions.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.
