Automated Instagram Carousel Publishing from Google Sheets and Drive - n8n Workflow

Use this powerful n8n workflow to automatically schedule, download assets from Google Drive, host them via Cloudinary, and publish multi-image Instagram carousels using the Graph API. Perfect for scaling social media operations.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?

• Social Media Managers needing automated publishing solutions.
• Marketing agencies managing large volumes of content.
• Users looking for advanced examples of the n8n node combining Cloudinary, Google Workspace, and the Instagram Graph API.
• Developers seeking production-ready n8n templates for complex scheduling and asset management.

Overview

Managing high-volume social media content, especially multi-image carousel posts, often involves tedious manual steps: collecting images, uploading them to a host, generating API calls, and tracking status. This sophisticated n8n workflow eliminates these bottlenecks. By configuring a scheduling n8n trigger, the system constantly checks a designated Google Sheet for 'ToDo' carousel posts. It then automatically retrieves the necessary assets from Google Drive, uploads them securely to Cloudinary for hosting, and uses a series of HTTP Request n8n node steps to interact with the Instagram Graph API. This particular n8n workflow ensures reliable, scheduled posting and logs the completion back in the Google Sheet, making it a robust and scalable solution.

How it Works

The entire process is orchestrated by a recurrent n8n trigger:


  1. Job Scheduling: The n8n trigger (Schedule Trigger) runs periodically, initiating the automation.

  2. Task Selection: The Google Sheets n8n node queries the 'Execute' sheet, filtering for entries with Status=ToDo and Type=Carousel.

  3. Asset Retrieval: For each identified task, the Google Drive n8n node fetches the list of images within the specified Google Drive folder.

  4. Downloading Images: An HTTP Request n8n node then downloads each image file as binary data from Google Drive.

  5. Image Hosting (Cloudinary): The binary data is immediately uploaded via another HTTP Request n8n node to Cloudinary (using an upload preset) to generate public URLs, which are mandatory for the Instagram Graph API.

  6. Configuration: A Set n8n node gathers necessary credentials (access tokens, user IDs) and maps the Cloudinary URL and the caption (from the Google Sheet).

  7. Instagram Container Creation (Per Image): The workflow uses the Instagram Graph API via an HTTP Request n8n node to create a media container for each individual image using its Cloudinary URL.

  8. Aggregation: The Aggregate n8n node collects all the resulting individual container IDs.

  9. Carousel Container Creation: A final HTTP Request n8n node creates the main CAROUSEL media container, referencing all aggregated media IDs as children.

  10. Publishing: The Publish Instagram Carousel n8n node executes the final media_publish call to post the content to Instagram.

  11. Status Update: The final Google Sheets n8n node updates the originating row, setting the Status to 'Processed', ensuring this task is not repeated in the next run of the n8n workflow.

Installation Guide

To deploy this comprehensive n8n workflow, follow these steps:


  1. Import the JSON: Copy the provided JSON data and import it into your self-hosted or cloud n8n instance using the 'Import Workflow' option.

  2. Configure Credentials: You will need to set up credentials for the following services:

Google Sheets (OAuth2): Required for accessing and updating the master execution sheet.
Google Drive (OAuth2): Required for downloading images from the source folders.

  1. Cloudinary Setup: Update the Upload images to Cloudinary n8n node parameters:

Replace in the URL.
Replace uploadpreset> in the body parameters.

  1. Instagram Graph API Setup: In the Setup for Instagram n8n node, replace the placeholders:

(Ensure this is a long-lived token).
userid> (Your Instagram Business Account ID).

  1. Google Sheet Pointers: Ensure the Google Sheets n8n node instances (Get Execution for Carousel and Update Execute to "Processed") point to your actual spreadsheet document ID and the correct sheet name (e.g., 'Execute').

  2. Activation: Once credentials and placeholders are configured, activate the n8n workflow. The schedule n8n trigger will begin checking for jobs immediately.

Node Details

This n8n workflow leverages several key n8n node types for its functionality:

Schedule Trigger: This is the primary n8n trigger, set to run every minute to check for pending jobs.
Google Sheets (Get Execution for Carousel): A core Google Sheets n8n node used to identify tasks. It uses filtering parameters to target carousel posts awaiting processing (Status=ToDo, Type=Carousel).
Google Drive (Get image list): This n8n node dynamically reads the folder ID provided by the Google Sheets data to list all files contained within the required assets folder.
HTTP Request (Download Image from Google Drive): Configured to handle file downloads from Drive (using the export=download URL pattern) and saves the result as binary data for the next step. This highlights the flexibility of using the HTTP n8n node for specific integrations.
HTTP Request (Upload images to Cloudinary): A crucial step using a multipart-form-data POST request to host the binary files, obtaining a public URL required by Instagram. This is an advanced use case for the HTTP n8n node.
Aggregate: This standard n8n node is essential for the carousel creation process. It collects the IDs of all individually created media containers before they are passed to the final carousel container creation step.
HTTP Request (Instagram Media Container/Publish): Multiple HTTP Request n8n node instances manage the complex, multi-step communication required by the Instagram Graph API (creating image containers, compiling the carousel container, and finally publishing it). These n8n templates showcase interaction with a major social media API.
Google Sheets (Update Execute to "Processed"): The final Google Sheets n8n node, which uses the ExecuteId as a unique matching column to log that the n8n workflow successfully completed the job.

Related n8n Workflows

Free

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

I help people build $5k+/month online by starting their own AI agency. Without BS.

Featured*