> For the complete documentation index, see [llms.txt](https://help.genesis.autify.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.genesis.autify.com/workflow/workflow-creation.md).

# Create and edit workflows

This article explains the workflow feature of Autify Genesis. With workflows, you can combine AI agents to automate QA work.

## Reviewing and managing the workflow list

The workflow list shows each workflow's name, description, category, run count, and last run status with timestamp. When you open a workspace, the **Workflows** tab opens first.

From the row of each workflow, you can run the following actions.

| Action    | Description                                      |
| --------- | ------------------------------------------------ |
| Run       | Run the workflow                                 |
| Duplicate | Copy an existing workflow to create a new one    |
| Archive   | Hide a workflow you no longer need from the list |

{% hint style="info" %}
Archiving a workflow does not delete it, and its run history is preserved.
{% endhint %}

{% hint style="warning" %}
Preset workflows (templates) cannot be archived. To customize a preset, **Duplicate** it first.
{% endhint %}

When a workspace has no workflows yet, the list screen shows a template gallery plus a **Start from scratch** card. The gallery includes starter templates for common tasks such as bug triage, exploratory charters, regression planning, defect analysis, release notes, and test plans.

### Searching workflows

Type a keyword into the search bar at the top of the list to filter workflows by name, description, and more.

## Creating a workflow

You can create a workflow from scratch, import one from a YAML file, or start from a template.

### Creating a new workflow

1. In the top-right corner of the workflow list, click **New workflow**.
2. Choose how to create the workflow.

| Creation method       | Description                                             |
| --------------------- | ------------------------------------------------------- |
| Start from scratch    | Create an empty workflow and build it by adding blocks  |
| Import from YAML      | Import a workflow definition from a YAML file           |
| Start from a template | Duplicate an existing template to create a new workflow |

<figure><img src="/files/OO2RmknPXFTKUeKqbifE" alt="Screenshot of the workflow creation methods"><figcaption><p>Workflow creation methods</p></figcaption></figure>

{% hint style="info" %}
If you type what you want to build into the prompt field of the creation dialog, the text is automatically inserted into **AI Builder** in the newly opened workflow, and the AI starts building the workflow from an empty canvas.
{% endhint %}

### Importing from a YAML file

1. Click **New workflow**.
2. Click **Import from YAML**.
3. Select a `.yaml` or `.yml` file. You can also drag and drop a file to load it.

## Editing a workflow

Click a workflow name to open the editor. The editor consists of a header, a central canvas, and the **AI Builder** side panel on the right. Block settings open in floating panels from the canvas, so you can edit a selected block without leaving the canvas.

<figure><img src="/files/LMYDl9LQMho45mN85gnu" alt="Screenshot of the workflow editor overview"><figcaption><p>Workflow editor overview</p></figcaption></figure>

### Changing workflow details

Click the edit icon next to the workflow name in the header to open the **Workflow details** dialog.

| Field       | Description                                                 |
| ----------- | ----------------------------------------------------------- |
| Name        | Display name of the workflow                                |
| Description | Description text for the workflow                           |
| Icon        | Icon shown in the list                                      |
| Category    | Select from General, Product planning, or Quality assurance |

### Operating the canvas

From the toolbar at the bottom of the canvas, you can run the following actions.

| Action        | Description                                 |
| ------------- | ------------------------------------------- |
| Add           | Open the block selection panel              |
| Preview       | Preview-run the entire workflow             |
| Zoom out      | Zoom out the canvas                         |
| Zoom in       | Zoom in the canvas                          |
| Center canvas | Adjust the view so all blocks fit on screen |
| Undo          | Undo the last action                        |
| Redo          | Redo an undone action                       |

### Using AI Builder

In **AI Builder** on the right, describe in natural language what you want to create or change, and the AI builds or edits the workflow automatically.

{% hint style="success" %}
If you enter a prompt while one or more blocks are selected, the AI scopes its changes to those blocks.
{% endhint %}

<figure><img src="/files/CZmJNyCFaQC9QMJta7ko" alt="Screenshot of AI Builder"><figcaption><p>AI Builder</p></figcaption></figure>

### Adding blocks

You build a workflow by connecting blocks. Click **Add** on the canvas to open the block selection panel.

The available block types are as follows.

| Block type    | Description                                                                                                                  |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| AI Agent      | Generates text or structured outputs with an LLM. You can also add a use-case-specific AI agent from **AI agent templates**. |
| Conditional   | Branches execution based on a condition                                                                                      |
| Workflow Call | Runs another workflow as a step                                                                                              |

<figure><img src="/files/h1lDnhIpryYAhwHjwWN1" alt="Screenshot of the block selection panel"><figcaption><p>Block selection panel</p></figcaption></figure>

For details on configuring the AI Agent block, see [AI Agent block](/workflow/ai-agent-block.md).

Outputs from upstream blocks you connect are passed to the AI Agent block automatically as context. To reference user inputs or explicitly defined inputs, use `{{variable_name}}`.

To insert a block in the middle of a workflow, click **Add** at the point where you want to insert it.

To edit a block's settings, select the block and click **Block settings** from the node or the current selection. The settings panel opens over the canvas.

### Configuring a Conditional block

| Field               | Description                                                                                                               |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Name                | Display name of the block                                                                                                 |
| Description         | Description text for the block                                                                                            |
| Condition mode      | Select AI (evaluated by an LLM) or Expression (evaluated by a JQ expression)                                              |
| Condition prompt    | In AI mode, write the condition that the AI evaluates as true or false                                                    |
| Condition model     | Select the AI model used by the Conditional block to evaluate true or false                                               |
| Thinking effort     | For supported reasoning models, adjust how much internal reasoning the Conditional block uses in AI mode                  |
| JQ expression       | In Expression mode, enter a JQ expression that evaluates to true or false against the inputs                              |
| Then block          | The block to run when the condition is true                                                                               |
| Else block          | The block to run when the condition is false (optional)                                                                   |
| Max loop iterations | When a branch target is an upstream block, set the maximum number of repetitions before switching to the alternate branch |

In a Conditional block, in AI mode, outputs from connected upstream blocks are passed automatically as context. In Expression mode, you can reference the output as `.input` when there is one upstream block, or as variables such as `.review_result` derived from each upstream block's ID when there are multiple. If a block ID contains `-` or `.`, those characters are replaced with `_`.

If the selected model supports it, you can adjust **Thinking effort** to trade off response speed and depth of reasoning. Leave it on **Default** to use the model's recommended setting.

**About JQ expressions**

A JQ expression is a way to extract values from a block's output (JSON data) or to evaluate conditions. The leading `.` means "of this data," and the field name that follows points to a specific value.

| Example                  | Description                                                       |
| ------------------------ | ----------------------------------------------------------------- |
| `.status == "completed"` | Checks whether the value of the `status` field equals "completed" |
| `.count > 0`             | Checks whether the value of the `count` field is greater than 0   |
| \`.items                 | length > 0\`                                                      |
| `.result != null`        | Checks whether the `result` field is not empty                    |

{% hint style="warning" %}
A JQ expression used in Expression mode must return either true or false.
{% endhint %}

### Configuring a Workflow Call block

Select the Workflow Call block and configure the following in the **Details** tab of the block settings panel.

| Field       | Description                                    |
| ----------- | ---------------------------------------------- |
| Name        | Display name of the block                      |
| Description | Description text for the block                 |
| Workflow    | Select the workflow to run as a child workflow |

{% hint style="warning" %}
If the workflow selected as the child workflow is archived or deleted, this block shows a validation error. Select a different workflow to fix the error.
{% endhint %}

### Configuring user inputs

User inputs are dynamic values that the user can change at run time.

1. In the header, click **User inputs**.
2. Click **Add user input** to add an input item.
3. Set the type (Text, Number, or File) for each input item.

You can reference an added user input from prompts using the `{{variable_name}}` format.

<figure><img src="/files/yuofOi1jzV3UkkYdRBsv" alt="Screenshot of the user inputs settings"><figcaption><p>User inputs settings</p></figcaption></figure>

### Operating on blocks

Right-click a block on the canvas to run the following actions. You can also operate on multiple selected blocks at once.

Right-clicking a block selects that block before the menu opens. The menu header shows the selected block name, or the number of selected blocks when multiple blocks are selected. Right-click the empty canvas to clear the current selection and open a menu with canvas actions such as **Paste**.

| Action       | Description                                    |
| ------------ | ---------------------------------------------- |
| Copy         | Copy the selected blocks to the clipboard      |
| Cut          | Cut the selected blocks                        |
| Paste        | Paste the copied or cut blocks onto the canvas |
| Delete       | Delete the selected blocks                     |
| New Workflow | Split the selected blocks into a new workflow  |

{% hint style="warning" %}
A workflow must contain at least one block. You cannot cut the last remaining block.
{% endhint %}

### Saving a workflow

Click **Save** in the header to save your changes. If there are unsaved changes, a dialog appears when you leave the screen, asking whether to save.

{% hint style="info" %}
You can save even when there are validation errors. However, you cannot run the workflow until all errors are fixed.
{% endhint %}

### Exporting a workflow

To download the workflow definition as a YAML file, in the top-right of the editor, click **More actions**, then click **Export**.

### Configuring workflow triggers

Workflow triggers let you start a workflow automatically from external systems (the API), a recurring schedule, or GitHub events (push, pull request, and so on), without manually clicking the run button.

For details, see [Configure triggers](/workflow/workflow-execution.md#configure-triggers) in "Run a Workflow."

## Review feature

When you enable **Review required** in the block settings panel, the workflow pauses after that block finishes and waits for human review. The reviewer can choose one of the following actions.

{% hint style="info" %}
Review required is available on AI Agent blocks.
{% endhint %}

| Action               | Description                                                             |
| -------------------- | ----------------------------------------------------------------------- |
| Approve              | Pass the output to the next block as is and resume the workflow         |
| Approve with changes | Edit the output, then pass it to the next block and resume the workflow |
| Reject               | Stop the workflow                                                       |

{% hint style="info" %}
A run that is waiting for review stays paused until it is approved or rejected.
{% endhint %}

## Troubleshooting

### Validation errors

| Situation                                                 | Cause                                             | Resolution                                                                           |
| --------------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------ |
| Cannot run a workflow                                     | Unresolved validation errors remain               | Click the error count shown in the header to review the details, then fix the issues |
| "Circular dependency detected"                            | A block is connected so that it depends on itself | Review the block connections and remove the cycle                                    |
| "Depends on a non-existent block"                         | The referenced block was deleted                  | Reconfigure the input reference                                                      |
| "The Then and Else of the Conditional block are the same" | The same block is set as both Then and Else       | Specify different blocks                                                             |
| "Select a child workflow"                                 | No workflow is set for the Workflow Call block    | Select a workflow in the block settings panel                                        |
| "The selected child workflow is no longer available"      | The configured workflow was archived or deleted   | Select another workflow                                                              |

### Model errors

| Situation                           | Cause                                                      | Resolution               |
| ----------------------------------- | ---------------------------------------------------------- | ------------------------ |
| "The selected model is unavailable" | The selected model is not provided by any enabled provider | Select a different model |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.genesis.autify.com/workflow/workflow-creation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
