The flow graph

Nodes, the start block, and arrows — the mental model behind every bot.

A dev>nulll bot is a graph: blocks (nodes) connected by arrows (edges). When a message arrives, the bot finds a matching trigger and walks the arrows from there, running each block in turn.

Nodes

Each node is one block — a trigger, a message, a condition, an API call, etc. You add nodes by dragging them from the palette onto the canvas, and configure them in the property panel on the right. See the Blocks reference for every block.

The start block

A trigger is a graph entry point — it has no incoming arrow. Your graph can have several triggers (e.g. /start, a text rule, a button). One trigger is marked Start; it’s just the one highlighted as the primary entry. A conversation begins at whichever trigger matches the incoming update.

Arrows = “what next”

An arrow from block A to block B means “after A, do B”. Most blocks fire immediately and follow their single outgoing arrow. Some blocks branch (multiple labelled arrows like ok / error), and some wait for the user to reply before continuing. See Outcomes & branching.

Per-user execution

The graph is the same for everyone, but it runs independently per user. Each user has their own position in the flow and their own variables and saved data.