> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fetchhive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating and Editing

> Create a workflow, add steps on the canvas, configure start inputs, and work with step settings

Use the workflow editor when you want to build a multi-step flow inside the dashboard. You start from the **Workflows** list, open the canvas, add steps between **Start** and **End**, and configure each step from **Step settings**.

## Overview

The workflow builder is a canvas-based editor under **Workflows**. Each workflow starts with **Start** and **End**. Add steps with the `+` connectors on the canvas, or click **Add Step** in the bottom control bar to append a new step before **End**.

You can add a step, edit its settings, add **Start** inputs, run a single step, duplicate a step, remove a step, disable or enable a step, and drag steps onto insert points to reposition them while you iterate. You can also duplicate an entire workflow from the editor breadcrumb menu.

## How do I create a workflow? <a href="#create-workflow" id="create-workflow" />

Open **Workflows** in the sidebar.

Click **Add Workflow**.

Enter a name for the workflow. If your workspace uses categories, you can also choose a category.

Click **Save** to open the workflow editor.

## How do I duplicate a workflow? <a href="#duplicate-workflow" id="duplicate-workflow" />

Open the workflow in the editor.

Open the workflow name menu in the breadcrumb and choose **Duplicate**.

Confirm the action. Fetch Hive creates a copy named after the original with `(Copy)` appended, keeps the same step graph (including condition branches and iteration loops), and clears previous run output so the copy starts fresh. Deployments and schedules stay on the original workflow and are not copied.

## How do I add a step on the canvas? <a href="#add-step" id="add-step" />

Open the workflow in the editor.

Start from the default canvas with **Start** at the top and **End** at the bottom.

To insert a step between two existing nodes, click the `+` connector on that edge. To append a step at the end of the workflow (just before **End**), click **Add Step** in the bottom control bar.

Either action opens **Search steps...**.

Choose the step you want. The current picker groups steps under categories such as **AI**, **Research**, **Microsoft**, **Generation**, **Utilities**, and **Integrations**.

After you select a step, Fetch Hive inserts it into the workflow and opens **Step settings** for that new step.

## How do I reorder steps on the canvas? <a href="#reorder-steps" id="reorder-steps" />

Drag a step card onto any insert point on the canvas — the `+` buttons between steps, an empty-branch placeholder, a convergence `+`, or the slot after an iteration's **Complete** label. Neighbouring steps slide apart to preview where the step will land; drop to confirm.

You can move plain steps along the main spine, into or out of a condition branch, and into or out of an iteration body. You can also drag a **condition** or **iteration** header — its branches or body move with it. You cannot drag **Start** or **End**. A **condition** can live inside an iteration body; nested **iteration** headers and Human in the Loop steps cannot. Reordering is also disabled while a workflow run is in progress.

Variable references are not rewritten automatically. If a moved step still references another step that now runs later — or now sits inside an iteration and runs once per item — update those references in **Step settings**.

## How do I add integration steps with Copilot? <a href="#copilot-integration-steps" id="copilot-integration-steps" />

Ask Workflow Copilot for the outcome you want and name the app when it matters,
for example, "Add a Gmail step that sends the summary from the previous step."
Copilot searches the integration actions currently available to your workspace,
checks the selected action's required fields, and proposes a configured step.

Review the proposed action, including its position in the workflow, then click
**Apply**. Copilot uses only available actions and exact action requirements. It
doesn't guess hidden action names or connection IDs.

You can also ask the dashboard assistant to create a complete workflow that
contains integration steps. It follows the same action lookup before proposing
the workflow.

If the selected app isn't connected, the step can still be added. Open
**Step settings**, connect or select the account under **Authentication**, and
complete any missing fields before you test, run, version, or deploy the
workflow.

## Can the dashboard assistant use an existing workflow template? <a href="#copilot-workflow-templates" id="copilot-workflow-templates" />

Yes. When your request clearly describes a workflow, the dashboard assistant
searches the active templates available to your account before it builds a new
workflow. It compares each template's name, description, and included step
types with the outcome and tools you requested.

If one template is a clear match and includes every required tool, the
assistant proposes a workflow created from that template. Click **Confirm** to
install it in your workspace and open it in the workflow editor. If several
templates could fit, the assistant asks you to choose. If none is a strong
match, it proposes a newly authored workflow instead.

Templates can be shared with your account or available globally. After
creation, review each step and finish any required **Authentication** settings
before testing or running the workflow.

## How do I save and reuse a workflow as a template? <a href="#save-workflow-template" id="save-workflow-template" />

Open a saved workflow in the editor, wait until its status shows **Saved**, open
the menu beside the workflow name, and choose **Save as template**. Enter a
template name and description. Both fields are required. The saved template is
immediately available to everyone in your account, across workspaces. Select
**Save**, or press **Ctrl+Enter** on Windows/Linux or **Command+Enter** on macOS.

Turn on **Submit to Marketplace** if you also want Fetch Hive staff to review it
for the public marketplace. Your private account template is still saved
immediately. Fetch Hive creates a separate review copy and removes connected
account identifiers, private resource selections, custom headers, request bodies,
private URLs, and uploaded assets. A pending or rejected review copy is never
shown in the template gallery; approval publishes it as a global template.

Open **Workflows > Templates** to browse your account templates and approved
global marketplace templates in one list. Templates show their public author
username when available; staff-authored marketplace templates show as Fetch Hive.
After a marketplace submission is approved, the private account copy is hidden
from this combined gallery so you only see the published marketplace card (your
account still keeps the private copy). Choose **View details** to inspect the
included steps, or **Use template** to name the new workflow, choose its
category, and install it in the current workspace. Review step settings and
connect any required **Authentication** before running the new workflow.

## How do I configure start inputs and step settings? <a href="#configure-workflow" id="configure-workflow" />

Click **Start** to open the start step settings.

Use **Add Input** to define the variables your workflow run should accept. For each input, set the display name, variable name, input type, and whether it is required.

Start inputs can be **Text** or **Array**. Use **Text** for a single value. Use **Array** when the caller should pass a JSON array, such as `["one", "two"]` or `[{"url":"https://example.com"}]`.

Start inputs can also include an optional **Example value**. Examples are design-time only: they help the editor preview variables and wire later steps before any workflow run exists, but they are not default run values and do not spend tasks.

Use the sample input actions beside **Example value** to load a saved example or save the current example for reuse.

For array inputs, use an example JSON array that matches the shape callers will provide. For example, `[{"name":"Fetch Hive","url":"https://fetchhive.com"}]` lets an **Iteration** step use `{{companies}}` as its iterator and lets steps inside the iteration reference fields such as `{{company_loop.item.url}}` before the workflow has run.

Click any non-terminal step on the canvas to open **Step settings** for that step.

The exact settings depend on the step type. For example, **AI Prompt** exposes its prompt messages, model parameters, response format options, and failure behavior in the same sheet. When an **AI Prompt** step uses an Anthropic Claude model, its model parameters also include **Prompt Cache** with **Disabled**, **5 minutes**, and **1 hour** options.

If an AI-backed workflow step uses a retired model, the step settings show a warning and step tests or workflow runs are blocked with `model_deprecated`. Choose an active model on the step before running the workflow.

Some read-only steps can run multiple versions at the same time: Google Search, Google News, Google AI Mode, Google AI Overview, Bing Search, Exa Search, Exa Similar, Copilot Search, Website Scrape, and RSS Feed. Turn on **Parallelization** in the step settings, add the versions you want to run, and set only the fields that should differ between versions.

When the workflow runs, Fetch Hive waits for every version to finish and stores the step output as an array in version order. Later steps can reference that array with `{{step_2.output}}`. To reach a field that exists on each version's result object, use the `*` wildcard pluck: `{{step_2.output.*.field}}`. A bare field name on the array (for example `{{step_2.output.items}}`) resolves to null.

The `*` pluck does **not** flatten nested arrays. For a parallelized **RSS Feed** step, `{{rss_step.output.*.items}}` is an array of item-arrays. Add a **Data Transform** step with mode **Flatten array** and that expression as the source, then point an **Iteration** iterator at the flatten step's `{{step_N.output}}`.

Parallelization is not available for steps inside an **Iteration** body. If you need multiple search or fetch versions, run that parallelized step before the iteration and iterate over its output (flattening first when the plucked path is nested), or keep the steps inside the loop non-parallel.

Your plan controls how many versions a single step can run in parallel. If a version fails and the step is set to **Continue**, Fetch Hive omits that failed version from the output array and keeps successful versions in order. If no versions succeed, the output is an empty array. If the step is set to **Terminate Workflow**, the workflow stops.

For Iteration steps, the iteration's own failure behavior controls the loop body. If the iteration is set to **Continue**, a failed body step stops that item and leaves `null` for that item in the iteration output, even if the body step is set to **Terminate Workflow**. If the iteration is set to **Terminate Workflow**, any failed body step stops the workflow.

Use **When the step fails** when you need to decide whether the workflow should stop or continue after a step error.

## How do I edit, duplicate, disable, or remove a step? <a href="#manage-step" id="manage-step" />

Hover over a step node on the canvas to reveal the step actions.

Use **Run Step** when you want to test that step from the canvas.

Use **Disable step** or **Enable step** to control whether the step participates in the workflow. Disabled steps are skipped on the main path, inside condition branches, and inside iteration loops. **Run Step** still runs that step alone for testing even if it is disabled.

Use **Duplicate step** to insert a copy of the current step into the workflow.

Use **Remove step** if you want to delete the step. Fetch Hive asks you to confirm before it removes it.

See also: [Testing and Iteration](./testing-and-iteration) and [Publishing and Versioning](./publishing-and-versioning)
