This workflow corresponds to n8n.io template #12413 — we link there as the canonical source.
This workflow follows the Agent → Google Drive recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "5f4e7c74-2195-40a5-aeca-a4a98d952316",
"name": "Structured Output Parser1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1952,
3072
],
"parameters": {
"jsonSchemaExample": "{\n \"hook\": {\n \"title\": \"\",\n \"description\": \"\"\n },\n \"mistake\": {\n \"title\": \"\",\n \"content\": \"\"\n },\n \"why_it_matters\": {\n \"title\": \"\",\n \"content\": \"\"\n },\n \"value\": {\n \"title\": \"\",\n \"content\": \"\"\n },\n \"tip\": {\n \"title\": \"\",\n \"tip_1\": \"\",\n \"tip_2\": \"\",\n \"tip_3\": \"\"\n },\n \"cta\": {\n \"content\": \"\"\n },\n \"post_description\": {\n \"caption\": \"\"\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "95fd7d65-0d6c-4c93-bcd0-c687d21051d4",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
3632,
2848
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "7b9c1803-a9d8-4c94-b06e-3f3637b681ca",
"name": "\u23f0 Initial Processing Wait1",
"type": "n8n-nodes-base.wait",
"position": [
5632,
2880
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "7748facc-ce7b-46f2-93c5-0406b24c4934",
"name": "\ud83d\udd0d Check Processing Status2",
"type": "n8n-nodes-base.set",
"position": [
5472,
2880
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "37f96da8-a8b6-417b-b5cf-7a4df5b4610c",
"name": "container_id",
"type": "string",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4675bcbe-47c9-4023-a474-77dbe2147f91",
"name": "Container HTTP Carousel1",
"type": "n8n-nodes-base.httpRequest",
"position": [
5296,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "children",
"value": "={{ $('slide 1').item.json.id }}, {{ $('slide 2').item.json.id }}, {{ $('slide 3').item.json.id }}, {{ $('slide 4').item.json.id }}, {{ $('slide 5').item.json.id }}, {{ $('slide 6').item.json.id }}"
},
{
"name": "caption",
"value": "={{ $('get last row').item.json.caption }}"
},
{
"name": "media_type",
"value": "CAROUSEL"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "9077f671-ea84-417e-ae2c-a9315bd78a8c",
"name": "make a link",
"type": "n8n-nodes-base.httpRequest",
"position": [
3296,
2928
],
"parameters": {
"url": "https://api.imgbb.com/1/upload",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "image",
"value": "={{ $json.data.toString('base64') }}"
}
]
},
"queryParameters": {
"parameters": [
{
"name": "key",
"value": "YOUR_IMGBB_KEY_HERE"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "a47f8723-2316-4eb9-8769-6021de0cbe53",
"name": "get the imgs from slides",
"type": "n8n-nodes-base.googleSlides",
"position": [
2992,
2928
],
"parameters": {
"download": true,
"resource": "page",
"operation": "getThumbnail",
"pageObjectId": "={{ $json.objectId }}",
"presentationId": "={{ $('Replace text in template').item.json.presentationId }}"
},
"typeVersion": 2
},
{
"id": "bed59240-3d86-4bfb-b3a5-47d99cd9fe4e",
"name": "convert",
"type": "n8n-nodes-base.extractFromFile",
"position": [
3152,
2928
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "8cbc2fbc-9a31-455f-a443-e1a821dbc449",
"name": "add data",
"type": "n8n-nodes-base.googleSheets",
"position": [
3792,
2848
],
"parameters": {
"columns": {
"value": {
"date": "={{ $now.toISODate() }}",
"caption": "={{ $('Generate carousel content').item.json.output.post_description.caption }}",
"slide_1": "={{ $json.data[0].data.url }}",
"slide_2": "={{ $json.data[1].data.url }}",
"slide_3": "={{ $json.data[2].data.url }}",
"slide_4": "={{ $json.data[3].data.url }}",
"slide_5": "={{ $json.data[4].data.url }}",
"slide_6": "={{ $json.data[5].data.url }}"
},
"schema": [
{
"id": "date",
"type": "string",
"display": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_1",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slide_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slide_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_3",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slide_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_4",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slide_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_5",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slide_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_6",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slide_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "caption",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "caption",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "gid=0"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "1xkeUQaFBC2xzCJATkEPTJxhBPn2fY0NhhXHYVtoz8Ws"
}
},
"typeVersion": 4.7
},
{
"id": "720e6f9e-0e9d-4770-8535-e626f024636b",
"name": "get data",
"type": "n8n-nodes-base.googleSheets",
"position": [
3936,
2848
],
"parameters": {
"options": {
"dataLocationOnSheet": {
"values": {
"rangeDefinition": "detectAutomatically"
}
}
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "gid=0"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "1xkeUQaFBC2xzCJATkEPTJxhBPn2fY0NhhXHYVtoz8Ws"
}
},
"typeVersion": 4.7
},
{
"id": "402d3673-c331-4896-89ff-4268323d93a7",
"name": "get last row",
"type": "n8n-nodes-base.code",
"position": [
4080,
2848
],
"parameters": {
"jsCode": "// Get all rows from input\nconst rows = $input.all();\n\n// Return only the last row\nreturn [ rows[rows.length - 1] ];\n"
},
"typeVersion": 2
},
{
"id": "eea854f8-2fc6-4d1f-bf48-0acdd4f759f7",
"name": "update status",
"type": "n8n-nodes-base.googleSheets",
"position": [
6880,
2880
],
"parameters": {
"columns": {
"value": {
"status": "published",
"slide_1": "={{ $('get data').item.json.slide_1 }}"
},
"schema": [
{
"id": "date",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_1",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slide_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "slide_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "slide_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "slide_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "slide_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slide_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "slide_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "caption",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "caption",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"slide_1"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "gid=0"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "1xkeUQaFBC2xzCJATkEPTJxhBPn2fY0NhhXHYVtoz8Ws"
}
},
"typeVersion": 4.7
},
{
"id": "11d1684f-0455-42d5-a7ab-26a505d8ced0",
"name": "publish",
"type": "n8n-nodes-base.httpRequest",
"position": [
6672,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v22.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media_publish",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "creation_id",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f7294d41-45b4-4a4e-919e-33911c3bb5dc",
"name": "Main Guide",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
2752
],
"parameters": {
"width": 418,
"height": 531,
"content": "## Generate and publish Instagram carousels automatically\n\n### How it works\n1. Generates carousel copy and slide structure using Gemini\n2. Creates slides in Google Slides and prepares images\n3. Uploads and publishes the carousel to Instagram\n4. Tracks publishing status and updates results\n\n### Setup steps\n1. Add Google, Gemini, and Meta credentials\n2. Set your Instagram account ID\n3. Configure Google Slides template\n4. Adjust schedule if needed\n\n### BONUS: \nCopy this carousel [Template](https://docs.google.com/presentation/d/13N2Fykd9YYG6qvpobbuw4J-igaXztx7jUfI2FW0QTqg/edit) I used to your Drive.\n\nHappy setup,\nBakdaulet Abdikhan"
},
"typeVersion": 1
},
{
"id": "60eb199c-757a-4771-ab21-47501cf798ce",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1728,
2736
],
"parameters": {
"color": 7,
"width": 437,
"height": 496,
"content": "## AI content generation\n\u2022 Generate carousel copy with Gemini\n\u2022 Parse structured slide output\n"
},
"typeVersion": 1
},
{
"id": "b6cf2a8c-1008-4095-a3ce-85710746a4df",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
5872,
2736
],
"parameters": {
"color": 7,
"width": 622,
"height": 512,
"content": "## Publish status check\n\u2022 Verify publishing status\n\u2022 Retry until completed\n"
},
"typeVersion": 1
},
{
"id": "fb71d2be-98fd-4a91-b091-8663fcc5c29a",
"name": "Run daily schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1568,
2864
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 6
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ab37adde-39d7-4aac-9d58-10b09b59e6ed",
"name": "Generate carousel content",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1776,
2864
],
"parameters": {
"text": "=You are a professional web design content generator who writes daily carousel post scripts for social media.\n\nEach post educates web designers, business owners, and marketers about website design, UI/UX, and conversion psychology.\n\nYour task is to produce one complete post script per day in JSON format, with the following consistent structure of 6 slides:\n1. Hook\n2. Mistake\n3. Why It Matters\n4. Value\n5. Tip\n6. CTA\n\n\nYou 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\n\n\ud83e\udde9 Content Style:\n- Hook should be emotional, and curiosity-driven.\n- Hook description should make readers want to scroll till the last slide, only few words (\u201cthe last one is crucial\u201d, etc.).\n- Mistake must highlight a painful or common problem web designers or businesses make.\n- Why It Matters should emotionally and logically explain the consequence of that mistake.\n- Value gives actionable insights or truth behind fixing it.\n- Tip should provide short 3 practical steps or advice that can be implemented quickly.\n- CTA encourages engagement by commenting \u201c+\u201d or similar to improve their website.\n\n\ud83c\udfaf Topics to rotate daily:\n- Web design psychology\n- Homepage conversion\n- UI/UX tips\n- Figma or Framer best practices\n- Copywriting for web\n- Color, layout, and typography\n- Client communication and web strategy\n\n\u2699\ufe0f Rules:\n- Do NOT add markdown, explanations, or extra text \u2014 only raw JSON.\n- Each field must be short and engaging (no long paragraphs).\n- Never repeat the same CTA \u2014 always rephrase slightly.\n- Focus on actionable, painful, or surprising insights that push the reader to comment or save.\n- Make the tone natural, confident, and conversational.\n- Never use emojis or signs\n- For the cta always use the \"+\" to enfourage them\n- Tone: Spartan casual\n- In cta dont say like \"comment a +\", say \"comment +\" without article\n\nExample output, dont copy this data:\n\n{\n \"hook\": {\n \"title\": \"Your fonts might be ruining your design \",\n \"description\": \"The last part fixes it.\"\n },\n \"mistake\": {\n \"title\": \"Inconsistency\",\n \"content\": \"Using 3\u20134 random fonts across pages makes your design feel unstructured. It breaks brand trust and looks unprofessional instantly.\"\n },\n \"why_it_matters\": {\n \"title\": \"Visual Harmony\",\n \"content\": \"Typography defines how users *feel* when reading. If your font styles jump around, users subconsciously think your brand is unstable.\"\n },\n \"value\": {\n \"title\": \"Consistency Builds Trust\",\n \"content\": \"When you use one or two well-paired fonts, your site feels cleaner, easier to scan, and more premium \u2014 even without complex visuals.\"\n },\n \"tip\": {\n \"title\": \"Keep It Simple\",\n \"tip_1\": \"Use 1 display font for headings and 1 readable font for body.\",\n \"tip_2\": \"Limit weights to 2\u20133 max.\",\n \"tip_3\": \"Stick to 16\u201318px body size for clarity.\"\n },\n \"cta\": {\n \"content\": \"Drop a '+' if you want me to check your font setup \"\n },\n \"post_description\": {\n \"caption\": \"DescriptionGoesHere\"\n }\n}\n",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "f1d771b6-cb82-4448-8f96-371a9ed78eb8",
"name": "Loop carousel slides",
"type": "n8n-nodes-base.splitInBatches",
"position": [
2832,
2864
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "d7cd4ba4-b754-4e20-9adb-1608d35114f0",
"name": "Check publish status",
"type": "n8n-nodes-base.httpRequest",
"position": [
5952,
2848
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/{{ $('\ud83d\udd0d Check Processing Status2').item.json.container_id }}",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth",
"queryParameters": {
"parameters": [
{
"name": "fields",
"value": "status_code"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "bcf15032-4667-4270-9c58-21ab22de4d0e",
"name": "Is carousel ready",
"type": "n8n-nodes-base.if",
"position": [
6128,
2848
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "682def4c-2cda-4417-9329-682a8a60feed",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status_code }}",
"rightValue": "FINISHED"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e2d4b41f-c5a4-484f-9c4d-6c6bbecc7eac",
"name": "Retry publish check in 5 seconds",
"type": "n8n-nodes-base.wait",
"position": [
6288,
3008
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "45a1703a-7c50-491a-bc93-8c696d22dd64",
"name": "Google Gemini Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1776,
3072
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.5-pro"
},
"typeVersion": 1
},
{
"id": "cb3e273e-f8d5-4abe-b494-962c2e477d48",
"name": "Replace text in template",
"type": "n8n-nodes-base.googleSlides",
"position": [
2368,
2864
],
"parameters": {
"textUi": {
"textValues": [
{
"text": "{{hook}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.hook.title }}",
"pageObjectIds": "="
},
{
"text": "{{hook_description}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.hook.description }}",
"pageObjectIds": "="
},
{
"text": "{{problem_tile}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.mistake.title }}"
},
{
"text": "{{problem_description}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.mistake.content }}"
},
{
"text": "{{matter_tile}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.why_it_matters.title }}"
},
{
"text": "{{matter_description}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.why_it_matters.content }}"
},
{
"text": "{{value_tile}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.value.title }}"
},
{
"text": "{{value_description}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.value.content }}"
},
{
"text": "{{tip_tile}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.tip.title }}"
},
{
"text": "{{Tip_1}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.tip.tip_1 }}"
},
{
"text": "{{Tip_2}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.tip.tip_2 }}"
},
{
"text": "{{Tip_3}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.tip.tip_3 }}"
},
{
"text": "{{CTA}}",
"replaceText": "={{ $('Generate carousel content').item.json.output.cta.content }}"
}
]
},
"options": {},
"operation": "replaceText",
"presentationId": "={{ $json.id }}"
},
"typeVersion": 2
},
{
"id": "5d92832d-14a2-4f5c-a891-21f3386a8a1d",
"name": "Duplicate carousel template",
"type": "n8n-nodes-base.googleDrive",
"position": [
2048,
2864
],
"parameters": {
"name": "BakDesign n8n post auto",
"fileId": {
"__rl": true,
"mode": "id",
"value": "13N2Fykd9YYG6qvpobbuw4J-igaXztx7jUfI2FW0QTqg"
},
"options": {
"copyRequiresWriterPermission": false
},
"operation": "copy"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "f5e985e9-e73d-440e-9e87-ae3d9e302e8d",
"name": "Get slides (carousels)",
"type": "n8n-nodes-base.googleSlides",
"position": [
2576,
2864
],
"parameters": {
"operation": "getSlides",
"presentationId": "={{ $json.presentationId }}"
},
"typeVersion": 2
},
{
"id": "b3db67a4-e32d-44bf-a551-78251a350f4d",
"name": "slide 2",
"type": "n8n-nodes-base.httpRequest",
"position": [
4608,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $('get last row').item.json.slide_2 }}"
},
{
"name": "caption",
"value": "={{ $('get last row').item.json.caption }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "be713ec5-d3b4-4f3f-8fa0-3c42236bcee2",
"name": "slide 3",
"type": "n8n-nodes-base.httpRequest",
"position": [
4736,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $('get last row').item.json.slide_3 }}"
},
{
"name": "caption",
"value": "={{ $('get last row').item.json.caption }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7de1c6c4-be2c-4b10-a92c-51dd6ba34a4f",
"name": "slide 4",
"type": "n8n-nodes-base.httpRequest",
"position": [
4864,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $('get last row').item.json.slide_4 }}"
},
{
"name": "caption",
"value": "={{ $('get last row').item.json.caption }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "91e417ca-d805-4da9-9ec8-b8f477f85d8e",
"name": "slide 5",
"type": "n8n-nodes-base.httpRequest",
"position": [
4992,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $('get last row').item.json.slide_5 }}"
},
{
"name": "caption",
"value": "={{ $('get last row').item.json.caption }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "6c776736-7fcf-4591-8952-561418906938",
"name": "slide 6",
"type": "n8n-nodes-base.httpRequest",
"position": [
5120,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $('get last row').item.json.slide_6 }}"
},
{
"name": "caption",
"value": "={{ $('get last row').item.json.caption }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "6b9520d2-a89c-4e56-b134-179e28414a26",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
2304,
2736
],
"parameters": {
"color": 7,
"width": 1173,
"height": 416,
"content": "## Slide creation\n\u2022 Populate a Google Slides template with generated carousel content\n\u2022 Extract slide thumbnails and convert them into image files\n\u2022 Prepare slide images for upload and publishing\n"
},
"typeVersion": 1
},
{
"id": "1a597ee8-0c56-4710-b197-aab2fafe73e0",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
3584,
2736
],
"parameters": {
"color": 7,
"width": 629,
"height": 304,
"content": "## Data preparation\n\u2022 Aggregate carousel metadata\n\u2022 Store slide and post data\n"
},
"typeVersion": 1
},
{
"id": "5d6530d4-d0eb-483e-a7bf-a0c72eb9aa69",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
4384,
2736
],
"parameters": {
"color": 7,
"width": 1397,
"height": 336,
"content": "## Upload images to a container\n\u2022 Upload each carousel slide to Meta as a media item\n\u2022 Combine slides into a single carousel container\n\u2022 Wait until Meta finishes processing media\n"
},
"typeVersion": 1
},
{
"id": "b406a349-7fe6-4931-91d9-809672e92ffa",
"name": "slide 1",
"type": "n8n-nodes-base.httpRequest",
"position": [
4448,
2880
],
"parameters": {
"url": "=https://graph.facebook.com/v24.0/YOUR_INSTAGRAM_ACCOUNT_ID_HERE/media\n",
"method": "POST",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $json.slide_1 }}"
},
{
"name": "caption",
"value": "={{ $json.caption }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "8ee75994-2181-426f-b612-85376ec96c0d",
"name": "Sticky Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
6576,
2736
],
"parameters": {
"color": 7,
"width": 622,
"height": 304,
"content": "## Publish and update status\n\u2022 Publish the carousel to Instagram\n\u2022 Update publishing status in Google Sheets\n\u2022 Track successful and failed posts\n"
},
"typeVersion": 1
}
],
"connections": {
"convert": {
"main": [
[
{
"node": "make a link",
"type": "main",
"index": 0
}
]
]
},
"publish": {
"main": [
[
{
"node": "update status",
"type": "main",
"index": 0
}
]
]
},
"slide 1": {
"main": [
[
{
"node": "slide 2",
"type": "main",
"index": 0
}
]
]
},
"slide 2": {
"main": [
[
{
"node": "slide 3",
"type": "main",
"index": 0
}
]
]
},
"slide 3": {
"main": [
[
{
"node": "slide 4",
"type": "main",
"index": 0
}
]
]
},
"slide 4": {
"main": [
[
{
"node": "slide 5",
"type": "main",
"index": 0
}
]
]
},
"slide 5": {
"main": [
[
{
"node": "slide 6",
"type": "main",
"index": 0
}
]
]
},
"slide 6": {
"main": [
[
{
"node": "Container HTTP Carousel1",
"type": "main",
"index": 0
}
]
]
},
"add data": {
"main": [
[
{
"node": "get data",
"type": "main",
"index": 0
}
]
]
},
"get data": {
"main": [
[
{
"node": "get last row",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "add data",
"type": "main",
"index": 0
}
]
]
},
"make a link": {
"main": [
[
{
"node": "Loop carousel slides",
"type": "main",
"index": 0
}
]
]
},
"get last row": {
"main": [
[
{
"node": "slide 1",
"type": "main",
"index": 0
}
]
]
},
"Is carousel ready": {
"main": [
[
{
"node": "publish",
"type": "main",
"index": 0
}
],
[
{
"node": "Retry publish check in 5 seconds",
"type": "main",
"index": 0
}
]
]
},
"Run daily schedule": {
"main": [
[
{
"node": "Generate carousel content",
"type": "main",
"index": 0
}
]
]
},
"Check publish status": {
"main": [
[
{
"node": "Is carousel ready",
"type": "main",
"index": 0
}
]
]
},
"Loop carousel slides": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "get the imgs from slides",
"type": "main",
"index": 0
}
]
]
},
"Get slides (carousels)": {
"main": [
[
{
"node": "Loop carousel slides",
"type": "main",
"index": 0
}
]
]
},
"Container HTTP Carousel1": {
"main": [
[
{
"node": "\ud83d\udd0d Check Processing Status2",
"type": "main",
"index": 0
}
]
]
},
"Replace text in template": {
"main": [
[
{
"node": "Get slides (carousels)",
"type": "main",
"index": 0
}
]
]
},
"get the imgs from slides": {
"main": [
[
{
"node": "convert",
"type": "main",
"index": 0
}
]
]
},
"Generate carousel content": {
"main": [
[
{
"node": "Duplicate carousel template",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model1": {
"ai_languageModel": [
[
{
"node": "Generate carousel content",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Generate carousel content",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Duplicate carousel template": {
"main": [
[
{
"node": "Replace text in template",
"type": "main",
"index": 0
}
]
]
},
"\u23f0 Initial Processing Wait1": {
"main": [
[
{
"node": "Check publish status",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udd0d Check Processing Status2": {
"main": [
[
{
"node": "\u23f0 Initial Processing Wait1",
"type": "main",
"index": 0
}
]
]
},
"Retry publish check in 5 seconds": {
"main": [
[
{
"node": "Check publish status",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleDriveOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Turn a single topic into a published Instagram Carousel in minutes.
Source: https://n8n.io/workflows/12413/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Veo3_POV_Vlogs. Uses googleSheets, toolThink, agent, outputParserStructured. Scheduled trigger; 18 nodes.
Customer support calls contain a wealth of valuable feedback and urgent issues, but manually reviewing audio files is inefficient. This workflow acts as an AI assistant for your call log, transforming
LinkedIn_Job_Hunt_and_Cover_Letter. Uses outputParserStructured, outputParserAutofixing, googleDrive, agent. Scheduled trigger; 85 nodes.
This n8n automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform
This workflow is designed for: Content creators and marketers E-commerce and product-based businesses Agencies producing social media visuals and videos Automation builders looking for AI-powered crea