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

# Run Workflow

> Run a callable workflow and wait for its returned data.

**Run Workflow** starts another workflow, waits for it to finish, and exposes
the value it returns.

## Quick start

<Steps>
  <Step title="Prepare the child workflow">
    Give it the **Sub-Workflow** trigger. Use **Data from Trigger** to read
    **Data In**, and **Return Data** to send a result back.
  </Step>

  <Step title="Select the workflow">
    Choose it in **Selected Workflow**, or connect a **Callable Workflow**
    value.
  </Step>

  <Step title="Send and receive data">
    Connect an optional **Payload** and use **Result** after the child run
    completes.
  </Step>
</Steps>

## Inputs

| Input                 | Type     | Required | Description                         |
| --------------------- | -------- | -------- | ----------------------------------- |
| **Selected Workflow** | Workflow | Yes      | Callable workflow to run.           |
| **Payload**           | Any      | No       | Passed to the child as **Data In**. |

## Output

| Output     | Type | Description                                         |
| ---------- | ---- | --------------------------------------------------- |
| **Result** | Any  | Returned child data, or `null` if none is returned. |

If the child run fails, this action fails with the child run's failure
message. Recursive workflow calls are rate-limited to prevent infinite loops.
