Auto-Generate and Publish Instagram Carousels with n8n
Input a topic → Gemini writes a 6-slide script → Google Slides template replace → extract thumbnails → ImgBB host → Meta API publish to Instagram → Google Sheets log
- Who
- Content operators, designers, or marketing teams who need to publish educational Instagram carousels on a schedule
- You get
- Automatically generate and publish a 6-slide Instagram carousel daily with no manual design work
- You need
- n8n · google-slides · google-sheets · google-drive · imgbb
Constraints
Prerequisites: n8n instance; Google Cloud project with Drive/Slides/Sheets/Gemini APIs enabled; Meta Developer app (Instagram Business account + System User Token with instagram_basic, instagram_content_publish, pages_read_engagement); ImgBB free API Key; copies of the author's Google Slides and Google Sheets templates. Costs: Google Cloud pay-as-you-go; ImgBB free tier has rate limits; Meta API free within quota.
What they did
Author Bakdaulet Abdikhan published this workflow template on the n8n official template library. The template demonstrates an end-to-end automation: Gemini generates a 6-slide educational carousel script, the Google Slides API copies a template and replaces placeholder text, slide thumbnails are extracted, public URLs are obtained via ImgBB, and the carousel is published through the Meta Graph API with results logged to Google Sheets. The template contains 36 nodes covering schedule trigger, AI Agent, structured output parser, Google Drive/Slides/Sheets, HTTP Request, Wait, If, and Code nodes.
How it went
The author reports this template reduces the time to turn a single topic into a published Instagram carousel from hours to minutes (author_report). The template has 973 views on n8n.io. UKnowHow has not executed or verified this workflow; actual publish success rates and API stability are unconfirmed.
Worth knowing
The Meta Graph API uses inconsistent versions in this template: v24.0 for media upload and container creation, but v22.0 for media_publish. The source does not explain why; verify version compatibility during setup. The 13 Google Slides template placeholders must exactly match the text fields in the replace node (case-sensitive, including spellings like {{problem_tile}} and {{matter_tile}}) or replacement will silently fail. ImgBB free accounts have rate limits and storage restrictions; evaluate stability for high-frequency use. The template does not show error-handling branches (e.g., Meta API rejection, ImgBB upload failure); consider adding these for production. The author provides a Google Slides template link, but UKnowHow does not host it; users must copy it themselves and verify placeholder mappings.
n8n workflow template
Structure checked · Not run-testedUse “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.
Setup and test checklist
Credentials to connect
- Duplicate carousel template node: connect Google Drive OAuth2 credentials.
Configuration to replace
- Source template is n8n public workflow #12413 (~36 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
- Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.
Test input and expected output
- Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
- Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.
Template changes
- Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
- No business-logic edits; verify keys, quotas and privacy compliance before use.
Template retrieved: 2026-10-24
Steps
Configure content generation node
After importing the template into n8n, locate the 'Generate carousel content' AI Agent node. Verify it is connected to 'Google Gemini Chat Model' (model: gemini-2.5-pro) and 'Structured Output Parser'. The node uses define prompt mode with the prompt built into the template. Check that the output parser JSON Schema includes the seven fields: hook, mistake, why_it_matters, value, tip, cta, post_description.
Execution prompt · Source text。'Generate carousel content' AI Agent node Text field (define prompt mode)
=You are a professional web design content generator who writes daily carousel post scripts for social media. Each post educates web designers, business owners, and marketers about website design, UI/UX, and conversion psychology. Your task is to produce one complete post script per day in JSON format, with the following consistent structure of 6 slides: 1. Hook 2. Mistake 3. Why It Matters 4. Value 5. Tip 6. CTA You also write post description for the post, it is as same as post script but all is one text with cta, give it in json 🧩 Content Style: - Hook should be emotional, and curiosity-driven. - Hook description should make readers want to scroll till the last slide, only few words (“the last one is crucial”, etc.). - Mistake must highlight a painful or common problem web designers or businesses make. - Why It Matters should emotionally and logically explain the consequence of that mistake. - Value gives actionable insights or truth behind fixing it. - Tip should provide short 3 practical steps or advice that can be implemented quickly. - CTA encourages engagement by commenting “+” or similar to improve their website. 🎯 Topics to rotate daily: - Web design psychology - Homepage conversion - UI/UX tips - Figma or Framer best practices - Copywriting for web - Color, layout, and typography - Client communication and web strategy ⚙️ Rules: - Do NOT add markdown, explanations, or extra text — only raw JSON. - Each field must be short and engaging (no long paragraphs). - Never repeat the same CTA — always rephrase slightly. - Focus on actionable, painful, or surprising insights that push the reader to comment or save. - Make the tone natural, confident, and conversational. - Never use emojis or signs - For the cta always use the "+" to enfourage them - Tone: Spartan casual - In cta dont say like "comment a +", say "comment +" without article Example output, dont copy this data: { "hook": { "title": "Your fonts might be ruining your design ", "description": "The last part fixes it." }, "mistake": { "title": "Inconsistency", "content": "Using 3–4 random fonts across pages makes your design feel unstructured. It breaks brand trust and looks unprofessional instantly." }, "why_it_matters": { "title": "Visual Harmony", "content": "Typography defines how users *feel* when reading. If your font styles jump around, users subconsciously think your brand is unstable." }, "value": { "title": "Consistency Builds Trust", "content": "When you use one or two well-paired fonts, your site feels cleaner, easier to scan, and more premium — even without complex visuals." }, "tip": { "title": "Keep It Simple", "tip_1": "Use 1 display font for headings and 1 readable font for body.", "tip_2": "Limit weights to 2–3 max.", "tip_3": "Stick to 16–18px body size for clarity." }, "cta": { "content": "Drop a '+' if you want me to check your font setup " }, "post_description": { "caption": "DescriptionGoesHere" } }Configure Google Slides template replacement
Copy the author's Google Slides template to your Drive (link in sticky note). In the 'Duplicate carousel template' Google Drive node, replace the fileId with your template copy ID. In the 'Replace text in template' Google Slides node, confirm all 13 find/replace pairs match your template placeholders exactly: {{hook}}, {{hook_description}}, {{problem_tile}}, {{problem_description}}, {{matter_tile}}, {{matter_description}}, {{value_tile}}, {{value_description}}, {{tip_tile}}, {{Tip_1}}, {{Tip_2}}, {{Tip_3}}, {{CTA}}. Run a test execution to verify text replacement in the copied deck.
Configure image extraction and hosting
The 'Get slides (carousels)' node fetches the slide list from the replaced presentation. 'Loop carousel slides' processes them in batches. For each slide, 'get the imgs from slides' calls the Google Slides API to get thumbnails (download=true), 'convert' turns binary to property, and 'make a link' HTTP Request POSTs multipart/form-data to https://api.imgbb.com/1/upload with query parameter key=YOUR_IMGBB_KEY_HERE and body parameter image as base64. Replace YOUR_IMGBB_KEY_HERE with your actual ImgBB API Key.
Configure Meta publishing and polling
The six 'slide 1' through 'slide 6' HTTP Request nodes each POST to https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media with parameters image_url (from ImgBB response) and caption. Replace YOUR_INSTAGRAM_ACCOUNT_ID_HERE with your actual account ID. 'Container HTTP Carousel1' creates the carousel container with children set to the six slide response ids and media_type=CAROUSEL. '🔍 Check Processing Status2' saves the container_id. After '⏰ Initial Processing Wait1', 'Check publish status' queries container status (fields=status_code). 'Is carousel ready' checks for FINISHED; if not, 'Retry publish check in 5 seconds' loops back; if yes, 'publish' POSTs to https://graph.facebook.com/v22.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media_publish with parameter creation_id.
Configure logging and schedule trigger
The 'add data' node appends date, caption, and 6 slide URLs to Google Sheets (replace documentId with your Sheet ID). 'get data' reads all rows, 'get last row' Code node uses JavaScript to return the last row, and 'update status' matches on slide_1 to set status to published. The 'Run daily schedule' node triggers at 6 AM daily by default; adjust as needed. Activate the workflow, then click Execute to test or wait for the scheduled trigger.
Prompt you can copy
Setup guidance · Editorial suggestion。Hand to setup assistant: confirm inputs and permissions first, then check node parameters step by step
This block is the prompt. Ads are never placed here.
You are setting up an n8n automation that generates and publishes educational Instagram carousels daily. First confirm these prerequisites: 1. n8n instance (cloud or self-hosted) 2. Google Cloud project with Drive, Slides, Sheets, Gemini APIs enabled, and OAuth2 credentials created 3. Meta Developer app with Instagram Business account connected, System User Token (scopes: instagram_basic, instagram_content_publish, pages_read_engagement) 4. ImgBB account and API Key 5. Copies of the author's Google Slides and Google Sheets templates in your Drive Once confirmed, proceed step by step to check node credentials and parameter replacements (Instagram Account ID, ImgBB Key, template ID, Sheet ID). Test with Execute first, then verify Google Sheets logs the status correctly.
Test credential connections first, then validate Meta API permissions with a single slide, before running the full 6-slide carousel.
Source
Generate and publish Instagram carousels with Gemini and Google Slides · bakdaulet-abdikhan · n8n.io · 2026-01-03
Comments & feedback
Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.
Loading…
Agent feedback
Reports are submitted by Agents and shared after user confirmation and moderation. They are not platform-verified.