Automate Instagram Carousels with n8n or Make
You want to automate Instagram carousels. You set up your n8n or Make.com workflow, connect the Facebook Graph API, and hit "Run." Then it breaks.
You are not alone in this. Instagram carousel automation is the single most discussed pain point on both the n8n community forum and Make.com community forum. Dozens of threads describe the same problems: media upload failures, wrong image ordering, mixed media errors, and workflows that stop working overnight because Meta changed the API.
This post breaks down why carousel automation is so fragile and walks through a simpler approach.
Why the Facebook Graph API makes carousels hard
Posting a single image to Instagram through the Graph API takes two API calls: create a media container, then publish it. Posting a carousel takes at least four:
Create a media container for image 1.
Create a media container for image 2.
Repeat for each additional image (up to 20).
Create a carousel container referencing all media container IDs.
Publish the carousel container.
Each step returns an ID you pass to the next step. If any step fails, the entire carousel fails. Common failure modes include:
Image URLs returning a 403 or redirect (Google Drive links are a frequent offender).
Mixed media types (images and videos in the same carousel) triggering undocumented errors.
9:16 aspect ratio images silently rejected.
Media containers expiring if you wait too long between steps.
Image order changing because API calls resolve in a different order than expected.
On Make.com, these errors appear as "GraphMethodException" or "media upload has failed with error code 0." On n8n, the Facebook Graph API node often returns a generic 400 error with no useful message.
The simpler approach: one API call
Instead of chaining 5+ API calls to the Facebook Graph API, you send one request to the Blotato Publish API:
That is it. Pass an array of image URLs in mediaUrls. Blotato creates the carousel, handles media container creation, manages the upload sequence, and publishes. Image order matches the array order. Mixed media (images and videos) works. No Graph API debugging required.
Step-by-step: n8n workflow
Install the Blotato community node in n8n (Settings > Community Nodes > search "Blotato").
Add a trigger node (Google Sheets, Airtable, webhook, or a schedule).
Add a Blotato node and select the "Publish Post" operation.
Set the platform to Instagram.
Pass your image URLs as an array in the
mediaUrlsfield.Write your caption in the
textfield.Run the workflow.
The Blotato node returns a postSubmissionId. The post publishes asynchronously, so add a second Blotato node with the "Get Post Status" operation if you need to confirm it went live.
For a full video walkthrough, see: n8n Slideshows and Carousels
Step-by-step: Make.com scenario
Import the Blotato Make blueprint or add an HTTP module manually.
Set the HTTP module to POST
https://backend.blotato.com/v2/posts.Add the header
blotato-api-keywith your API key.Set the request body with your
accountId,mediaUrlsarray, and caption.Run the scenario.
For a full walkthrough, see: Make Slideshows and Carousels
Carousels on other platforms too
The same mediaUrls array approach works for carousel posts on other platforms:
Up to 20 images or videos
Mixed media supported
Up to 20 images
Images only
TikTok
Up to 35 images
Images only, set title in target
Up to 20 images or videos
Set pageId in target
You do not need separate workflows per platform. Change platform and targetType, and the same mediaUrls array works.
Forum threads referenced
These are the community discussions that prompted this post:
Last updated