> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.runtype.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.runtype.com/_mcp/server.

# Creating and editing flows

Build workflows that process data, call AI models, and take actions with flows. For an overview of the concepts, read [What are Flows?](/user-guide/flows/what-are-flows).

## Before you begin

Sign in to the Runtype dashboard before you create or edit a flow.

## Create a flow

To create a flow, follow these steps:

1. On the **Flows** page, click **Create flow**. The **Create New Flow** panel opens.
2. Choose **Start from scratch**, **Use an example**, or **Import flow**.
3. Complete the selected creation path. The flow editor opens.
4. Optional: To rename the flow, click the flow name in the header.
5. Click **Create**. Runtype saves the flow.

You can also create a flow from a product when you add a capability. The same flow editor opens.

### Import a flow

**Import flow** accepts a JSON file that you exported from the **Flows** page. The file has this shape:

```json
{
  "version": "1.0",
  "exportedAt": "2027-01-19T10:00:00.000Z",
  "flow": {
    "name": "Ticket triage",
    "steps": []
  }
}
```

The file must have top-level `version` and `flow` fields. For any other file, the panel shows "Invalid flow file. Please upload a valid JSON export." The imported flow opens in the editor unsaved. Runtype creates it only when you click **Create**.

## Add steps

Steps are the units of work in a flow. They can call an AI model, fetch data, make API requests, or run code. For the available step types, see [Flow step types overview](/user-guide/flows/flow-step-types-overview).

To add a step, follow these steps:

1. Click the **+** control where you want to insert a step.
2. In the step picker, browse or search for a step type.
3. Select a step type. The step card opens.

If the search leaves one result, press `Enter` to add it.

## Pass data between steps

A flow runs its steps in the order shown. To pass data between steps, reference an earlier step's output variable with a template such as `{{summary_result}}` or `{{ticket_analysis.category}}`.

You can also reference system variables. For example, use `{{_record.metadata.field}}` to read a record's metadata field. For the full syntax, see [Flow variables and templates](/user-guide/flows/flow-variables-and-templates).

## Edit a step

To edit a step, click it in the step list or editor, and then update its configuration in the step card. Your changes stay in the editor until you save the flow. For more information, see [Save and publish a flow](#save-and-publish-a-flow).

A control on the step card sets whether the end user sees the step's output:

* **Stream to user**: Show the step's output to the end user as it runs.
* **Store result only**: Save the output to the step's output variable without showing it to the end user.

## Reorder steps

To move a step, drag it in the step list and drop it at its new position.

To move a step one position at a time, hover over the step row and click **Move step up** or **Move step down**.

## Duplicate a step

To copy a step, hover over the step row and click **Duplicate step**. The copy appears directly after the original.

You can't duplicate a **Conditional Logic** step. Its row has no hover actions, so drag it to move it.

## Enable or disable steps

To skip a step without deleting it, click **Enable step** or **Disable step** on its step row. The flow skips a disabled step when it runs.

## Delete a step

Before you delete a step, update references to its `outputVariable` in other steps. Then, hover over the step row and click **Delete step**.

## Test a flow

You can test a flow before you save it. The test uses the current unsaved steps.

To test a flow, follow these steps:

1. In the toolbar, click **Run flow**. The **Run Flow** sheet opens in the **Test** view.
2. Enter the input values for the flow.
3. Click **Run Flow**. The execution results appear in the sheet.

Review the execution results for each step. They include the step's input, output, status, and execution time when available.

After a saved flow has run once, you can retest one step without running the whole flow. Hover over the step row and click **Test step with last run**. For the full procedure, see [Retest one step](/user-guide/flows/debugging-flows#retest-one-step).

## Save and publish a flow

Saving records a configuration snapshot. Publishing activates that exact saved version for Products, surfaces, schedules, and API calls that don't pin another version.

The primary toolbar button reads **Create** for a new flow. For a saved flow, it reads **Save** when you have unsaved changes and **Saved** when you don't. Click it to save without publishing.

To publish a saved flow, follow these steps:

1. Click **Save options**, the arrow beside the save button.
2. Click **Publish**.
3. Review and confirm the saved version being activated and the live version being replaced.

Publishing unsaved changes first saves their configuration. If publication fails, that saved configuration remains available in **Versions**.

Published configuration stays immutable. Edit and save the draft, then confirm publication to change live traffic. For more information, see [Flow versioning and publishing](/user-guide/flows/flow-versioning-and-publishing).

The editor header shows a summary of validation issues. Select an issue to go to its step. For what each warning means, see [Flow validation warnings](/user-guide/flows/flow-validation-warnings).

## View runs and activity

For a saved flow, the **Save options** menu also opens these views:

* **Versions**: The flow's saved and published versions.
* **Runs**: The flow's past runs, newest first, with each run's status, duration, and cost.
* **Conversations**: The chat history for the flow.
* **Activity**: Who changed the flow and when.

In **Runs**, select a run to open its timeline. A run that you start from the dashboard, including a test run from the editor, shows a **Dashboard** badge.

**Activity** is available on Enterprise plans. For more information, see [Audit trail](/user-guide/logs/audit-trail).

## Generate a flow with AI

The AI flow generator creates steps from a description. In an empty flow, the editor shows the generator in place of the step list. Describe what you want to build, and then click **Generate flow**.

To generate steps for a flow that already has steps, follow these steps:

1. In the toolbar, click **Generate flow**. The **Generate Flow Steps** dialog opens.
2. Choose **Generate new** to replace all existing steps, or **Add to flow** to append the generated steps.
3. Describe what you want to add or change, and then click **Generate flow**.
4. Review the generated steps.
5. Click **Replace** or **Add** to apply the steps. The button shows the number of steps.

## Error handling

To set how a step responds to an error, click the error-handling control on its step card. The control shows **Continue on error** until you choose another mode.

For steps other than prompt steps, choose one of these modes:

* **Continue on error**: Skip the failed step and continue the flow.
* **Stop on error**: Stop the flow when the step fails.
* **Use fallbacks**: Retry the step before it reports failure.

Prompt steps handle errors differently. They continue to the next step after most errors, and they support backup models and fixed messages as fallbacks. For more information, see [Error handling for prompt steps](/user-guide/flows/using-prompt-steps#handle-errors).

## Duplicate, export, or delete a flow

The row menu on the **Flows** page manages whole flows. It includes these actions:

* **Duplicate**: Create a copy of the flow with "(Copy)" after its name, and open the copy.
* **Export**: Download the flow as a JSON file that **Import flow** accepts.
* **Delete**: Delete the flow after you confirm.

To delete several flows at once, select them in the list and click **Delete**.

## Next steps

Use these pages to continue working with flows:

* [Debugging flows](/user-guide/flows/debugging-flows): troubleshoot execution issues
* [Using conditional steps](/user-guide/flows/using-conditional-steps): branch a flow on a condition
* [Manage flows as code](/user-guide/flows/manage-flows-as-code): manage flow definitions in your repository