Overview
The Workflow Application is the most powerful application type in Nadoo AI. Instead of a single LLM conversation, a Workflow App uses a visual node graph to define complex, multi-step execution flows. Nodes represent individual operations — AI model calls, conditional branches, loops, knowledge base queries, HTTP requests, code execution — and edges define the data flow between them. Workflow Apps are ideal for:- Multi-step AI agent pipelines with branching logic
- Data processing and transformation workflows
- Orchestrated multi-agent systems
- Automated business processes with AI decision-making
How It Works
A workflow is a directed graph built in the visual editor. Execution begins at a Start Node, flows through connected nodes, and terminates when all paths reach an End Node or an unconnected output. Each node processes its input, executes its operation, and passes the result to the next node(s) via edges. Variables flow through the graph, accumulating context as execution progresses.Node Types
Nadoo AI provides 18+ built-in node types organized by category.Core Nodes
| Node | Description |
|---|---|
| Start | Entry point of every workflow. Receives user input and initial variables. |
| End | Terminal node that returns the final output to the user. |
| AI Agent | Calls an AI model with configurable system prompt, tools, and agent strategy. |
| LLM | Direct LLM call without agent capabilities — simpler and faster for basic generation. |
Logic Nodes
| Node | Description |
|---|---|
| Condition | Branches execution based on a boolean expression or comparison. |
| Loop | Iterates over a list, executing child nodes for each item. |
| Switch | Routes execution to one of multiple paths based on a value match. |
| Merge | Combines outputs from parallel branches into a single output. |
Data Nodes
| Node | Description |
|---|---|
| Search Knowledge | Queries a knowledge base using vector, keyword, or hybrid search. |
| HTTP Request | Makes HTTP calls to external APIs with configurable method, headers, and body. |
| Code Executor | Runs custom Python or JavaScript code with access to workflow variables. |
| Variable Setter | Sets or updates a workflow variable. |
| Template | Renders a text template with variable interpolation using Jinja2 syntax. |
Integration Nodes
| Node | Description |
|---|---|
| Tool Call | Invokes a registered plugin or tool. |
| Webhook Trigger | Starts a workflow from an incoming webhook request. |
| Sends an email with a configurable template. | |
| Notification | Sends a notification to a configured channel (Slack, Discord, etc.). |
Advanced Nodes
| Node | Description |
|---|---|
| Sub-Workflow | Embeds and executes another workflow as a nested operation. |
| Human Review | Pauses execution and waits for human approval before continuing. |
| Parallel | Executes multiple branches simultaneously and waits for all to complete. |
Building a Workflow
Create a Workflow App
From the workspace dashboard, click New Application and select Workflow as the type.
Add Nodes
Drag nodes from the node palette onto the canvas. Connect them by dragging from an output port to an input port.
Configure Each Node
Click a node to open its configuration panel. Set the model, prompt, condition expression, or other parameters specific to the node type.
Define Variables
Use the Variables panel to define workflow-level variables that nodes can read and write.
AI Agent Node
The AI Agent node is the most commonly used node. It wraps an LLM with an agent strategy that determines how the model reasons and uses tools.Agent Strategies
| Strategy | Description |
|---|---|
| Standard | Single LLM call with optional tool use. Fastest execution. |
| Chain of Thought (CoT) | Model reasons step-by-step before producing a final answer. |
| ReAct | Interleaves reasoning and action — the model thinks, acts (calls a tool), observes the result, and repeats. |
| Function Calling | Model selects and invokes tools using structured function call syntax. |
| Reflection | Model generates an initial response, critiques it, and refines it. |
| Tree of Thoughts | Explores multiple reasoning paths in parallel and selects the best outcome. |
ReAct and Function Calling are the most versatile strategies for workflows that involve tool use. Use Chain of Thought when you need transparent, step-by-step reasoning without tools.
Execution and Streaming
When a Workflow App executes, Nadoo AI streams progress events in real time via Server-Sent Events (SSE). This allows the frontend to display which node is running, show intermediate results, and render the final output as it is generated.Workflow-Level Events
| Event | Description |
|---|---|
workflow_start | Workflow execution has begun |
workflow_end | Workflow execution completed successfully |
workflow_error | Workflow execution failed with an error |
Node-Level Events
| Event | Description |
|---|---|
node_start | A specific node has started executing |
node_end | A specific node has finished executing |
node_error | A specific node encountered an error |
Agent-Level Events
| Event | Description |
|---|---|
agent_iteration | An agent reasoning iteration has occurred |
agent_tool_call | The agent is invoking a tool |
agent_tool_result | A tool has returned a result |
agent_thinking | The agent is in a thinking/reasoning phase |
cot_step | A chain-of-thought reasoning step |
Running a Workflow
Via the Chat Interface
Workflow Apps can be used through the same chat interface as Chat Apps. The user sends a message, the workflow executes, and the final output is streamed back. Intermediate steps (node execution, tool calls, reasoning) can be displayed in an expandable execution monitor.Via the API
Via Scheduling
Automate workflow execution on a schedule using cron expressions. See Scheduling for details.Versioning and Publishing
Workflows support versioning to manage changes safely.| Concept | Description |
|---|---|
| Draft | The working version visible in the editor. Changes are saved automatically. |
| Published | The live version that serves user requests. Immutable once published. |
| Version History | A log of all published versions with timestamps and change descriptions. |
Publishing a Workflow
- Click Publish in the workflow editor toolbar
- Enter a version description (e.g., “Added fallback handling for API errors”)
- The current draft becomes the new published version
- Previous published versions remain in the version history for rollback
Best Practices
Start simple, then expand
Start simple, then expand
Begin with a linear flow: Start -> AI Agent -> End. Add branching, loops, and tools incrementally as you validate each step.
Use descriptive node names
Use descriptive node names
Rename nodes to describe their purpose (e.g., “Classify Intent” instead of “AI Agent 1”). This makes complex workflows readable at a glance.
Handle errors at every step
Handle errors at every step
Add Condition nodes after critical operations (HTTP requests, tool calls) to handle failure cases gracefully. Use the
node_error event to surface issues to users.Leverage sub-workflows
Leverage sub-workflows
Extract reusable logic into sub-workflows. This keeps the main workflow clean and makes common patterns shareable across applications.
Test with edge cases
Test with edge cases
Use the visual debugger to step through execution with various inputs — including empty inputs, malformed data, and adversarial prompts.