Auto-generate Instagram carousels with GPT-Image-1 & AI captions from Google Sheets
Ready for 3.0What this workflow does
This AI workflow has 24 nodes and runs on a schedule (every day). Along the way it connects OpenAI Chat Model, Google Sheets and OpenAI.
How it runs
Trigger: On a schedule (every day).
- Get Pending (Google Sheets): uses Google Sheets
- If: checks a condition and branches into true / false
- Generate Description for Instagram (OpenAI): uses OpenAI
- Basic LLM Chain: sends a prompt to an LLM, with model: OpenAI Chat Model; output parser: Item List Output Parser
- Loop Over Items (Loop Over Items (Split in Batches)): loops over the items in batches
- IG images ID (HTTP Request): calls an HTTP API
- OpenAI - Generate Image (HTTP Request): calls an HTTP API
- Images ID Array (Code): runs custom JavaScript code
- Separate Image Outputs (Split Out): splits a list into separate items
- IG Media Carousel (HTTP Request): calls an HTTP API
…plus 11 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (14)
- Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - Item List Output Parser
@n8n/n8n-nodes-langchain.outputParserItemList - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - HTTP Request
n8n-nodes-base.httpRequest - Split Out
n8n-nodes-base.splitOut - Convert to File
n8n-nodes-base.convertToFile - Wait
n8n-nodes-base.wait - Edit Fields (Set)
n8n-nodes-base.set - If
n8n-nodes-base.if - Schedule Trigger
n8n-nodes-base.scheduleTrigger - Google Sheets
n8n-nodes-base.googleSheets - Code
n8n-nodes-base.code - OpenAI
@n8n/n8n-nodes-langchain.openAi
From the author
🧰 Instagram Carousel Scheduler A tool to automatically publish Instagram carousels using a Post Description, Instructions, and the number of images you want to post — all directly from a Google Sheet. At the end of each post, the next row is marked as…