Bug in array aggregator: can't access collection inside array from UI

What happens

I used a “Google Sheet - Search Rows” module to get the content of a certain row.
Then I used an array aggregator to get only values of certain columns.
The output of the array aggregator is an array which includes a collection with the target items.
When I try to get the collection as input for another module… it simply doesn’t show up in the UI of variables, as you can see on the screenshot.

Example

Using the make UI, I can only pick the array (userInterfaceLetsMeChooseOnlyThis variable in screenshot → plain text: {{3.array}}) OR single values inside of the array.
But I can’t pick the collection inside the array - at least not from the UI directly.
However the collection inside the array exists and I can theoretically pick it by writing the variable manually myself (collectionInsideArray variable in screenshot → plain text: {{3.array[]}}).

What I expect

I expect collections inside arrays to show up as variables to pick directly from the make UI (instead of having to write the respective variables myself manually).

:backhand_index_pointing_up:This is a bug report @Misha-Inactive . Pls fix.

Hi @SamuelHartmann

When you use an Aggregator, it always results in an array. From that point on, you either map the whole {{X.Array}} object, or you reference an element in the array, like Array[1], to retrieve the value in that position.

If you need to access each element in the array individually, you either:

  1. Do not aggregate. The Google Sheets Search Rows module yields one bundle per row, like an Iterator. Receive each row in your destination module and use only the columns you need.
  2. Aggregate, as you did, then Iterate. Using an Iterator will result in as many operations as objects (rows) returned from the array, containing only the columns you aggregated on.

I suggest you take a closer look at how Aggregators and Iterators work, in Make Academy.

@damato

Thank you for your reply @damato .
But your reply doesn’t even touch the topic of the question (Please refrain from giving AI responses).
It’s not an issue about “I don’t know how to use aggregators”.

It’s a bug report:
And the problem is that it’s not possible to pick the value in collectionInsideArray (see above) as a variable in the UI - which is a huge flaw and a bug from my point of view.

@vendy / @Michaela please get this fixed🙏 (since @Misha-Inactive seems to be inactive).
I’ve shared this with the support as well (ticket #1828677).
But the support rep didn’t understand the problem.
And I don’t have the time to discuss bugs via email.
That’s what the community is for from my point of view - just like in GitHub repos, no?
(Would be great to have a “bug report” topic/tag by the way)

Thank you

Hey there @SamuelHartmann :waving_hand:

Thank you for sharing your experience with us, and we’re sorry about the frustration.

We kindly ask that all interactions with community members remain respectful. Everyone here volunteers their time and expertise to help others, and we greatly value that collaboration.

Regarding you concern about the bug, I’ve reviewed the ticket you have created and noticed that our Support team responded, but there was no follow-up from your side. If you are still experiencing this issue, please engage in a conversation with our Support team, as they are equipped with the right tools to investigate this further.

Thank you for your understanding :folded_hands:

1 Like

Hey Samuel,

I downloaded your blueprint and I don’t understand what you mean. Everything that was mapped in the Array Aggregator was a available in the following module. What collection are you talking about? You can test this yourself - in the same blueprint delete the aggregator and see what is available coming from the Parse JSON module. Its the same items.

I tried to make it as easy as possible to understand visually.

From my point of view it’s a bug, that you can’t pick the collection only from the UI of variables.
Instead you always have to pick the array with the collection inside.

But when I want to get only the collection (not inside an array) from the UI, I have to modify the expression.
And then the UI in the upper right red box looks like it’s wrong - but in fact it isn’t.
It’s exactly what I want.

Is clear what I mean @Stoyan_Vatov ?
Do you agree that this is a bug in the UI?

Hi @SamuelHartmann,

Thanks for sharing the additional info! This is not a bug, as there is no regression. ‘Pls fix’ commands are something I cannot be appreciative of, and I honestly think you wouldn’t like to receive them yourself.

Nonetheless I agree with you that there is a confusing UI here. It is obvious that the array contains a collection that has 5 key-value pairs (if you select them all in the aggregator). What you are able to select in the UI is the actual whole array (including the object), so this output also makes sense to me:

Now what is a limitation of the Make mapping UI is that you cannot see nested collections inside arrays nor map them easily. You can do so with {{3.array[0]}} . The thing here is you mapped the following:

As there is no index given, Make will default to index 0, where your collection from the array aggregator is. Using indexes is actually the only way to access data within an array that comes from a preceding module with an inline function. This works… well it just works.

The previewed data that is shown in the Mapper UI is not the complete and full complex array:

Now what I understand from your point, is the fact that the array contains a collection that is not visible in the UI. And for example if the output from Google Sheet was two collections in one array:

Then the mapper UI shows it like this:

Again, not a bug, but I agree with you there are improvement to be made. Make has worked like this since the Integromat days, for accessing values inside arrays, you should use indexes or the map() or get() functions to extract the value you need. (bit like they explain here: Mapping arrays - Help Center )

As for the improvement, there might be an existent feature request here, otherwise you can create one yourself. This is the place where you can request stuff like this to be improved: https://www.make.com/en/platform-ideas/?sort=top

Cheers,
Henk

PS: There is a counterargument for showing the complete array in the UI mapper. Array’s can be huge, especially nested arrays. Showing 1000+ collections inside arrays with their complex values can break the UI.

2 Likes

So how would you approach getting the whole collection without the array then @Henk-Operative ?

It is an array that contains one or multiple collections. So you can access the item with an index or get():

1 Like