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

# Test and deploy workflows

> How test runs try a draft safely, how deploying creates a numbered release, and how versions, rollback, pausing and failure notifications work.

A workflow has two kinds of run. A **test run** tries the draft you are editing. A **production
run** executes the live release you deployed. **Past runs** labels each **Test** or **Production**.

## Test runs

Every run you start from the canvas is a test run of the draft as it is now. You do not need to
deploy first. Start one from a step card:

* **Run workflow from here** — from that step onward; on the trigger it runs the whole workflow;
* **Run this node only** — just that step.

The builder saves pending edits first. If they cannot be saved, the run does not start, so a test
never runs an older copy than the one on screen.

A test run is safe to repeat:

* every action is recorded as **Shadowed: test run, not dispatched** — nothing is sent and no
  approval is requested;
* a timed wait is not waited out; the step notes that the wait was not observed;
* test runs never send failure notifications.

<Warning>
  Agent, AI condition, web search and image steps still call their models in a test run, and are
  billed like a production run. Generate image and Create PDF steps save their files, marked as from
  a test run.
</Warning>

A test run uses your own connected accounts and needs the **Operator** role or higher.

### Test a form trigger

A form trigger has a **Test** tab. Choose **Trigger only** or **Full flow**, then:

* **Fill form** — type sample values for the draft form's fields; or
* **Replay events** — resend one of the last 20 real submissions exactly as recorded. If the form
  has changed since, Hive names the field that no longer fits.

Sample input is validated like a real submission, for example "Email is required by the trigger
form." A trigger with no form takes no sample input.

## Deploy a release

Deploying turns the draft into a numbered, immutable release and makes it live.

<Steps>
  <Step title="Open Deploy">
    Select **Deploy** in the builder header.
  </Step>

  <Step title="Choose the version bump">
    **Patch**, **Minor** or **Major**. **New version** shows the number: a first deploy is `0.0.1`,
    `0.1.0` or `1.0.0`, and each later deploy bumps the most recent version.
  </Step>

  <Step title="Review the changes">
    The dialog lists steps added, removed or changed and connections rewired since the live release,
    plus any warnings. Editing a comment, a title or a card's position is not a change.
  </Step>

  <Step title="Describe and confirm">
    Enter a **Deploy description** (required, up to 500 characters) and select **Confirm deploy**.
  </Step>
</Steps>

Hive checks the whole workflow before it deploys and refuses, with the reason, when:

* the graph is invalid, has a cycle, or a branch leaves a loop;
* a loop or wait has no limit, or the workflow could exceed the
  [500-step run budget](/workflows/runs-and-errors#the-500-step-run-budget);
* a step reads a value that does not exist, or reads a step set to continue after a failure;
* an action is above your role, or a connected-app step is missing a required field or account;
* a step needs something your workspace does not have: an AI model, web search, image generation,
  Library file storage or live saved agents;
* an AI condition is blank, or a fixed web search contains a placeholder.

Each deploy is recorded in the audit trail. After deploying, keep editing freely: the live release
runs unchanged until you deploy again.

## Versions and rollback

**Past versions** lists every release. Select **Re-activate** on an earlier one to make it live
again. Nothing is deleted, and the next deploy still numbers from the most recent version.

Changing the live version ends the current public form link (create a new one), and can pause a
schedule someone else owns until they review it. See
[Schedules and public forms](/workflows/schedules-and-forms).

## Pause and resume

**Pause workflow** stops schedules and forms from starting new runs, without deleting anything.
Runs already in flight are not cancelled. A paused workflow shows **Resume on** followed by the
version that was live; selecting it re-activates that release.

## Production runs

Production runs execute the live release, never your later draft edits. They start from:

* a schedule, or **Run now** on a schedule;
* a public form submission, or **Fill in form** for an in-app form;
* **Run with my accounts** by a teammate you shared the workflow with.

Each action goes through your workspace's approval and safety policy: some run, some wait for
approval (the step reads **Awaiting approval** and the run carries on), and some are shadowed. When
the [kill switch](/admin/safety-and-control) is engaged, actions are not dispatched and unattended
runs are refused. Runs also count against your workspace's monthly run allowance.

## Failure notifications

List who to tell under **Notification recipients** in the workflow's settings (up to 20). When a
production run fails, each gets a card in their notification bell. That includes a scheduled run or
a public form submission Hive refused to start, for example because the kill switch is on or the
workspace has used its included runs.

* Only members of this workspace are notified. Hive sends no email.
* Test runs never notify.
* Each person gets at most one card per workflow per hour. Every failure is still in **Past runs**.
* The card names the workflow and how the run started, never the error.

<Note>
  **Monthly spend limit**, **Per-run limit**, **Hourly execution limit** and **Usage alerts** are saved
  with a workflow but not enforced yet.
</Note>

## Related

<CardGroup cols={2}>
  <Card title="Runs and errors" icon="list-check" href="/workflows/runs-and-errors">
    Follow a run, retries and cancelling.
  </Card>

  <Card title="Schedules and public forms" icon="calendar" href="/workflows/schedules-and-forms">
    Start production runs automatically.
  </Card>

  <Card title="Review and approve" icon="circle-check" href="/approvals/review-and-approve">
    What happens to actions that need approval.
  </Card>

  <Card title="Triggers and steps" icon="list" href="/workflows/workflow-steps">
    The complete step reference.
  </Card>
</CardGroup>
