Problem Creating Instagram Carousel Post – Mapping children IDs from Array Aggregator to HTTP Request

Hi everyone,

I’m building a scenario to post an Instagram carousel (multi-image) using Make + Facebook Graph API.

Here is the sequence of my modules:

:one: Google Sheets – Fetch row that contains:

  • Caption

  • Images column (multiple image URLs separated by new lines)

:two: Tools (Set variable) – I split the Images field into an array successfully.

:three: Iterator – I loop through each URL and upload them via HTTP (media upload with is_carousel_item = true). This part works, and I get media IDs back.

:four: Array Aggregator – I collect all returned media IDs. I see an array like:

[
{“id”: “17874057810431865”},
{“id”: “17874057828431865”},
{“id”: “17874057843431865”}
]

:five: Final HTTP (POST to /media) – I try to send the carousel creation request:

{
“media_type”: “CAROUSEL”,
“children”: {{ map(19.Array; get(item; “id”)) }},
“caption”: {{ 9.Caption (B) }},
“access_token”: “MY_TOKEN”
}

:red_exclamation_mark:The Issue

I always get this error:

Error 400: The parameter children must be an array.

I’ve learned that item and current don’t work inside map() in Make JSON.

I also tried . but I’m not sure of the correct syntax Make expects when mapping into a raw JSON body.


:red_question_mark:My Questions

  • How do I correctly build the “children” array from the Array Aggregator output?

  • What is the correct Make formula to extract only “id” values into a valid JSON array for the Graph API?

  • Do I need to use Raw JSON or Form-Data for the final carousel creation step?


Any example of a working map() formula or JSON structure for Instagram carousel would be hugely appreciated!

Thanks so much :folded_hands:

Hey Ben,

first - you can use the split() function directly in the iterator and delete the first tools module.

Second - what is that HTTP request giving as output? Usually you aggregate the iterator.

Third - that map() function is scuffed. What is this get() doing inside of it?

And last - why not use the instagram module? Where are you uploading them to first?

The carousel post accepts an array with these variables:

Hey Stoyan, thank you for jumping in.

Actually I do not understand what I am doing, trying to build an automation for posting a carousel to instagram pulling data from google sheets, such data as : image links, caption, trigger when to post.

I use chat GPT as a coach, basically I am doing everything based on its instructions, but it eventually got confused and stuck.

I want to upload custom covers - so this is why I do not want to use pre-built instagram carousel module.

I almost done as it seems, but stuck on one module.

I will send you screens with all the details, maybe if you have time you could drop the correct formula I have to use in the module where I have stuck.

Thanks in advance.

The whole scenario so far till the last module (where I got stuck):

First module setup

Second module setup

Third one

Fourth

Fifth

Sixth

Seventh

When I click Run Once - all works besides the last module, I already spend 2 full days trying to resolve this.

I may be wrong but I think the problem is here:

Array aggregator gives some ID as an output “Data:…”

But next module does not receive it for some reason.

Welcome to the Make community!

Firstly, you have not fixed the “Source Module” of the Array Aggregator.

Setting the Correct Aggregator Source

You need to set the “Source Module” field of the aggregator to where the bundles are coming from. This is usually an iterator module, but can also be a search/list/repeater module, or even the trigger module!

Secondly, Data looks like a JSON string. In your HTTP module, you need to select “Parse Response”: Yes.

Lastly, you probably need to use the built-in function join to merge the mapped array back into a string. This string needs to then be inserted between double quotes in the last HTTP module.

Please make the above changes, then provide additional details:

1. New Set of Relevant Screenshots

We need to see what you’re working with to give you the best advice. Screenshots are extremely important because Make is a visual editor — a picture provides us with more context.

It would help us identify the issue by having screenshots of:

  • the full scenario,
  • the zoomed in section of the scenario that you are referring to (if your scenario is huge),
  • a full scenario run/execution (showing output “speech” bubbles),
  • any error messages,
  • individual module fields,
  • relevant filter settings (conditions), and
  • each module’s output bundles
  • any external services (spreadsheet headers, sample data, regex101.com, etc.)

You can upload images here using the Upload icon in the text editor:

We would appreciate it if you could upload screenshots here instead of linking to them outside of the forum. This allows us to zoom in on the image when clicked, and avoid tracking cookies from third-party websites.

2. Scenario Blueprint

Please export the scenario blueprint. Providing your scenario blueprint file will allow others to quickly recreate and see how you have set up the mappings in each module, and also allows us take screenshots or provide module exports of any solutions we have for you in return - this would greatly benefit you in implementing our suggestions as you can simply paste module exports back into your scenario editor!

To export your scenario blueprint, click the three dots at the bottom of the editor then choose ‘Export Blueprint’.

You can upload the file here by clicking on this button:

3. Module Output Bundles

Please provide the output bundles of each of the relevant modules by running the scenario (you can also get this without re-running your scenario from the History tab).

Click on the white speech bubbles on the top-right of each module and select “Download input/output bundles”.

A. Upload as a Text File

Save each bundle contents in a plain text editor (without formatting) as a bundle.txt file.

You can upload the file here by clicking on this button:

B. Insert as Formatted Code Block

If you are unable to upload files on this forum, alternatively you can paste the formatted bundles.
Here are some ways to provide text content in a way that it won’t be modified by the forum.

  • Method 1: Type code fence manually
    Add three backticks ``` in a separate line before and after the content, like this,

    ```
    text goes here
    ```
    
  • Method 2: Highlight and click the “preformatted text” button in the editor

  • Method 3: Upload your file and share the public link
    (this method is only recommended for large files exceeding the forum upload limit)

Providing the input/output bundles will allow others to replicate what is going on in the scenario, especially if there are complex data structures (nested arrays and collections) or if external services are involved, and help you with mapping the raw property names from collections.

Sharing these details will make it easier for others to assist you.