Subworkflow

Calls another workflow as a step in the current workflow. The target workflow runs synchronously — the parent workflow pauses, the subworkflow executes, and the parent resumes with the result.

When to Use

Use Subworkflow when:

  • You want to reuse logic shared across multiple workflows
  • A workflow has grown too large and you want to split it into composable pieces
  • You want to call a standalone workflow from within a larger pipeline

The target workflow must have a Manual Trigger with allowWorkflowInvocation enabled.

Inputs

HandleTypeDescription
inputanyData passed to the subworkflow's trigger payload.

Output

HandleTypeDescription
resultanyThe value returned by the subworkflow's Return node.

The result is accessed as {{ subworkflow.result }} in the parent workflow.

Settings

SettingTypeDescription
workflowIdstringThe ID of the workflow to call. Paste it from the target workflow's URL.

Setting Up a Subworkflow

The target workflow must:

  1. Use a Manual Trigger node as its entry point
  2. Have allowWorkflowInvocation enabled on the Manual Trigger node
  3. Include a Return node at its exit point with the value to return

Example

Parent workflow that validates and enriches data using two separate subworkflows:

Webhook → Subworkflow (validate-user-wf) → Subworkflow (enrich-profile-wf) → Send Email

validate-user-wf structure:

Manual Trigger → HTTP Request (call auth service) → If (user active) → Return (user data)
                                                                     → Stop

Access the subworkflow's output in the parent:

{{ subworkflow.result.email }}
{{ subworkflow.result.plan }}

Common Gotchas

  • Target must have Manual Trigger: If the target workflow uses a Webhook or API Endpoint trigger, calling it as a subworkflow will fail at runtime.
  • Circular calls: Do not call workflow A from workflow B if workflow B is already called from A. Circular subworkflow chains will hit a recursion limit.
  • Error propagation: If the subworkflow fails (a node throws, no Return fires), the parent workflow will fail at the Subworkflow node.

See Also

  • Manual Trigger — configure the target workflow's entry point
  • Return — return a value from the subworkflow
On this page