Workflow Automation
Deterministic execution of multi-step pipelines including LLM reasoning, HTTP calls, file operations, branching, approvals, agent delegation, and external tool integrations.
How Workflows Work
Workflows are defined as directed graphs of steps and edges. Each step represents a discrete action, which can be an AI agent reasoning task, a system tool execution, a control flow operation, or an external MCP tool call. Edges define execution order and branching paths.
Step-by-Step Execution
Every step is executed in sequence with full input/output validation. If a step fails, the entire workflow lifecycle is managed according to defined error policies.
Structured Data Flow
Each step receives a shared execution context. Outputs from previous steps are automatically injected into later steps using template variables such as {{last}} or {{steps[n].output}}.
Graph-Based Branching
Edges define execution paths. Condition and switch nodes route to different branches. Parallel nodes fan out to concurrent branches joined later by join nodes.
Execution Lifecycle
- A workflow is created and stored with its step and edge definitions.
- When triggered (manual, scheduler, webhook, or public API), a new task is generated.
- The task is picked up by the Step Runner and executed sequentially or in parallel according to the graph.
- Each step produces an output that is stored and passed forward.
- Execution logs are persisted for inspection and debugging.
- The workflow completes with a final status: completed, failed, rejected, or pending approval.
Supported Step Types
The platform supports 13 registered step handlers and 8 built-in tools. Steps are configured in the visual builder or defined as JSON.
Example Definition
{
"id": "ai-research-agent",
"name": "AI Research Agent",
"description": "Automatically research a topic and summarize key findings.",
"metadata": {
"steps": [
{
"stepId": "research",
"type": "http",
"method": "GET",
"url": "https://api.example.com/search?q={{input.topic}}"
},
{
"stepId": "summarize",
"type": "llm",
"prompt": "Summarize these results: {{steps.research.output}}",
"useMemory": false,
"memoryTopK": 5
},
{
"stepId": "send_email",
"type": "email",
"to": "user@example.com",
"subject": "Research Summary",
"body": "{{steps.summarize.output}}"
}
],
"edges": [
{ "id": "e1", "source": "research", "target": "summarize" },
{ "id": "e2", "source": "summarize", "target": "send_email" }
]
}
}Data Flow & Templating
Workflow steps communicate through a shared execution context. Each step can reference previous outputs using template variables, enabling powerful data pipelines without writing custom glue code.