Skip to content

Workflows and automations

Two building blocks turn one-off analysis into recurring, dependable work: a workflow defines what to do, and an automation defines when to do it.

A workflow is a named, parameterized, re-runnable Python job that Ronja writes for you during an exploration in Build mode. Instead of redoing an analysis by hand every month, you ask Ronja to turn it into a workflow once — then it can be re-run on demand, filling in parameters (a date range, a region, a customer) at run time. Running a shared workflow needs a Data Admin — or membership in a workspace whose members have admin rights; private workflows are run by their owner.

Most workflows declare a kind that describes their primary output:

  • Function — computes and returns a value.
  • Pipeline — reads tables and writes tables.
  • Report — produces a formatted document (HTML, PDF, and more).

A workflow’s page shows what it reads (Inputs), what it writes (Writes to), its files, and its run history. Every run is recorded with a status — Running, Success, Warnings, or Failed — plus logs and output, so “what happened last night?” always has an answer. Edits to shared workflows go through drafts and review.

An automation pairs one trigger with one action. The trigger decides when it fires:

  • Schedule — on a cadence you set (at most once per hour).
  • Email — when a matching email arrives at the automation’s private address.
  • Webhook — when an external system posts JSON to the automation’s receiver URL.
  • Table — when a watched table finishes rebuilding.

The action decides what runs: a workflow (deterministic — the same job on its stored parameters every time) or a Saved Agent (a reusable agent that reasons about the incoming email, payload, or table build). Email and webhook triggers always run a Saved Agent — only a Saved Agent can reason about an arbitrary inbound message or payload; schedules run either, and table triggers run a workflow or a Saved Agent.

Automations live on the Automations page — a list and a timeline of past and upcoming runs, with health indicators and per-automation run history. Like workflows, they’re created by asking Ronja in an exploration; the page’s own empty state suggests exactly that: “Schedule a daily revenue summary every morning at 9 AM”.

The Automations page listing automations with their schedules and next runs The Automations page: each row pairs a trigger with the workflow or Saved Agent it runs.

The classic pattern: Ronja builds a workflow during an exploration (“create a workflow that calculates monthly churn”), you test-run it together and commit it — then ask her to add an automation that runs it every morning. From then on the work happens on its own. Failed runs can notify admins (the “Automation run failed” notification), and every run produces an execution trace you can inspect step by step (traces are kept for about 30 days) — see Monitor runs and traces.

  • Repeat the same job on demand, with parameters → a workflow.
  • Run something without anyone asking — on a schedule or in response to an event → an automation that runs a workflow or a Saved Agent.

Step-by-step guides: Create a workflow and Schedule an automation. Trigger details live in Automation triggers; the one-paragraph comparison is in What’s the difference?.