πŸ”
Loop action
Loop action execution by a number of array elements
Loop action allows you to execute another action as many times as the amount of items in your array.
It is very useful when you have an array of items and need to make additional request for each item of the array, or when you simply need to send a bunch of items to the API.

Use cases

  1. 1.
    Bulk users creation/update - collect all new/edited users in an array and then call POST/PUT API methods for every new item;
  2. 2.
    Load additional data - load your users and then make additional request for every user to load some extra information about them;
  3. 3.
    Send multiple notifications - find users that need to be notified about something and then send them Slack notifications.

Setup

By default, Loop action takes a {{data}} variable passed from the previous step and if this variable is an array, executes a provided action as many times as the amount of items in the array.
  1. 1.
    Action to call in a loop - the main setting which determines which action will be executed in a loop;
  2. 2.
    Transform result - custom JavaScript function can be provided to modify the result of the action calls. Available variables: {{data}} and {{error}} - an array of results and errors;
  3. 3.
    Custom array to iterate - in case when you need to iterate some custom value, you can provide it instead of the previous step result. For instance, iterate over {{ui.table.value}} - an array of table rows.

Input & Output

Input - expects an array of items to iterate through.
Output - {{data}} - an array of execution results, {{error}} - array of execution errors.

Examples

Send a Slack message for each loaded user

Let's take a look at how to send a bunch of Slack messages to the users that we load from an API request.
1. Load users - create a Multi-step action, where the first step will load the users list - HTTP API call in our case:
2. Add a Loop action as a second step and click on Add new action button:
3. Create a new action that will be executed in a loop. To reference a single item of the initial users array, use {{data}} variable:
4. Now its time to test! Run the requestUsers action and check the result of the Loop action. You can see that it has all 5 responses from the Slack action the same amount as the users array:
The Logs tab of the sendMessage action will also have 5 records of the action execution:

Send a message to each user selected in a table

Let's take look at how to send a notification to a list of users selected in a table:
1. First, add a selected column to the table by adding a selected field with boolean type and setting. This column will be used to filter out only selected rows:
2. Add a Loop action, enable Array to iterate through and a reference of a UI component value with a filter function and specify a new sendMessage action:
3. Complete the sendMessage action:

Troubleshooting & Debug

If an executed action has failed, its' result will be set as undefined in the {{data}} results array and an error will be added into the {{error}} errors array:
Copy link
Outline
Use cases
Setup
Input & Output
Examples
Troubleshooting & Debug