- Introduction
- Getting started
- Building with Maestro BPMN
- Understanding Maestro BPMN modeling
- Opening the modeling canvas
- Modeling your process
- Aligning and connecting BPMN elements
- Autopilot for Maestro (Preview)
- Process Repository
- Implementing a simple BPMN process
- Implementing a complex BPMN process
- Debugging
- Simulating
- Common implementation scenarios
- Building with Maestro Case
- Introduction to Maestro Case
- Maestro BPMN vs. Maestro Case: when to use case management
- The Maestro Case lifecycle: from event trigger to app experience
- Build your first case with Maestro Case
- Defining case keys (system vs. external)
- Establishing task I/O and write-back contracts
- Exit rules and early stage termination
- Modeling primary and secondary stages
- Triggering a case from Data Fabric
- Implementing stage-level personas and permissions
- Setting SLAs and automated escalation rules
- Configuring a rework loop (re-entry)
- Case Manager input and output contract
- Maestro Case component dictionary
- Building with Maestro Flow
- Integrations
- Operating
- Monitoring
- Optimizing
- Reference information
Data Transform operations for filtering, mapping, and grouping collections.
Transforms data using a variety of operations. The Data Transform node and its individual operation nodes (Filter, Map, Group By) are available as separate selectable nodes in the node palette.
When to use Data Transform vs Script
Use Data Transform operations when the transformation is a field-level operation on a collection. The available operations cover:
- Filtering
- Mapping
- Grouping
Use Script when the transformation requires conditional logic, arithmetic, or string manipulation, or when no dedicated operation covers the case. Both can be combined: a Data Transform operation can filter or reshape a collection, then pass the result to a Script node.
Output
All Data Transform operation nodes output their result as output, accessible downstream as $vars.<nodeName>.output.
Filter
Keeps only the entries in a collection that match your conditions.
Configuration
| Field | Required | Description |
|---|---|---|
| Input | Yes | The collection (array) to filter. Reference as $vars.<nodeName>.output. |
| Conditions | Yes | One or more conditions. An entry is kept only if all conditions are met. |
Example
Keep only orders with a status of "completed":
- Input:
$vars.fetchOrders1.output.body - Condition:
statusequalscompleted
Output available as $vars.filter1.output.
Map
Transforms each entry in a collection by modifying or reshaping its fields.
Configuration
| Field | Required | Description |
|---|---|---|
| Input | Yes | The collection (array) to transform. |
| Field mappings | Yes | For each target field, define the name and the source field or expression. |
Example
Rename firstName and lastName fields to first and last:
| Target field | Source mapping |
|---|---|
first | firstName |
last | lastName |
Output available as $vars.map1.output.
Group By
Groups a collection by a shared field and aggregates values like totals, averages, or counts.
Configuration
| Field | Required | Description |
|---|---|---|
| Input | Yes | The collection (array) to group. |
| Group by field | Yes | The field whose value determines the group. |
| Aggregations | No | Additional computed fields per group (count, sum, average, min, max, first, last, collect). |
Example
Group a list of orders by region and count the number of orders per region:
- Input:
$vars.fetchOrders1.output.body - Group by:
region - Aggregation:
orderCount= count
Output available as $vars.groupBy1.output.
Common issues
| Issue | Resolution |
|---|---|
| Output is empty after Filter | The conditions don't match any entries. Inspect the input collection in the execution trace to verify the field names and values. |
Map output has undefined fields | The source field path doesn't exist in the input entries. Use the execution trace to confirm the input structure. |