Routines Routines

16 / Flows

An AI agent workflow builder built from the routines you already have.

You wake up and the work is done in order. Your analytics check ran, the page analysis ran on its numbers, the decision ran on that, and the draft only got written because one page was actually losing traffic. Flows chain the scheduled AI routines you already trust into one graph with its own daily schedule, an AI agent workflow builder that lives on your Mac rather than on someone else’s servers.

The canvas

Drag in a routine. Connect it. That is the build.

The palette on the left is your own routine list. Drop one on the canvas, drag from one port to the next, and you have a chain. Click a connection to give it a condition, click a step to open that routine. After a run the canvas paints itself with what happened: what finished, how long it took, what stopped for approval, what was skipped.

The AI agent workflow builder canvas in the Routines macOS app showing a five-step flow: Website Analytics Check, Page-Level Analysis, Content Gap Decision, Draft Article and Publish Article, with a condition on the connection into Draft Article.

Real app · your routines as steps · runs on this Mac only

One flow, start to finish

Analytics in. An article out, only if it is warranted.

This is an agentic workflow in practice, the flow in the screenshots above, on its 8 AM schedule. Five routines you already own, one condition, and a run that stopped exactly where it should have.

  1. 01

    Website Analytics Check

    Your existing analytics routine runs first, at the flow’s scheduled time. It pulls the numbers it always pulls, with the connectors and the prompt you already tuned.

    Done · 4.2s

  2. 02

    Page-Level Analysis

    The next routine does not start from nothing. It gets the first routine’s result handed into its prompt, so it goes straight to which pages moved and by how much.

    Done · 11.8s

  3. 03

    Content Gap Decision

    A third routine reads that analysis and writes the call: which page is slipping, what is missing from it, what should be written. Still your routine, still your prompt.

    Done · 6.4s

  4. 04

    The condition on the way out

    On the connection into the next step you typed: “Only if at least one page is losing organic traffic.” Before drafting anything, a small model call reads the decision above and answers that one question.

    Condition met — continued

  5. 05

    Draft Article

    Because the check came back met, the drafting routine runs, working from the result of Content Gap Decision. In this run it queued its actions for your approval, so nothing was sent yet.

    Waiting for your approval · 28.6s

  6. 06

    Publish Article

    The last step never ran, and the replay says so plainly rather than pretending. Skipped, with no duration, because the step before it stopped to ask you first.

    Skipped

Conditions

The branch is a sentence, not an expression.

Click the connection and type when the next step is allowed to run. “Only if at least one page is losing organic traffic.” The check reads the first ~12,000 characters of the previous step’s result, so keep the question about something that shows up near the top of it.

Editing a flow connection in Routines by typing a plain-English condition, “Only if at least one page is losing organic traffic”, with a setting for what happens when the check cannot decide.

Type it in English · set the undecided policy · save

Being straight about the check

It is a model call. Sometimes it cannot tell.

A condition is not a rule engine and we are not going to pretend it is. A small model reads the previous result and answers your question, which means it can be met, not met, or genuinely undecided. So the flow shows you all three, and lets you decide per connection what undecided should do.

Condition met

The next step runs, and the run records the verdict plus the model’s one-sentence reason, so you can see what it keyed on.

Not met

Everything downstream is skipped and marked Skipped. No half-finished draft, no silent failure, no email you did not want sent.

Could not tell

Your call, on this connection. Tick “If the check can’t decide, stop here” for the steps you would rather do by hand, and leave it off where continuing is harmless.

Routines explaining why a flow step ran: the plain-language condition “Only if at least one page is losing organic traffic”, the verdict “Condition met — continued”, and the model’s one-sentence reason naming the page that lost 32% of its organic clicks.

Verdict · reason · what it worked from · what the checks cost

Run replay

Watch last night’s run back, step by step.

Pick a dated run and scrub through it on the same canvas you built. Three done, none failed, two skipped, and $0.0021 in condition checks. Every step carries its status and its duration, so “why is there no article this morning” takes one look instead of an investigation.

A past run of a Routines flow replayed step by step: three steps done, one waiting for approval, one skipped, with each step’s duration and the total cost of the condition checks.

Per-step status · duration · check cost · kept on your disk

How a flow actually behaves. Including the parts that constrain you.

01

Nodes are your routines, not copies

Each step points at a routine that already exists. The same routine can sit in several flows, and clicking it on the canvas opens the real thing. Edit it once and every flow using it changes.

02

Every routine keeps its own trigger

Adding a routine to a flow does not take its schedule away. Your 8 AM analytics check still runs at 8 AM on its own, and still runs as step one of the chain.

03

The flow owns its own schedule

Every flow gets its own daily schedule, separate from the ones its steps keep. Turn the flow on and the whole chain runs from the top without you opening the app.

04

Outputs travel down the wire

A connection is not just an arrow. The upstream routine’s result is handed into the downstream routine’s prompt, which is why step two can start where step one finished.

05

A Steps list, not only a canvas

Every flow has a Steps view that shows the same chain, order, connections, conditions, and last run, as a list you can read and navigate from the keyboard.

06

No undo, so no drift

There is no undo on the canvas. Every change saves the moment you make it, which means what you are looking at is exactly what will run tonight.

07

It runs on this Mac

Flows run on this Mac only. They are not synced to your other devices. The graph, the schedule, and the run history sit on your disk, and when a step calls a model that request goes from your Mac straight to your provider on your own key.

Not another node editor

You are not wiring API blocks. You are chaining your own agents.

n8n, Zapier, and Make hand you an empty canvas and a thousand integrations to configure. Flows hands you the routines that already read your inbox, your calendar, and your notes, and asks which order you want them in.

What a block is
Generic builders A generic API call you configure: endpoint, auth, payload, field mapping.
Routines Flows A routine you already run, with its prompt, its connectors, and its memory attached.
What it knows about you
Generic builders Nothing, until you wire the data in by hand.
Routines Flows Your calendar, your inbox, your notes, because the routine was already reading them.
How a branch is written
Generic builders An expression or a filter node, in a syntax you have to learn.
Routines Flows One sentence in plain English on the connection itself.
Where it runs
Generic builders On someone else’s servers, on a task quota.
Routines Flows On your Mac, on the flow’s own daily schedule, with no run limits to buy.

The connectors those routines use are the same ones you already set up in Connectors, reading from the local memory on your disk.

AI agent workflow builder questions, answered.

What is an AI agent workflow?

An AI agent workflow is a chain of AI steps where one step’s output becomes the next step’s input, and the whole chain runs on a schedule instead of waiting for you to press a button. In Routines each step is one of your existing routines, so the chain inherits the prompts, connectors, and memory those routines already use.

What is a multi-agent workflow?

A multi-agent workflow splits a job across several agents, each with its own instructions, and passes the result along the chain. A flow is exactly that: one routine gathers the data, another interprets it, another decides, another writes. Each one is a separate routine with its own prompt, so you can fix one without touching the rest.

How are AI agents used in workflow automation?

Two ways. They do the work inside a step, like reading your analytics or drafting the article. And they decide whether the next step should run at all: a condition on a connection is a small model call that reads the previous step’s result and answers the plain-English question you typed.

How is this different from n8n or Zapier?

In n8n, Zapier, or Make you wire generic API blocks together, so you own the endpoints, the auth, and the field mapping. In Flows you are chaining your own AI routines, which already have your context, your connectors, and your memory. There is nothing to map, and the branch logic is a sentence rather than an expression.

Does an AI agent workflow run in the cloud?

This one does not. The graph, the schedule, and the run history live on your Mac, and the schedule fires locally. When a step calls a model, that request goes from your Mac straight to your provider using your own key.

Do flows sync to my iPhone or my other Mac?

No. Flows run on this Mac only. They are not synced to your other devices. If you want the same chain on a second machine, you build it there.

What happens when a condition check cannot decide?

A condition is a model call, not a rule engine, so it has three possible answers: met, not met, and could not tell. You decide what undecided means for each connection with the “If the check can’t decide, stop here” setting. Leave it off and the flow continues. Either way the verdict and the model’s one-line reason are recorded on the run.

What does a condition actually read?

The check reads the first ~12,000 characters of the previous step’s result and nothing else. Keep the question about something that appears near the top of that result, and write it as one clear sentence, like “Only if at least one page is losing organic traffic.”

Can the same routine be in more than one flow?

Yes. A step is a reference to the routine, not a copy of it, so one routine can appear in several flows and still keep its own independent trigger for standalone runs.

What do the condition checks cost?

They are small calls, and the run panel shows the total for you instead of hiding it. In the run pictured on this page five steps and one check came to $0.0021 in checks. Every replay reports per-step duration and the cost of the checks for that run.

What is an agentic workflow?

An agentic workflow is any process where an AI agent takes more than one step on its own: reading a result and deciding what happens next instead of stopping after a single reply. A flow in Routines is a concrete version of that. Each step is one of your routines, the output of one becomes the input to the next, and a plain-English condition decides whether the chain continues.

How is an agentic AI workflow different from regular automation?

Regular automation runs the same fixed steps every time. An agentic AI workflow lets a model read what happened in the step before it and decide what to do next, which is what the condition on a Flows connection does before letting the next step run. That is also why a check can come back could not tell instead of being forced into a yes or a no.

Keep exploring

Chain the routines you already run.

One graph, one daily schedule, conditions written in English, and a replay that tells you the truth about last night. Flows run on this Mac only, and they are not synced to your other devices.

Download for Mac