Your first workflow
Automations are workflows: a graph of nodes on the /workflows canvas. A trigger node says
when it fires, the nodes after it say what happens, and every edge carries the same item shape.
This page replaced “Your first job”. The one-off Job engine it described is deleted — see
Automation architecture for what runs work now.
Draw one
Section titled “Draw one”- Open
/workflowsand create a workflow. It is saved inactive, so nothing fires while you are still drawing. - Drop a trigger.
trigger.scheduletakes a cron;trigger.eventwaits for a domain event;trigger.manualonly ever fires from the Run button. - Drop the work after it and connect them. The palette shows only what this deployment can actually run — a node whose integration is not configured is not offered, rather than offered and failing at run time.
- Activate it. A workflow with an unrunnable graph, no trigger, or an invalid cron is refused with the reason, not silently left off.
Fire it and read the run
Section titled “Fire it and read the run”The Run button fires it immediately, whatever its trigger says. Every fire writes a run row before
it starts — so a run that is still waiting is visible as queued with its position, rather than
looking like a button that did nothing.
const { runId } = await client.workflows.run(workflowId)const run = await client.workflows.getRun(workflowId, runId)
run.status // queued | running | completed | failed | cancelledrun.nodes // per node: status, counts, message, a capped output samplerun.error // the sentence to show a human, on a failed runStop one with client.workflows.cancelRun(workflowId, runId). Cancellation is cooperative: the
executor reads it between nodes and polls during one, so a node already past its own write may
still finish.
What the SDK gives you
Section titled “What the SDK gives you”await client.workflows.list()await client.workflows.listNodes() // the palette, per deploymentawait client.workflows.listTemplates() // clone-able starting pointsawait client.workflows.listRuns(workflowId)Templates are the fastest start: clone one, change what it points at, activate.
