Portal Community

Async Mode Timeline


Parent:  ──[A]──[B]──[SubWorkflow]──[C]──[D]──▶ (completes)
                          │
                          │ Starts child (does NOT wait)
                          ▼
Child:                 ──[X]──[Y]──[Z]──▶ (runs independently)
  

What the SubWorkflow Node Returns in Async Mode

In async mode, the SubWorkflow executor starts the child and immediately returns. The node output is:

{
  "childExecutionId": "exec-101",
  "status": "Started",
  "startedAt": "2026-05-25T10:00:00Z"
}

The parent can store this childExecutionId for later use (e.g., pass it to a subsequent WaitForWorkflow node or store it in an entity for status tracking).

Use Cases for Async Mode

PatternDescription
Notification side-effectParent creates an order, fires async "SendConfirmationEmail" workflow
Audit / compliance loggingParent fires async "LogComplianceAudit" workflow without blocking
Fan-out parallel processingParent fires N async child workflows for each item in a list, then uses WaitForWorkflow to collect results
Long-running background taskParent launches a report generation workflow and returns immediately to the user

Tracking Child Status

Use the ExecutionStatusNode (from the Processes capability) with the childExecutionId to poll child status:

{
  "nodeType": "ExecutionStatus",
  "config": {
    "executionId": "$output.launchReportWorkflow.childExecutionId"
  }
}
// Output: { status: "Completed", completedAt: "...", output: {...} }

Error Handling in Async Mode

Child failures in async mode are silent from the parent's perspective — the parent has already moved on. To handle child failures:

outputMap is ignored in async mode. Since the parent doesn't wait for the child, there is no child output to map. The outputMap config field is silently ignored when mode: "async".