Anatomy
A workflow has four tabs at the top: General, Canvas, Versions, and Alias — mirroring the surfaces you already know from agents.General
Canvas
The visual DAG editor. The right rail holds the node palette, grouped into three sections:
Triggers
Define how the workflow is started.
Each workflow has exactly one trigger.
Nodes
The building blocks of the DAG.
The connector nodes (Gmail / Jira / Calendar / GitHub / Slack / Telegram) come from connectors — each connector action surfaces as a typed node with typed inputs and outputs.
Control
Flow-control primitives.Building the graph
- Add a node: drag from the palette onto the canvas, or click. Connect the source node’s output handle to the next node’s input handle.
- Configure a node: double-click it. The right panel opens with the node’s editable fields:
- ID — used in references (e.g.
{{node_4.field}}). - Label — display name on the canvas.
- Connection — for connector nodes, which OAuth connection to act through.
- Inputs — action-specific parameters. String fields support templating with
{{node_id.field}}references to upstream outputs. - Outputs — the typed return shape, with copy-to-clipboard buttons for each field reference (e.g.
{{node_4.next_page_token}}).
- ID — used in references (e.g.
- Delete a node: select it and press Delete, or use Delete Node at the bottom of the config panel.
- Save the canvas to persist your changes. Export JSON dumps the workflow definition.
{{node_id.field}}. The ID is editable, so you can rename node_4 to list_messages for readability.
Versions
Workflows are versioned with the same model as agents:- $LATEST is version 0 — the mutable working copy. Every save on the Canvas tab updates
\$LATEST. - Create New Version freezes the current
\$LATESTinto a numbered immutable snapshot (1, 2, 3, …). Future canvas edits go to\$LATESTagain; numbered versions never change. - The Versions tab lists every snapshot with its creation/update timestamp. Click View to open a version read-only in the Canvas tab.
Alias
Aliases pin a named label (e.g.production, canary) to one or two versions:
- $LATEST is a built-in alias that always points at version 0.
- Custom aliases can point at a single version, or split traffic across two versions with a weight (for canary or A/B rollouts).
- Agents that invoke this workflow can reference it by alias (e.g.
pr_triage@production) instead of a numeric version, so you can roll forward without touching the agent.
Invoking a workflow from an agent
When the Invoked by Agent trigger is used, the workflow registers itself as a tool with the same name as the workflow. To make the agent able to call it:- Open the agent in Agent Builder.
- Go to the Tools tab.
- Enable Workflows and select this workflow (and the version or alias you want to pin).
- Save.
Local vs Temporal runtime — when to use which
You can change the runtime at any time from the General tab; existing version definitions stay the same.
Observability
Every workflow run produces an OpenTelemetry trace covering:- The trigger event.
- Each node executed, with inputs, outputs, status, and duration.
- Tool calls made by any AI Agent nodes inside the workflow.
- Re-tries and replays (Temporal).
Relation to other features
- Connectors — provide the typed connector nodes (Gmail, Slack, Jira, …) on the workflow palette.
- Agent Tool — agents call workflows just like any other tool, with arguments derived from the trigger’s schema.
- Agent Runtime — workflows mirror the runtime choice agents have: in-process for speed, Temporal for durability.