Automate a recurring job

Flows turn a job you keep doing by hand into a governed automation with human checkpoints and a run history you can trust.

Build it on the canvas

Open Flows and create a new flow. You get a canvas, a node palette, and an AI Flow Editor: describe the job in a sentence and it drafts the graph, or ask it for a change to edit the current graph. Build by hand from the palette when you want control: Crew and Swarm nodes launch multi-agent teams as a step, Agent runs a single role, Set Variable and Echo manage run state and notifications, HTTP Request and GitHub reach external systems, Decision branches on state, Loop repeats over items, Human pauses for sign-off, Report compiles the deliverable.

The Weekly Vendor Risk Review flow: schedule trigger, HTTP fetch, threshold variable, notify, scoring loop with an agent body, decision branches to a swarm deep-dive or a cleared log, CISO approval gate, report and final notification
A real pipeline: fetch vendors, score them in a loop, deep-dive the risky ones with a swarm, gate criticals behind the CISO, file the report.
The node palette open beside the pipeline: Crew, Agent, Set Variable, Decision, Echo, HTTP Request, Loop, Human, Report, Swarm, Trigger
The full vocabulary, one panel: from a single agent to an entire swarm as one node in your automation.

Keep a human in the loop

Drop a Human node anywhere a person should sign off. The run pauses at that node, the run badge flips to Awaiting approval, and everything downstream stays queued until someone decides. Decision nodes route without waiting: point one at a state key with an operator (equals, greater than, present, contains) and it branches on what the run actually produced.

A live run paused at the Human approval node: the decision routed true to the CISO gate, the approval is awaiting, the report is queued behind it
The run waits. Decision routed to the gate, report queued behind it, nothing files until a person approves.

Trigger it

  1. 1Run the flow manually while you are building; every run is inspectable.
  2. 2When it works, set the trigger to Schedule so it runs itself on a cadence.
  3. 3Or set it to Event and wire an event source, such as GitHub activity arriving through your organization's connected apps.

Trust it

Every run records durable trace events: which node ran, what it produced, what failed and why. "What actually happened" is a record you open, not a memory. The HTTP response bytes, the agent's output, the decision's taken branch, and who approved the gate all sit in the trace, and the report node compiles a per-step receipt into the deliverable itself.

The completed run: Human approval succeeded with the approval note on the record, the report compiled with a per-node receipt, the final notification fired
The receipt: who approved, what every node did, and the report that proves it.

Flows run under the same governance as everything else: content policy applies to agent nodes, and human nodes make approval part of the automation itself.