Skip to main content
output nodes mark the end of a path through a workflow. A workflow can have many — typically one per resolution class (APPROVED, IN_REVIEW, REJECTED, REPORTED_TO_REGULATOR, …).

Configuration

{
  "id": "out-approved",
  "type": "output",
  "data": {
    "label": "APPROVED",
    "returnAllFields": false,
    "description": "Happy-path terminal state. Client is notified asynchronously.",
    "schema": [
      { "name": "case_id",          "type": "string",  "required": true, "nullable": false },
      { "name": "decision",         "type": "string",  "required": true, "nullable": false },
      { "name": "risk_score",       "type": "integer", "required": true, "nullable": false },
      { "name": "risk_band",        "type": "string",  "required": true, "nullable": false }
    ]
  }
}
FieldNotes
labelHuman-readable terminal name. Surfaced in the queue and audit log.
returnAllFieldsIf true, the entire run context is persisted with the decision. If false, only fields declared in schema.
schemaExplicit list of fields to extract from the context into the decision record. Same type system as input.schema.
descriptionWhat this terminal means in business terms.

When to use returnAllFields: true

  • Sub-flows that pass their entire output downstream.
  • Audit-heavy terminals that benefit from the full evidence pack on the decision (KYB approvals, regulator submissions).
Otherwise prefer an explicit schema — the decision record stays compact and the audit export bundles read better.

Common terminal labels

Workflow typeTypical terminals
Onboarding (KYC / KYB)APPROVED, IN_REVIEW, REJECTED, PENDING_DOCS
Transaction monitoringAPPROVED, BLOCKED, REPORTED_TO_REGULATOR
Lifecycle webhook consumercase_updated
Sub-flowSingle named outcome (link_delivered, case_closed, …)