Automations
Schedule agent tasks and event triggers that run without you watching
Automations
An automation runs a multi-agent chat turn for you on a schedule or when an event fires. Think of it as a saved prompt with a trigger: a recurring competitor brief, a daily inbox digest, a weekly report — the automation runs the agent task and the result lands in the workspace (and notifies you) without a person in the loop.
What you get
- Steps that run agent tasks — the built-in
agent_taskaction executes a multi_agent_chat turn from each step, with the same tools, connectors, and permissions as a chat. - Schedule triggers — preset recurrence (daily/weekly/...) or a raw cron expression, evaluated in the automation's timezone.
- Event triggers — subscribe to the domain event bus and fire when a published event matches your JSON filter.
- Runs and per-step results — every execution is persisted with status, step-level results, and a run history you can inspect from the automation detail page.
- Unattended mode — run without a user present, so approval-required steps either run or are skipped according to the workspace policy.
- Create from chat — the main agent has a
create_automationtool that drafts the automation from a plain-English intent, shows a HITL approval card, and persists it once you approve or edit the draft.
Permissions
Automations are workspace-scoped and gated by the AUTOMATIONS_READ,
AUTOMATIONS_CREATE, AUTOMATIONS_UPDATE, and AUTOMATIONS_DELETE
permissions. Members without them don't see the section or the runs.
How to enable
Automations ship with the product — there is no feature flag to turn on.
They rely on the normal background infrastructure: Redis (the Celery broker)
and celery_beat, which are part of both the Docker Compose stack and the
manual installation.
Where in the UI
- Workspace sidebar → Automations (
/dashboard/<workspace_id>/automations) — list, status, triggers summary, and per-row actions. - New / Edit automation (
.../automations/new,.../automations/<id>/edit) — the builder: basics, schedule (preset or cron), tasks, model fields, JSON mode, unattended toggle. - Automation detail (
.../automations/<id>) — definition, triggers, runs, run details with plan steps and step results.
Related references
- Backend:
surfsense_backend/app/automations/(API, dispatch, persistence, built-inagent_taskaction). - Chat tool:
create_automationin the main agent's tools. - PRs and tests: the feature arrived with the upstream sync (#114 / #115); frontend coverage and regression passes: #1090, #676.
Automations are not yet exposed as an API for third parties — use the workspace
UI or the create_automation chat tool.