Add a Process List action when you need the same sequence of actions to run once for each item in a collection.
Process List is a container on the workflow canvas. You place the actions you want to repeat inside it. When the workflow runs, those child actions execute for each item in the list. Inside the container, list item variables such as $.item refer to the current item.
For an overview of workflow actions, see Understand workflow actions. For variable paths inside a Process List, see Workflow variables reference. For a summary of Process List behavior, see Workflow actions reference.
Before you begin
Make sure you have:
- A workflow open in the designer with a configured Start action.
- The Experience Designer or Tenant administrator role.
- A collection available from an earlier step, such as a Run Tool output that returns a list or a Transform action that creates an array.
- A clear sequence of actions that should run for each item.
When to use a Process List action
Use Process List when the workflow should:
- Process multiple employees using the same steps.
- Create several related records or requests.
- Call an integration once for each item in a list.
- Apply the same Condition and Run Tool pattern to every item.
Add a Process List action
- Open the workflow in the workflow designer.
- From the Actions palette, add a Process List action.
- Connect it to the previous action that provides the collection you want to process.
- Select the Process List container to open its node editor.
- Configure List to process so the action knows which collection to iterate over. Use @ or an expression that resolves to an array. The field hint is: Expression that returns the list to iterate over.
For example:
$.inputs.positions
- Optionally configure Item fields to define the shape of each item in the list.
- On the canvas, add the child actions inside the Process List dashed container. For example, you can add a Condition, Run Tool, Agent, Transform, or Set State action.
- Connect the child actions in the order they should run for each item.
- Inside child actions, reference the current item with $.item. If Process List containers are nested, use $.outerItem or $.outerOuterItem to reference items from the parent containers.
- Connect the Process List container's exit to the next action that should run after the list has been processed.
Changes save automatically.
Use list item variables
Inside a Process List, the following variables are available:
| Variable | Description |
| $.item | The current item being processed |
| $.outerItem | The parent item when Process List containers are nested |
| $.outerOuterItem | The grandparent item when Process List containers are nested more deeply |
These variables are available only within the Process List that provides them.
Example pattern
A typical Process List workflow looks like this:
- Start - event-based or user-initiated.
- Run Tool - retrieve a list of records.
- Process List - process each record:
- Condition - decide whether to act on the current item.
- Run Tool - create or update related data using values from $.item.
- Agent - summarize the overall result to the employee after the list has been processed.
For example, if the list contains several positions, a child Run Tool could use a value such as:
$.item.positionId
to process the current position.
Design tips
- Keep the child sequence as small as practical so each iteration is easy to understand and troubleshoot.
- Make sure the list expression returns the collection you expect before the Process List runs.
- Test with a short list first, then test with representative volumes.
- Nest Process List containers only when you need to process items within other items.
Next steps
- Map $.item fields into child Run Tool inputs or Condition expressions.
- After the list has been processed, use an Agent or Transform action if you need to summarize or transform the results.
- Test the workflow with more than one list item.
- Publish the workflow when you're ready.