Make HTTP module is wrapping the JSON response in an extra top-level array, making it impossible to extract nested data properly

Blueprint:
blueprint.json (22.3 KB)

What are you trying to achieve?

Response Structure:
The HTTP request (Google Apps Script endpoint) returns a valid JSON response (Remove Duplicates): Have attached the output

success_out.json (3.6 KB)

[
  {
    "statusCode": 200,
    "headers": [...],
    "data": {
      "language": "en-US",
      "pages": ["373146073311186", "545696762215612", "...more pages"]
  }
]

Steps taken so far

Attempted Solutions (None working):

  1. Direct Iterator:

    • Mapping: data.pages[]
    • Result: Array empty
  2. Nested Iterator:

    • First iterator on entire response (not directly supported by UI)
    • Second iterator on data.pages[]
    • Result: Could not set the top-level array in the iterator
  3. Parse JSON Module Alone:

    • Result: Error BundleValidationError - Missing value of required parameter 'json'
  4. Using map() function:

    • Tried using map() function (e.g., {{map(18; "data.pages")}})
    • Result: Unclear or unsuccessful due to UI constraints
  5. Have changed browsers, removed cookies, cloned the scenario. At the end of my rope

Current Situation:

  • Make wraps HTTP response in a collection bundle.
  • Despite proper JSON response, nested arrays (pages) remain inaccessible directly in subsequent modules.

Screenshots: scenario setup, module configuration, errors


Hey there,
If I understand correctly, you are wanting an array of the page numbers;
You can retrieve the pages with the get function:

-@HarveyM

Hey Apoorva,

That sounds super frustrating! I’ve run into similar issues with Make wrapping responses in an extra collection, making it a headache to extract nested data properly.

A couple of things you could try:

  1. Use the get() function – Instead of mapping, try {{get(1.data; "pages")}} to directly access data.pages.
  2. Manual Parsing with JSON Module – Try feeding the entire response into the JSON module and setting the schema manually to match data.pages.
  3. Flattening the Structure – If you have control over the API response, see if you can adjust it to return data.pages directly instead of nesting it.
  4. Iterator Workaround – Since the UI struggles with direct iteration, you might need a workaround where you first extract data into a separate module and then iterate over pages.

It’s annoying when Make does this extra wrapping, but hopefully, one of these methods helps. Let me know if you’ve already tried them or need a different approach!

Good luck! :rocket:

AUTHOR: Edison Taylor

Thanks @HarveyM This, however, doesn’t work.

Attached updated blueprint and screenshots.




blueprint (1).json (21.9 KB)

The get() function you tried is not the same as I provided and does not follow the get() logic;


try the above where 14.data is your data block and manually type in pages after the semi colon

-@HarveyM

Thanks @EdisonTaylor
I flattened the structure (as suggested in 3). Now I have one less level (Data has the array). I am still struggling to access the first array element. I am also new to Make. I assume 18. (which is the id of the API response) is correct (I checked the blueprint as well).

Can you please suggest what the get would look like if the id = 18, trying to access the Data field of 1’st element in the array?

I already tried:
{{get(1.data)}}
{{get(18.data)}