Module outputs let a processing module return values to whatever triggered it, e.g., another module or an external system calling the module's API. Think of them as the module's return values: the counterpart to start parameters, which are the module's inputs.
Module outputs are available on processing modules only. Input and scheduled modules do not have outputs.
What outputs look like
Outputs are a typed list of named values. Each output has:
- A name – how the caller references the returned value.
- A type – such as text, number, date, or email.
- An optional description.
On the module's result node, you map each declared output to a value from the module's local variables. When the module finishes, the caller receives the outputs as a structured object.
Configure outputs
- Open a processing module in the editor.
- On the API node sidebar, you will see an OUTPUTS section below the INPUTS (start parameters).
- Click + Add output and give it a name and type.
- Open the Result node and map each output to the variable that should be returned.
If an output is left unmapped, the caller receives null for that field.
Consume outputs
From another module
When you add a Batch process action that calls a processing module, the outputs appear as variables you can reference in the calling module. They become available after the node runs.
From the API
The module's API response contains the outputs under an outputs key, shaped according to the output schema you defined:
{
"outputs": {
"riskScore": 42,
"decision": "approve",
"contactEmail": "reviewer@example.com",
"reviewedOn": "2026-04-17"
}
}
Change outputs safely
Adding a new output is safe: existing callers simply ignore fields they do not know about.
Renaming, removing, or changing the type of an output is a breaking change for callers.
The editor does not rewrite caller references for you, so you need to update them manually. For all breaking changes, publish a new version of the module and coordinate with callers before pointing them at the new version.
Outputs and module type conversions
Module outputs are exclusive to processing modules. If you convert a module to a different type, outputs are affected:
- Processing → Input: Outputs are removed.
- Processing → Scheduled: Outputs are removed.
- Input → Processing: You start with no outputs – add them as needed.
- Scheduled → Processing: You start with no outputs – add them as needed.
The conversion dialog warns you before any outputs are removed. For more on converting between types, see Module Types: Input, Processing, and Scheduled.
Best practices
-
Name outputs by what they mean, not how they are computed. For example,
riskScoreis clearer thancomputedRisk. - Keep the output surface stable. Each caller is a consumer of your module's contract. Changing names or types costs them work.
Occasionally asked questions
Can an Input module return outputs?
No. Input modules are user-facing and terminate in a result page for the end user, not a structured return value. If you need outputs, convert the module to processing.
Do outputs count as variables inside the module?
No. Outputs are the module's external contract. Inside the module you use regular variables, and the result node maps those variables onto the outputs.
What if I forget to map an output?
Unmapped outputs are returned as null. The module still runs successfully.