Node Types
Agent Nodes
Agent nodes implement the ReAct (Reasoning + Acting) pattern:- The agent receives a system prompt and user input
- It reasons about what to do next
- It calls tools as needed (web search, database queries, MCP tools, etc.)
- It iterates until it has a final answer or hits
maxIterations
- System prompt — Instructions and personality
- Tools — Array of tool IDs from the tools registry
- LLM config — Model endpoint, temperature, max tokens
- Strategy —
react(default),plan_and_execute,direct, ortool_calling - Memory type —
buffer,summary, orconversation
Form Prompt Nodes (Human-in-the-Loop)
The unified Form Prompt node supports three modes:
All modes support:
- Assignee configuration — Static users/groups or dynamic from flow variables
- Assignee strategy —
any(first response wins) orall(wait for everyone) - External notifications — Email, Teams, Slack delivery
- Timeout — Auto-expire after configured duration
- Response caching —
rememberResponseprevents re-prompting across round trips
Tool Nodes
Tool nodes support multiple integration types:
Tool nodes include retry policies, timeout configuration, input/output schema validation, and error handling strategies (
throw, return_null, return_default).
Conditional Nodes
Conditional nodes evaluate expressions against flow variables and route execution to different branches. Each condition specifies an expression, and adefaultTargetNodeId handles the fallback case.
Message Nodes
Message nodes send notifications without pausing the flow (unlike Form Prompt nodes which wait for a response). They support:- In-app notifications (bell icon)
- External channels — Email, Slack, Teams, Twilio, Webhook
- Template variables —
{{variable}}syntax in subject, body, and recipient - Importance levels —
low,normal,high - Body types —
text,html, ormarkdown(auto-converted to HTML for email) - Notification provider preferences — Route through preferred channels per recipient
Content Nodes
Content nodes stream rich markdown to the user and optionally pause for interaction. They support three capabilities (combinable):
Content node configuration:
content— Markdown template with{{variable}}substitutionbuttons— Static string array of button labels (user selects one)aiButtons— AI-generated buttons:{ prompt, count?, fallbackButtons?, modelEndpointId? }scopedChat— Scoped AI chat:{ systemPrompt, topicLabel, useRag? }
AI Flow Generator
The Flow Designer includes an AI-powered flow generator that creates complete flow definitions from natural language descriptions. Users describe what they want the flow to do, and the AI generates all nodes, edges, and configuration. How it works:- User opens the “Generate with AI” dialog from the Flow Designer
- Provides a natural language description and selects a complexity level (
simple,moderate,advanced) - The server builds a system prompt with all available node types, configurations, layout rules, and the current tool catalog
- An LLM generates a valid JSON flow definition
- The flow is auto-validated and auto-fixed (edge IDs, missing end nodes, position adjustments)
- On success, the flow is saved and the user is navigated to the flow editor
start, end, prompt, llm, formPrompt, tool, mcpServer, agent, conditional, retriever, memory, message, content.
Key features:
- Tool catalog awareness — The prompt includes all registered tools with their IDs, parameters, and output schemas
- Variable reference syntax — Generated flows use
{{node_label.field}}syntax for inter-node data flow - Layout positioning — Nodes are positioned vertically with proper spacing and branch offsets
- Complexity scaling — Simple (4-8 nodes), moderate (8-12 nodes), advanced (up to 15 nodes)
Flow Execution
Flows execute via the flow orchestrator with:- SSE streaming — Real-time streaming of agent reasoning steps and tool outputs
- Tool activity tracking — Each tool call is tracked with name, status, duration, and summary
- Error handling — Configurable per-flow:
stop,continue, orretry - Execution context — Variables flow between nodes via a shared execution context
- Chat integration — Flows are attached to chats via
flowEngineFlowIdandflowEngineEnabled
Flow Types
Flows have aflowType field that classifies their execution mode:
Retriever flows are used as virtual data sources by the Flow Retriever feature. See Flow Retriever for details.