Blocks
Reference for every node type in the builder.
Blocks are the atoms of a blueprint. Each does one thing.
Triggers
What starts a flow. Every blueprint needs at least one trigger.
| Block | Fires when |
|---|---|
| Chat message | A user sends a message |
| Webhook | An external service POSTs to the bot's webhook URL |
| Schedule | A cron expression matches |
| Email received | Gmail receives a matching message |
| Slack mention | The bot is @-mentioned |
Skills
External capabilities. Each connected skill exposes one or more actions. Gmail gives you "send email", "search inbox", "draft reply", and so on. Skills come from the Skills catalog and are connected per workspace.
Reasoning
LLM steps that think.
| Block | What it does |
|---|---|
| Reason | Free-form prompt, returns text |
| Decide | Picks one of N branches based on context |
| Extract | Pulls structured data from text into a JSON schema |
| Summarize | Compresses long context |
Control
Flow shaping.
| Block | Purpose |
|---|---|
| Wait | Pause for N seconds or until a condition is met |
| Approval | Pause until a human approves in the inbox |
| Loop | Repeat over a list |
| Branch | If/else fork |
Output
How the bot replies.
| Block | Purpose |
|---|---|
| Reply | Send text to the chat channel |
| Send via skill | Call any send-style skill action |
| Webhook | POST a payload to a URL |
Connecting them
Drag from the bottom port of one block to the top port of another. Most blocks accept multiple inputs and produce one output. Decide and Branch are the exceptions: they produce multiple outputs (one per branch) and you connect each to a different downstream path.