Nodes are the building blocks of every workflow. Each node performs one step and passes its output to the next connected node.
Node categories
Core
| Node | Purpose |
|---|
| Start | Workflow entry point and trigger |
| End | Optional completion point with output action |
| Node | Purpose |
|---|
| Action | Perform an operation in a connected app (Gmail, Slack, etc.) |
| HTTP Request | Call any external REST API |
| AI Agent | Run AI models for text generation, analysis, or agent tasks |
Logic
| Node | Purpose |
|---|
| Condition | Branch the workflow based on expressions |
| Loop | Iterate over a list of items |
| Delay | Pause execution for a set duration |
Data
| Node | Purpose |
|---|
| Transform | Reshape, filter, map, validate, or convert data |
| Function | Run custom JavaScript code |
| Text | Output static or templated text (useful as AI prompts) |
How data flows
Start → Node A → Node B → Node C (done)
Each node receives:
- Output from the previous node as
lastOutput
- Original trigger data as
inputs
- Workflow variables as
variables
Use {{lastOutput}}, {{inputs.field}}, and {{variables.key}} in any node's configuration. See Variables & Templates.
Connecting nodes
- Drag from the output handle (right) of one node to the input handle (left) of another.
- A node can connect to multiple downstream nodes (parallel branches).
- A Condition node has separate output handles for each branch (if / else if / else).
Choosing the right node
| I need to… | Use |
|---|
| Send an email via Gmail | Action (Gmail → Send Email) |
| Call a custom API | HTTP Request |
| Summarize text with AI | AI Agent |
| Rename/restructure JSON fields | Transform (Edit Fields) |
| Run custom calculations | Function |
| Branch on a value | Condition |
| Process each item in a list | Loop |
| Wait 5 seconds between steps | Delay |
| Build a reusable prompt snippet | Text |
Next steps
Pick a node from the sidebar to read its full configuration guide, or jump to the Cookbook for end-to-end workflow examples.