Skip to main content
Every execution of a flow is a run. A run is created either manually or by a schedule, and progresses through the graph one node at a time, recording a per-node step as it goes.

Trigger Types

Datazone supports two ways to start a flow:

Manual Runs

A manual run takes an optional set of parameters — a flat object made available to every node as parameters (and, on the start node’s output, echoed back under parameters):

Scheduled Runs

A Flow Schedule runs a flow’s deployed definition automatically on a cron expression:
A schedule always runs the flow’s definition on the branch it was created against. Deploying a new version of the flow to that branch changes what the next scheduled run executes.

Run Lifecycle

A run moves through the following statuses:

Step Lifecycle

Each node execution inside a run is tracked as a step, with its own status: Each step also records started_at, finished_at, execution_time, stdout/stderr, and, on failure, error_type/error_message/traceback — everything you need to debug a failing node without re-running the whole flow.
Nodes inside a for_each body re-execute once per item. Rather than one step per iteration, the step for a body node is overwritten on each pass (last-iteration-wins), with iteration/iterations_total reporting progress.

Canceling a Run

A running flow can be canceled while it’s in progress. In-flight and not-yet-started steps are marked CANCELED, and the run transitions to CANCELED once cancellation completes.

Validation Before a Run

Before a run starts, the flow document is validated as a whole. The most common issues you’ll see surfaced per-node:
  • A required input port must be connected (e.g. response and output always require their in port to be wired).
  • Connections leaving a branching node (if) must set from_port to a valid output port (true/false).
  • A flow may contain at most one top-level response node.
  • A for_each node’s body must contain exactly one response node.
  • The flow (and every for_each body) must be a DAG — cycles are rejected.
  • for_each nesting is capped at a maximum depth of 5.
See the Node Reference for the full set of per-node-type validation rules.

Next Steps