Iterator not processing all attachments

I have created a scenario that exports Survey123 attachments and uploads them to DropBox. One leg of the scenario is exporting attachments from a Repeat section and I am using an iterator to process them; however, the iterator is only processing the first attachment. The output only shows one bundle and in the end it uploads the image twice to dropbox. See images and blueprint below:

S123 - Pre-Con Photos Export (test).blueprint.json (192.4 KB)

You’ve selected a property within an array, so it only “takes” the first item’s value.

If you want all the array items, you need to use the map array function. See the guide on how to use the map function below, but ignore the first/last/get bits.

Alternatively, simply map only the array variable (the one with square brackets), not a “nested” property value:

Combining Map & Get (or First) functions to get Values from Arrays

The built-in functions map, get, first (or `last) allows you to access values within an array containing collections.

First, use the map function on an array, which returns another array of filtered values —
map(array; key; [key for filtering]; [csv-values for filtering])

Then, the built-in function get (or first/last) to get a specific, single item from the resulting array —
get(array; path)

You will get something that looks like these —

{{ get(map(array; "value"; "name"; "content-type"); 1) }}
{{ first(map(array; "value"; "name"; "content-type")) }}

Map Function Parameters: Step-by-Step

To easily remember how to use each of the parameters of the map function, think of it this way:

  1. From this array (of collections),
  2. I want to get all the the values for the property/key named _______,
  3. Where another property/key _______
  4. has the exact case-sensitive value _______

Example

1. From this array (of collections) user_column_data

2. I want to get all the the values for the property/key named string_value

3. Where another property/key column_id

4. has the exact case-sensitive value EMAIL

5. Output


For more information, the documentation for the above functions can be found in the Help Centre and the “Mapping with Arrays” link below. You should also complete the tutorials in the Make Academy, especially Using get() and map() functions as this is the most important knowledge you need to understand so that you can successfully apply it when building scenarios using Make.

Links & Guides

Here are some useful links and guides you can use to learn more on how to use the Make platform, apps, and app modules. I’d also recommend going through the Make Academy if you haven’t yet!

Learn Make

How-Tos

Hope this helps! If you are still having trouble, please provide more details.

@samliew