Automate Instagram Carousel Posting with Google Sheets & Cloudinary - n8n Workflow

Deploy this powerful n8n workflow to automatically publish Instagram Carousel posts. Use Google Sheets to schedule content and Google Drive/Cloudinary for media hosting.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?

Content creators and social media managers looking to streamline their Instagram posting schedule.
Technical users and developers who want to leverage the n8n platform for advanced scheduling logic.


  • Businesses needing reliable, data-driven automation for publishing complex social media formats like carousels.

Overview

This advanced n8n workflow is one of the most useful n8n templates available for social media teams. It solves the complex problem of scheduling multi-image Instagram Carousel posts by linking structured data from Google Sheets with media hosting services (Google Drive/Cloudinary) and the Instagram Graph API. The core of this automation begins with the scheduled n8n trigger, which regularly checks the designated Google Sheet for posts marked 'ToDo'. If content is ready, the n8n workflow handles downloading images, uploading them to Cloudinary, creating individual media containers via the Instagram Graph API, assembling the carousel container, and finally, executing the post. Utilizing this sophisticated n8n automation ensures reliable, hands-off content deployment directly from your data sources, making it a perfect example of effective n8n node usage in marketing.

How it Works


  1. Scheduled n8n Trigger: The n8n trigger node runs on a set interval (e.g., every minute) to initiate the check cycle.

  2. Google Sheets Lookup: The Google Sheets n8n node reads the 'Execute' sheet, filtering specifically for rows where Status is 'ToDo' and Type is 'Carousel'.

  3. Drive File Listing: If eligible content is found, the Google Drive n8n node retrieves the list of images located in the specified folder URL provided by the Google Sheet data.

  4. Download & Host: Each image is downloaded sequentially using an HTTP Request n8n node, and then immediately uploaded to Cloudinary. This crucial step generates the public image URL required by the Instagram API.

  5. API Preparation: The workflow uses a Set n8n node to define essential variables, including the Instagram access token, IG User ID, the Cloudinary image URL, and the caption (read from the Expected content column in the Google Sheet).

  6. Container Creation (Individual Images): An HTTP Request n8n node calls the Instagram Graph API for each image to create individual media containers.

  7. Aggregation: The Aggregate n8n node collects all the resulting individual container IDs (body.id).

  8. Carousel Assembly & Publish: The workflow then uses two final HTTP Request n8n nodes. The first creates the main CAROUSEL container, referencing the gathered child IDs. The second publishes the finished post to Instagram.

  9. Status Update: Finally, the Google Sheets n8n node updates the original row's status to 'Processed,' marking the successful completion of the n8n workflow and preventing the n8n trigger from processing it again.

Installation Guide


  1. Import the n8n Workflow: Copy the provided JSON data and import it directly into your n8n instance.

  2. Google Sheets/Drive Credentials: Configure the Google Drive/Sheets n8n node credentials. Ensure the account has read access to the Master file and the ability to update the 'Status' column.

  3. Cloudinary Setup: Update the 'Upload images to Cloudinary' HTTP Request n8n node with your specific Cloudinary cloud-name and uploadpreset (as noted in the sticky note).

  4. Instagram API Setup: In the 'Setup for Instagram' Set n8n node, replace and user_id> with your valid credentials. This is vital for the HTTP Request n8n nodes that interact with the Graph API.

  5. Google Drive Permissions: Ensure the specific Google Drive folders containing the carousel images are publicly shared ('Anyone with the link can view') so the n8n automation can access them for download.

Node Details

Schedule Trigger (n8n trigger):
Function: Initiates the n8n workflow on a regular basis.
Key Configuration: Configured to run at frequent intervals (e.g., every minute).
Google Sheets (Get Execution for Carousel) (n8n node):
Function: Retrieves the pending content schedule.
Key Configuration: Filters rows where Status is ToDo and Type is Carousel.
Google Drive (Get image list...) (n8n node):
Function: Lists all files within the Google Drive folder URL passed from the Google Sheets data.
Key Configuration: Uses dynamic Folder ID: ={{ $('Get Execution for Carousel').item.json.Folder }}.
HTTP Request (Upload images to Cloudinary) (n8n node):
Function: Uploads the binary image data to Cloudinary, making the image publicly accessible.
Key Configuration: Uses multipart-form-data and requires custom inputs for cloud-name and uploadpreset.
Set (Setup for Instagram...) (n8n node):
Function: Centralizes and prepares the necessary access tokens, user IDs, image URLs, and captions for downstream API calls.
HTTP Request (Create Media Container (Image)) (n8n node):
Function: Calls the Instagram Graph API to generate a unique container ID for each individual image in the carousel.
Aggregate (Combine Instagram media containers) (n8n node):
Function: Collects all the individual media container IDs generated in the previous step, preparing the list needed for the parent carousel container creation.
HTTP Request (Create Media Container (Carousel)) (n8n node):
Function: Calls the API to create the final carousel container, linking all the children IDs and the overall caption.
Key Configuration: Sets mediatype to CAROUSEL and passes the combined children IDs.
HTTP Request (Publish Instagram Carousel) (n8n node):
Function: Executes the final publish command using the parent creation_id.
Google Sheets (Update Execute to "Processed") (n8n node):
* Function: Updates the status in the spreadsheet to 'Processed', completing the execution of this n8n workflow instance.

Related n8n Workflows

Free

Nodes: 7 Nodes
Updated: December 26 2025
View all
Created by

Featured*