Overview
Inside a BPMN process, every node, including subprocess, integration workflow, AI agent, business rule, and user task, reads from and writes to a shared store of process variables (also called process instance data in code). This page explains the mental model: where each node typeβs output lands, and how the next node, or a user task screen, reads it. For the configuration syntax of any specific mapping, follow the links to the dedicated pages.The mental model
A process variable is a key on the process instance data store. Every node configures:- Input mapping: which existing process variables to send into the node, or how to compute them.
- Output mapping or result key: where the nodeβs output is written back into the process variables.
Choose the right pattern
| If you need to⦠| Use this node | Where its output lands | Reference |
|---|---|---|---|
| Run a stateful, multi-step BPMN flow with its own user tasks | Subprocess (call activity) | Mapped into parent variables via Data Mapper | Data mappers |
| Call an integration workflow (REST, DB, AI ops) and capture the result | Send Message Task with Start Integration Workflow action | Written to the configured Result key, then a Receive Message Task unblocks the process | Start Integration Workflow |
| Call an AI agent (extraction, decision, generation) | Service Task with the agent integration | Mapped back to process variables in the actionβs output mapping | BPMN integration with agents |
| Compute or transform values inline | Business Rule action | Writes to keys passed to output.put(key, value) | Business rule action |
The Receive Message Task pattern (workflows)
This is the part most people miss the first time. When a process triggers an integration workflow with Start Integration Workflow, the process must wait for the workflow to finish before reading its output. To wait, place a Receive Message Task after the Send Message Task that triggers the workflow.Add a Send Message Task
Add a Receive Message Task immediately after
Reading process variables downstream
Once a value is in process variables, the way you reference it depends on where you are reading from:- In another nodeβs input mapping (Send Message Task action, agent input, etc.): use the placeholder syntax documented on that nodeβs page. Example for workflow input mapping:
${processInstanceData.customer.id}(see Start Integration Workflow β Input mapping). - In a subprocessβs Data Mapper: use
${variableName}against the subprocessβs defined Input Parameters. The Data Mapper is the canonical interface for parent β subprocess data flow (see Data mappers). - In a business rule script: read from
input(the keys you mapped in) and write tooutputviaoutput.put("keyName", value). See Business rule action. - In a gateway condition: reference the same process variables to choose a path.
- In a user task screen: bind UI components to process data. The value flows automatically once the variable exists in process instance data.
End-to-end example
A loan-onboarding process that uses an integration workflow to fetch a credit score, then an AI agent to extract data from an uploaded document, then a user task to confirm the final summary.User uploads document on a user task
loan.documentId.Send Message Task triggers a credit-check integration workflow
loan.customerId. Result key set to creditCheck.Receive Message Task waits for the workflow
creditCheck in process variables.Service Task calls the document-extraction agent
loan.documentId. Output mapping writes the extracted fields to loan.extracted.Common pitfalls
Reading a workflow result before the Receive Message Task
Reading a workflow result before the Receive Message Task
Result key collision
Result key collision
creditCheck, addressVerification) instead of generic ones (result, data).Wrong placeholder prefix
Wrong placeholder prefix
${variableName} works in subprocess Data Mappers; ${processInstanceData.path} works in integration node config. Mixing them produces unresolved placeholders at runtime. Follow the syntax shown on each nodeβs page.Expecting a synchronous result back to an external HTTP caller
Expecting a synchronous result back to an external HTTP caller
Related resources
Data mappers
Start Integration Workflow
BPMN integration with agents
Business rule action
input and write to output
