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

# Invoke Workflow

> Execute another workflow and return its output

`action.invoke-workflow`, Execute another workflow and return its output

## Configuration

Configuration goes inside the step's `with:` block.

<ParamField path="workflow" type="string">
  Workflow to invoke, definition name or wf\_ id (tenant-scoped)
</ParamField>

<ParamField path="workflowId" type="string">
  Legacy alias for workflow when the value is a wf\_ id
</ParamField>

<ParamField path="execution" type="&#x22;inline&#x22; | &#x22;child&#x22;">
  inline: run target steps in this execution (default). child: spawn a separate run with lineage.
</ParamField>

<ParamField path="input" type="record<string, unknown>">
  Input record keyed by the invoked workflow's declared inputs
</ParamField>

<ParamField path="wait" type="boolean">
  Child mode only. Wait for the invoked workflow to complete and return its output (default: true). Set false for fire-and-forget.
</ParamField>

<ParamField path="timeout" type="number">
  Child mode only. Max wait time in ms when waiting (default: 300000)
</ParamField>

<ParamField path="pollInterval" type="number">
  Child mode only. How often to poll status in ms when waiting (default: 1000)
</ParamField>

## Output

Returns `record<string, unknown>`. When wait is true, the invoked workflow's declared output fields are flattened to the top level alongside a `files` array, reference them as \{\{ steps.\<invoke>.output.\<field> }} (there is no `.data` or `.result` wrapper). When wait is false, execution metadata. Call get\_workflow\_output\_schema to see the exact resolved fields.
