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

# ETL: Run Workflow

> Use the Run Workflow task to execute another workflow as a sub-run inside an Integrate.io ETL workflow, with scoped variables and branching.

The Run Workflow task executes another workflow as a sub-run of the current workflow. The parent workflow blocks until the child workflow reaches a terminal state, then branches on the outcome.

Use Run Workflow to compose workflows out of smaller workflows. To run a single dataflow as a step, use the [Run Package task](/etl/using-components-run-package-workflow) instead.

## Overview

* Runs another workflow as a sub-run attached beneath the parent.
* The parent workflow waits until the child workflow finishes (succeeds, fails, or is stopped) before continuing.
* The child sub-run runs on the same cluster as the parent.
* Stopping the parent run cascades and stops any child sub-runs.
* The child workflow's outcome drives the parent's success, failure, and completion branches.

## Configuration

<Steps>
  <Step>Add a **Run Workflow** task to the workflow canvas.</Step>
  <Step>Select the workflow you want to run. The selector only lists workflows, and you cannot reference the workflow the task lives in.</Step>
  <Step>Optionally set variable overrides to pass into the child workflow.</Step>
  <Step>Connect the outgoing edges to define what runs on success, failure, or completion of the child workflow.</Step>
</Steps>

## Nesting limit

A workflow can run other workflows, but those child workflows cannot themselves contain a Run Workflow task. Nesting is limited to one level.

Integrate.io checks this rule when you save the workflow and again when you start a run. If a workflow violates the limit, the validation error is:

> A Workflow that is run by another Workflow cannot itself run a Workflow (nesting is limited to one level)

A workflow also cannot reference itself, directly or through another workflow. Integrate.io blocks cycles at save time and at run launch.

## Variables and secrets

* **Variable overrides** you set on the task pass into the child run and merge over the child workflow's stored variables for that run only.
* Values you do not override track the child workflow. If the child's variables change, the next run picks up the change without re-saving the parent.
* **Secrets** always come from the child workflow. Per-task secret overrides are not supported.

## Run tree and monitoring

The child workflow appears as a sub-run beneath the parent run in the job history. You can open it to see its own tasks, logs, and status. Stopping the parent run also stops the child sub-run.

## Use cases

* Reuse an existing workflow as a step inside a larger orchestration.
* Split a long workflow into smaller workflows that can also run on their own.
* Branch the parent workflow based on whether a child workflow succeeds or fails.
