Skip to content
Return to top
On this page

# Flows For-Loop #

> When most flows begin, they pass the trigger's payload to the data chain and execute once. This recipe explains how to execute a flow for each element in a payload's array.

Author: Eron Powell

Directus Version: 9.18.1

## Explanation #

Sometimes you may have an array of data you'd like to iterate over and run operations on, one-by-one. However, you may have noticed that each operation in a flow executes just one time. Because of this, you can't create a "for-loop" within the operations of a single flow.

However, to achieve a "for-loop", you can instead use the trigger flow operation to pass the data into an another flow trigger. When this type of trigger receives an array as a Payload, the flow runs for each item in the array individually.

TIP

Remember: for some use-cases, you can also iterate through data in a Run Script operation.

## The Recipe #

Requirements

You'll need a flow with an array of data on its data chain.

### Configure the Starting Flow #

1. Configure a flow a trigger flow operation.
2. Under Payload, be sure to add the desired array.
3. Save and exit the flow.

### Configure the "For-Loop" Flow #

Once your starting flow is configured as desired, follow these steps.

1. Create a flow using the another flow trigger.
2. Configure operations as desired.

## Final Tips #

Once your for-loop is configured, you can process the data several ways.

First, you could simple let the "for-loop" flow process each element in the Payload.

Second, you could also configure a Response Body in the trigger of your "for-loop" flow. The Response Body gets appended under the trigger flow operation in the starting flow.

Third, you could add another trigger flow operation into the "for-loop" flow, to create complex flow chains. If you do this, just keep API performance in mind. If you configure a Response Body, the parent flow will halt execution until it receives Response Body.

Good luck and have fun! 🧑‍🍳