New274+ blocks and 249+ tools are now fully documented
Flow Control
Block

Workflow Block

Execute another workflow

The Workflow block executes another saved workflow as an inline sub-workflow. Use it to build modular, composable automation by combining smaller tested workflows into layered systems — for example, an orchestrator that delegates work to specialist workflows.

Overview

PropertyValue
Typeworkflow
Categoryblocks
Color#705335

When to Use

  • Reuse a shared "send notification" or "process data" workflow from multiple parent workflows
  • Break complex logic into smaller, independently testable units
  • Build orchestrator patterns where a top-level workflow routes tasks to specialist sub-workflows
  • Chain workflows sequentially so the output of one feeds the input of another
  • Avoid duplicating block logic — maintain it in one child workflow and call it everywhere it is needed

Configuration

Select Workflow (required)

A dropdown that lists every workflow in the current workspace except the workflow you are editing (to prevent recursion). Choose the workflow to execute. The value stored is the workflow's internal workflowId string.

Input Variable (optional)

A short text field. Provide a {{blockName.field}} reference (or a literal string) to pass data into the child workflow. Whatever you supply here is made available as start.input inside the child workflow, allowing it to receive context from the parent. Leave blank if the child workflow does not need external input.

Recursion protection

Nested workflow calls are guarded against infinite loops. In addition to the editor preventing a workflow from selecting itself, the executor rejects a run once the chain of workflows calling one another gets too deep — both for inline child-workflow blocks and for cycles that cross the API/MCP boundary (workflow A's request triggering workflow B, whose request triggers A again). The chain is carried between executions in the X-Zelaxy-Via header, so the guard holds even when workflows invoke each other over HTTP rather than as nested blocks.

Inputs & Outputs

Inputs

  • workflowId (string) — ID of the workflow to execute; populated automatically from the Select Workflow dropdown
  • input (string) — Variable reference or literal value to pass to the child workflow; available as start.input inside the child workflow

Outputs

  • success (boolean) — Whether the child workflow execution completed without error
  • childWorkflowName (string) — Display name of the child workflow that was executed
  • result (json) — The full execution result returned by the child workflow's Response block
  • error (string) — Error message if the execution failed; empty when success is true

Tools

Workflow Executor (workflow_executor) — Calls /api/tools/workflow-executor with the target workflowId and an optional inputMapping object. It runs the child workflow synchronously and returns success, childWorkflowId, childWorkflowName, duration, and the full child workflow result merged into the response.

YAML Example

workflow_1:
  type: workflow
  name: "Workflow"
  inputs:
    workflowId: "wf_abc123def456"
    input: "{{agent_1.result}}"
  connections:
    outgoing:
      - target: response_1

Reference the child workflow's outputs in downstream blocks using {{workflow_1.result}}, {{workflow_1.success}}, or {{workflow_1.error}}.