---
title: "Build workflows"
description: "Compose automations on the canvas — by hand or with the Flow Copilot."
canonical: https://ocho.bot/docs/flows/build-workflows
last_updated: 2026-07-12
---

# Build workflows

> Compose automations on the canvas — by hand or with the Flow Copilot.

## Who can do this

Creating workflows can be restricted server-side. If clicking **Create** shows "Could not create workflow: You are not allowed to perform this action.", ask an administrator to grant you access — admin group membership alone does not guarantee it.

## Create a workflow

1. On the **Workflows** tab, click **New workflow**. Give it a **Display    name** and a **Slug** (lowercase letters, numbers, dashes, and    underscores; 2–63 characters; must start with a letter). The display name    is not filled into the slug automatically, and an invalid slug simply    keeps the **Create** button disabled rather than showing an error. 2. The canvas editor opens with an empty canvas — drag in your first block    from the palette to get started.

## Work the canvas

- **Add blocks** by dragging them from the left **Blocks** palette onto the

canvas.

- **Connect blocks** by dragging from one block's output handle to another's

input. Each block also shows a second, red **Error** output handle, but it   doesn't route anything today — when a block fails, everything downstream is   skipped, including anything wired from the Error handle.

- **Configure a block** by clicking it — an inspector opens with its name and

settings (prompts, queries, model choices, document and dataset pickers,   and so on).

- **Delete** a selected block or connection with Backspace/Delete.
- A minimap and zoom controls help on large flows.

Everything auto-saves a couple of seconds after you stop editing; a **Save** button is there when you want to be explicit.

## Reference earlier results

Block settings can reference the output of any earlier block with double-brace expressions — for example `{{ search.results }}` or `{{ vars.total }}`. The [block reference](/docs/flows/blocks-reference) lists the available patterns.

## Use the Flow Copilot

The **Flow Copilot** panel is already open on the right when the editor loads — an AI that sees your current canvas. The **Assistant** and **Run** buttons in the toolbar switch what the panel shows; the panel itself can't be closed. With **Assistant** selected you can:

- Describe a flow from scratch — "for each document in dataset X, summarize

it and compile a report" — and the Copilot lays out the blocks and wiring.

- Ask for changes to what's there — "add an approval step before the report".

Copilot changes apply to the canvas immediately.

## Publish a version

**Publish** opens the **Publish release** dialog, where you set a **Version label** and an optional commit message, then snapshots the workflow. Publishing the same content twice doesn't create duplicate versions — you'll see "No changes since last commit; nothing published." Since the canvas has no undo, publish before risky edits.

## Good to know

- **Run** saves any unsaved changes and starts the run immediately — there is

no pre-run check or warning. Blocks that can't run are marked skipped   during the run; the run finishes with a partial-failure status if at least   one block succeeded, and as failed if nothing succeeded.

- A workflow's slug can't be changed after creation.
- A few advanced block settings are edited as raw JSON for now.

All docs: https://ocho.bot/docs

---

Ocho — AI knowledge orchestration · [Home](https://ocho.bot/) · [Docs](https://ocho.bot/docs) · [Blog](https://ocho.bot/blog) · [About](https://ocho.bot/about) · [Developers](https://ocho.bot/developers) · [Contact](https://ocho.bot/contact) · [llms.txt](https://ocho.bot/llms.txt)
