Concepts
What a flow is, and how the canvas represents it.
A flow is a directed graph of components: nodes are components, edges are the connections between a component's output handle and another component's input handle. The canvas is a direct visual editor for that graph — there's no separate "compile" step between what you see and what runs.
Nodes
Each node on the canvas is one component instance. A node's fields are either:
- Parameters — a fixed value you set in the node's settings panel.
- Inputs — a handle another component's output can connect to, replacing the fixed value with whatever that component produces at runtime.
See Components for the full set of available node types.
Edges
An edge connects one output handle to one input handle. Both handles carry a
type (Message, Data, DataFrame, LanguageModel, etc.), and the canvas
only allows a connection when the types are compatible — dragging from an
output highlights every input it can legally connect to.
Flow JSON
A flow is saved as JSON: a list of nodes (each with its component type and parameter values) and a list of edges (each naming a source node/handle and a target node/handle). This is the same JSON you get from exporting a flow, and it's what's stored when you save.
Sticky notes
Sticky notes are nodes that don't execute — they're for leaving notes on the canvas, documenting a flow, or flagging a manual step.
Building flows faster
Instead of placing and wiring every node by hand, you can describe the flow you want to the ottom8 Assistant and have it build (or propose) the graph for you.