Appearance
Return Value
In a workflow that's run by an Execute Workflow node in another workflow, this node designates the value handed back to the parent. It's the sub-workflow equivalent of a return statement — the parent's Execute Workflow node receives exactly what you put here.
When to use
- You've factored logic into a sub-workflow and the parent needs its result — a computed score, an enriched object, a yes/no decision.
- Any "call this sub-workflow and use what it gives back" pattern.
Configuration
| Field | Required | What it does |
|---|---|---|
value | No | The value returned to the parent. JSON or text; supports {{...}} refs, so you can return data computed earlier in the sub-workflow. Blank = the upstream node's output. |
If value is a JSON string it's returned as a parsed object; otherwise it's returned as-is.
How the parent reads it
The parent's Execute Workflow node exposes it as output:
Parent workflow:
[Trigger] → [Execute Workflow → "score player"] → [If: {{execute_workflow.output.risk}} == "high"]
"score player" sub-workflow:
[Trigger] → [API calls…] → [Return Value]
value: { "risk": "high", "score": 82 }The parent reads {{execute_workflow.output.risk}} — a clean, documented value.
What it outputs
{ returnValue: <the value you set> }Return is terminal — it has no outgoing connection; the branch ends there.
Gotchas
- Without a Return node, the parent's Execute Workflow still gets something — the sub-run's raw execution record — but not a clean designated value. Add a Return node whenever the parent needs a specific result.
- Last one wins. If more than one Return node runs (e.g. across branches), the last to execute sets the value.
- Only meaningful when called as a sub-workflow. In a normally-triggered run there's no parent to receive the value — it's simply recorded and ignored.