---
title: Workflows
description: Design, run, and version multi-step AI workflows using the visual flow editor.
---

The Workflows screen is the primary place to design and manage your automation flows. A flow is a directed graph of nodes — each node performs one step (run an agent, branch on a condition, call a tool, wait for a human, etc.).

To chain multiple flows into phased business processes (kanban board, approvals, data handoff), use **[Processes](/docs/using-the-app/pipelines)**. To regression-test a flow before promotion, use **[Quality checks (Evals)](/docs/using-the-app/evals)**.

## Workflow library

The screen has two sections accessible from the **section rail**:

- **Workflows** — the editor and the list of saved flows in your workspace.
- **Templates** — pre-built flow templates filtered to your active vertical.

### Workflows section

The editor and the list of saved flows share the main area. To see all saved flows, click the **Workflows** drawer button in the toolbar. A slide-over panel opens with a searchable list. Click any flow to load it into the editor.

From the toolbar you can also:
- **New workflow** — create a blank flow. Its ID is **auto-generated** from the name you give it (a lowercase, dashed slug), so you don't invent one by hand.
- **Import** — open the migration wizard to import a flow from JSON or YAML.
- **Run** — run the currently selected flow.
- **Save** — save the current editor state.
- **Delete** — delete the selected flow after confirmation.

### Templates section

Template cards show the template name, category tag, and description. Click **Use template** to load it into the editor. Templates are filtered to the active vertical (for example, only finance templates appear if your workspace vertical is set to finance). You can see all templates by changing the filter.

## Auto-generated IDs

Across AKOS, anything you create — a workflow, an agent, a connection, a secret provider — gets a stable **ID** derived automatically from the name you type. The ID is a lowercase, dashed slug (for example, *Daily Report* becomes `daily-report`). You'll see it previewed as `ID: …` while you fill in the form.

You almost never set it by hand. When you do need a specific value (to match an external reference, say), open the **Advanced** disclosure on the create form and type an override. Once a record is created its ID is **locked** — changing it would break everything that references it — so the override is only available at creation time.

## Visual flow editor

The editor is a canvas with a **Palette** on the left, a **main canvas** in the centre, and an **Inspector panel** on the right (appears when a node is selected).

### Palette

The palette lists all available node types, grouped by category. Use the search box to find a specific node. Drag any item from the palette onto the canvas to add it.

### Canvas controls

| Control | Action |
|---|---|
| **Undo / Redo** | Reverse or replay the last canvas change. |
| **Align** | Auto-layout all nodes (`Cmd Shift L`). |
| **Trace** | Toggle the last-run trace overlay (shows per-node status, duration, and cost). |
| **Versions** | Open the snapshots drawer to save or restore named canvas versions. |

A minimap and zoom controls appear in the canvas corners.

### Connecting nodes

Drag from a node's output handle to another node's input handle to create an edge. Branch nodes have separate `true` and `false` output handles.

### Node types

**Basic**
| Node | Purpose |
|---|---|
| **Trigger** | The flow's entry point. Configure the trigger kind (cron, webhook, file watch, or inline). |
| **Agent** | Run a registered agent. Pick the Agent ID from your registry; optionally override the system prompt for this node only. |
| **Tool** | Call a specific tool primitive directly, without an agent. |
| **Notify** | Send a notification (email, Slack, webhook) with a message template. |
| **Note** | A sticky note for documenting the canvas (no runtime effect). |

**Control flow**
| Node | Purpose |
|---|---|
| **Branch** | Evaluate a condition; route to the `true` or `false` edge. |
| **Parallel** | Fan out to multiple branches that run concurrently. |
| **Loop** | Repeat a sub-graph a fixed number of times or until a condition is met. |
| **Human** | Pause the flow and send an approval request to human reviewers. |

**Multi-agent**
| Node | Purpose |
|---|---|
| **Multi-agent** | Run multiple agents with a coordination strategy: Auction, Blackboard, Compare, Debate, or Vote. |

**Knowledge**
| Node | Purpose |
|---|---|
| **RAG** | Retrieve relevant context from a knowledge source and pass it to the next node. |

### Inspector panel

When you click a node, the inspector opens on the right. The fields shown depend on the node type.

**Human node inspector**
Configure who must approve:
- **Approvers** — a list of users, roles, email addresses, or capability strings.
- **Quorum** — the minimum number of approvals required before the flow continues.
- **Escalate on timeout** — if checked, set a timeout in minutes and an escalation target; if no one approves in time, the task is reassigned.

### Governance banner

A floating strip along the top of the canvas shows the current governance posture for this flow: sandbox mode, egress rule count, firewall status, audit state, and whether cost metering is active. Click any chip for details.

## Running a flow

Click **Run** in the toolbar. A dialog appears showing the flow name and any declared input fields. Fill in any required inputs and click **Run now**. The dialog closes and a status indicator appears. When the run completes, a **Last run** panel shows the final status, duration, and cost.

## Snapshots (versioning)

Click **Versions** on the canvas toolbar to open the snapshots drawer. You can:
- **Save snapshot** — give the current canvas state a name and save it.
- **Restore** — load a saved snapshot back into the editor.

Snapshots are per-workspace and are separate from the run history.

## Importing existing workflows

Click **Import** in the toolbar to open the migration wizard and bring a workflow over from another tool. Paste or upload the exported definition and AKOS converts it into a native flow.

Supported sources:

- **n8n**
- **LangChain**
- **LangGraph**
- **Langflow**
- **Flowise**
- **Dify**

An import produces three things:

- **A flow** — the converted node graph, ready to open in the editor.
- **Agents** — agent definitions detected in the source are materialized into your registry. LangGraph imports now materialize agents from the graph's LLM/agent nodes, so they arrive as first-class agents rather than opaque steps.
- **Warnings** — a list of anything that could not be mapped cleanly (unsupported nodes, conditional routes that need review, missing credentials). Review the warnings, fix what's flagged, then save the flow.

Conversion is best-effort and lossy in places, so always review the imported flow and its warnings before running it.

## Related screens

| Need | Go to |
|---|---|
| Multi-phase processes | [Processes](/docs/using-the-app/pipelines) |
| Regression testing | [Quality checks (Evals)](/docs/using-the-app/evals) |
| Scheduled / webhook starts | [Automations](/docs/using-the-app/triggers) |
| Agent registry | [Agents](/docs/using-the-app/agents) |
| Starter templates | [Marketplace](/docs/using-the-app/templates-and-marketplace) |
| Full-page editor (`flow-editor`) | [Route-only screens](/docs/using-the-app/route-only-screens) |
