Back to Templates

Auto-Post Instagram Carousels using Google Sheets, Drive, Cloudinary & Graph API

Created by

Created by: Meak || meak

Meak

Last update

Last update 4 days ago

Share


Auto-Post Instagram Carousels from Google Sheets + Drive (Cloudinary + IG Graph)

This workflow checks your Google Sheet for “Carousel” posts to do, pulls images from a Drive folder, uploads them to Cloudinary, creates an Instagram carousel, publishes it, and marks the row as “Processed”.

Benefits

  • Hands-off posting from a simple Google Sheet queue
  • Pulls all images from a Drive folder for each carousel
  • Uses Cloudinary for fast, reliable hosting
  • Posts via Instagram Graph API (official)
  • Updates your Sheet status to “Processed” after publish

How It Works

  1. Schedule Trigger runs every few minutes.
  2. Get Execution for Carousel reads rows where Status = ToDo and Type = Carousel.
  3. Get image list loads all files from the Drive folder in that row.
  4. Download Image fetches each file from Drive.
  5. Upload to Cloudinary stores the image and returns a public URL.
  6. Setup for Instagram prepares access_token, ig_user_id, image_url, caption.
  7. Create Media Container (Image) creates an IG container for each image.
  8. Combine containers collects all container IDs.
  9. Create Media Container (Carousel) builds one carousel with the children IDs + caption.
  10. Publish Instagram Carousel publishes the carousel post.
  11. Update Execute sets Status = Processed for that ExecuteId in Sheets.

Who Is This For

  • Social media managers batching carousels
  • Agencies posting client content on a schedule
  • Creators who organize posts in Google Sheets

Setup

  • Google Sheets: set Spreadsheet and “Execute” tab (with ExecuteId, Folder, Expected content, Status, Type)
  • Google Drive: put carousel images in the folder referenced by the row
  • Cloudinary: set cloud name + upload_preset
  • Instagram Graph: get ig_user_id and a valid access_token
  • In n8n: paste tokens/IDs into the Set nodes and HTTP nodes as shown

Tips

  • Keep image order in Drive as you want it to appear (or sort before upload)
  • Caption comes from the Sheet field Expected content
  • Make sure the IG account is a Business/Creator account connected to a Facebook Page
  • Use high-res images; Cloudinary will optimize delivery
  • Add error alerts (Slack/Email) if a step fails

ROI

  • Save 2–4 hours/week on manual uploads
  • Fewer posting mistakes (everything logged in Sheets)
  • Scales easily to multiple brands and calendars

Strategy Insights

  • Add a “Schedule_at” column and delay publishing until that time
  • Write back the IG post ID to Sheets for tracking
  • Extend to cross-post (e.g., Facebook Page) with the same media containers

Check Out My Channel

For more practical automation workflows for content teams, check out my YouTube channel where I share the exact systems I use to run social posting at scale.