Skip to main content
The Flow Engine is Twine’s orchestration engine. Where the Data Engine describes how a single value is derived from other values, the Flow Engine describes a process: a sequence of steps that read from source systems, transform data, write to target systems, branch on conditions, loop over collections, and log what happened along the way. A Flow is a saved, editable directed acyclic graph of nodes. When a flow runs, the engine walks the graph from its root, invoking each node in turn and threading a shared state object (the token) through every node. Side effects - API calls, database writes, log entries - happen as the graph runs, in the order the graph defines.

Flow Engine vs Data Engine

The two engines share the same underlying node-graph model and editor, but they serve different purposes. Flows can embed Data Engine graphs inside them. Nodes like FlowTransform, FlowFilter, and FlowSwitch carry an inner Data Engine graph that the Flow Engine evaluates to produce a single value - the transformed payload, the predicate result, or the branch name. Inside that inner graph, values flow as dated properties just like they do anywhere else in the Data Engine.

Where to start

Before building a flow, read the concept pages in order:

Node reference

The rest of this section is a reference for every flow-mode node available in the Flow Engine, grouped by category. Nodes that work in both the Flow Engine and the Data Engine (for example, reading and writing assigns, end nodes) are documented under the Data Engine reference and can be used freely in both contexts.