Skip to content

Building an automation

An automation is a trigger plus a sequence of steps. The trigger decides when the run starts; the steps do the work, in order, on the canvas.

A four-step automation on the canvas: a Schedule trigger, then an AI summary, an email, and a notification.

This one runs every weekday morning — a Schedule trigger drafts a summary with AI, emails the team, and posts a notification. No one has to remember to start it.

Every automation has exactly one trigger at the top, followed by however many steps you need.

Triggers — how a run starts:

  • Manual — someone presses Run. Good for on-demand tasks and testing.
  • Schedule (Cron) — fires on a time pattern, like every weekday at 08:00.
  • Webhook — an external system POSTs to a URL and the run starts immediately.
  • Event — something inside Routario happens (a record is created, a document arrives) and the automation reacts.

Steps — what happens after it starts. Steps run in order and can do work, make decisions, loop over lists, pause for a person, wait for time to pass, or send a message. See the full reference catalog for everything available.

Each step can read the outputs of every step that ran before it, using {{ label.field }} template references. You write these directly into any step field — addresses, email bodies, conditions, anything.

A few always-available namespaces are also in scope throughout a run:

  • {{ user.firstName }}, {{ user.email }} — the person who started the run
  • {{ now.date }}, {{ now.timestamp }} — the current moment
  • {{ workspace.name }} — your workspace name

Inside a For each loop, {{ loop.item }} gives you the current element — so {{ loop.item.email }} pulls the email field off whatever record you’re iterating over.

See Template variables for the complete reference.

Here is a realistic automation: find contacts who haven’t placed an order in 90 days, ask a manager to approve an outreach campaign, then email each one.

  1. Schedule trigger. Add a Schedule (Cron) trigger set to run every Monday morning. No one has to remember to kick it off.

  2. Find the records. Add a Find records step. Filter by last-order date older than 90 days. The step outputs a list; label it silent_customers.

  3. Loop over the list. Wrap the next steps in a For each step over {{ silent_customers }}. Inside the loop, each contact is available as {{ loop.item }}.

  4. Ask for approval. Inside the loop, add an Ask a person step. Assign it to the manager and set the response type to Yes / No. The run pauses here until they answer — more on that below.

  5. Branch on the answer. Add a Branch step: if the manager said yes, continue; otherwise skip to the next loop iteration.

  6. Send the email. Add a Send email step. Set to to {{ loop.item.email }} and personalise the body with {{ loop.item.firstName }} and {{ user.firstName }} as the sender name.

Some steps park the run and resume it later. Routario saves the full run state durably — a paused run holds no thread, survives a server restart, and picks up exactly where it left off.

Ask a person pauses until someone answers. How they’re reached — inline on the canvas, via a notification, email, and more — is configurable per step. The deep dive on channels and lifecycles is in Asking a person.

Wait pauses for a duration ("3d", "2h30m"), until a specific moment, or until an event fires. It resumes automatically; you don’t have to do anything.

A run moves through these states:

  • RUNNING — steps are executing.
  • WAITING — the run is paused on an Ask or Wait step.
  • COMPLETED — all steps finished successfully.
  • FAILED — a step errored and the run could not continue.

You can see the current state, which step is active, and the full step-by-step history on the run detail page.