AutomationFlowsAI & RAG › Create & Post Social Media Carousels Across 5 Platforms with AI & Blotato

Create & Post Social Media Carousels Across 5 Platforms with AI & Blotato

BySabrina Ramonov 🍄 @sabrina-ramonov on n8n.io

This AI Agent Carousel Maker uses ChatGPT and Blotato to write, generate, and auto-post social media carousels to 5 social platforms: Instagram, Tiktok, Facebook, Twitter, and Pinterest.

Chat trigger trigger★★★★☆ complexityAI-powered29 nodes@Blotato/N8N Nodes BlotatoChat TriggerMemory Buffer WindowChatAgentOpenAI Chat
AI & RAG Trigger: Chat trigger Nodes: 29 Complexity: ★★★★☆ AI nodes: yes Added:
Create & Post Social Media Carousels Across 5 Platforms with AI & Blotato — n8n workflow card showing @Blotato/N8N Nodes Blotato, Chat Trigger, Memory Buffer Window integration

This workflow corresponds to n8n.io template #8559 — we link there as the canonical source.

This workflow follows the Agent → Chat Trigger 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 →

Download .json
{
  "id": "IZnFEZhIiDvI9rKg",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "5 Automate Instagram Carousels with AI Chat",
  "tags": [],
  "nodes": [
    {
      "id": "9dd8d850-49db-4c1a-91f4-6b074be00992",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1696,
        -160
      ],
      "parameters": {
        "color": 6,
        "width": 864,
        "height": 720,
        "content": "# FULL TUTORIAL\n\n## Tutorial\n\nhttps://help.blotato.com/api/templates/5-automate-instagram-carousels-with-ai-chat\n\n## Description\n\nThis AI Agent Carousel Maker uses ChatGPT and Blotato to write, generate, and auto-post social media carousels to 5 social platforms: Instagram, Tiktok, Facebook, Twitter, and Pinterest. Simply chat with the AI agent, confirm which prebuilt viral carousel template you want to use, then the AI Agent populates the template with your personalized information and quotes, and posts to social media on autopilot. This is perfect for entrepreneurs, small businesses, content creators, digital marketing agencies, social media marketing agencies, and influencers.\n\n## Overview\n\n**1. Chat: AI Agent Carousel Maker**\n- Chat with AI agent about your desired carousel\n- Confirm quotes and carousel template to use\n\n**2. Carousel Generation**\n- AI agent calls corresponding Blotato tool to generate carousel\n- Wait and fetch completed carousel\n\n**3. Publish to Social Media via Blotato**\n- Choose your social accounts\n- Either post immediately or schedule for later"
      },
      "typeVersion": 1
    },
    {
      "id": "cddce017-9294-4e86-81db-f0ade8faad28",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        1184
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 192,
        "content": "# Error Report\n\n\ud83d\udc49 View run logs and results.\n\n\ud83d\udc49 API Dashboard:\n https://my.blotato.com/api-dashboard"
      },
      "typeVersion": 1
    },
    {
      "id": "b4448822-1a9c-4fdb-8488-461f194ae4a5",
      "name": "Error Report",
      "type": "n8n-nodes-base.merge",
      "position": [
        1008,
        896
      ],
      "parameters": {
        "numberInputs": 5
      },
      "notesInFlow": false,
      "typeVersion": 3.2
    },
    {
      "id": "65ff96f7-61dd-453e-ae62-2da65694275b",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 608,
        "height": 1632,
        "content": "# Platform Specific Notes\n\n## Tiktok\nYou can post images, videos, and slideshows. Your Tiktok account must be warmed up before using Blotato, otherwise you'll get low views. [Follow this warm up guide](https://help.blotato.com/platforms/tiktok/brand-new-accounts). \n\nCheck out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/tiktok\n\n## Linkedin\nYou can post text, images, videos, and PDF carousels. Check out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/linkedin\n\n## Facebook\nYou can post text, images, regular videos, and reels. Check out best practices and troubleshooting FAQs\nhttps://help.blotato.com/platforms/facebook\n\n## Instagram\nYou can post images, reels, stories, and slideshows. Check out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/instagram\n\n## Twitter\nYou can post text, images, and videos. You can post a long-form thread by clicking \"Show Advanced Settings\". Check out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/twitter\n\n## Threads\nYou can post text, images, and videos. You can post a long-form thread by clicking \"Show Advanced Settings\". Check out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/threads\n\n## Bluesky\nYou can post text, images, and videos. You can post a long-form thread by clicking \"Show Advanced Settings\". Check out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/bluesky\n\n## Youtube\nYou can post Youtube shorts and long-form videos. You don't need to do anything. Youtube automatically posts Shorts if your video is <2 minutes and 9:16 aspect ratio.\n\nBrand new Youtube accounts are limited to a few posts per day via API. You can still upload manually through Youtube website. This restriction is directly from Youtube and is gradually lifted as you post consistently.\n\nCheck out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/youtube\n\n## Pinterest\nYou can post image and video pins. You must warm up your Pinterest account by posting a few pins per day, gradually ramping up.\n\nHow to Get Your Pinterest Board ID:\nGo to Blotato, create a Pinterest post, click Publish, and you'll see your board IDs. Copy board ID to here.\n\nCheck out best practices and troubleshooting FAQs:\nhttps://help.blotato.com/platforms/pinterest\n\n## Need More Help?\n\nLog into Blotato.com\nClick support button in bottom right corner.\nSabrina Ramonov\ud83c\udf44 replies within 24 hours most weekdays."
      },
      "typeVersion": 1
    },
    {
      "id": "a650da92-1f9d-4dc9-b3ca-68dec241e2c0",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        464,
        304
      ],
      "parameters": {
        "color": 2,
        "width": 320,
        "height": 176,
        "content": "# Setup 2\n1. Open each node\n2. Select your social account\n3. Deactivate platforms you don't need\n3. \ud83d\udc49 **You don't need to do anything else!**"
      },
      "typeVersion": 1
    },
    {
      "id": "d957246a-ae48-4475-9026-4a73b62dd73b",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        -32
      ],
      "parameters": {
        "color": 4,
        "width": 912,
        "height": 1632,
        "content": "# Post Everywhere via Blotato\n\n## IMPORTANT\nDo not post the same image/video over and over again, otherwise it will be flagged as spam. Make sure to disclose AI generated content if you're using avatars.\n\n\ud83d\udc49  **Blotato API Docs**: https://help.blotato.com/api\n\u2705  **Troubleshoot Errors**: https://my.blotato.com/api-dashboard\n\ud83d\udcf7  **Media Requirements**: https://help.blotato.com/api/media\n\ud83d\udee0\ufe0f  **Contact help**: log into blotato > click support button in bottom right corner"
      },
      "typeVersion": 1
    },
    {
      "id": "284371c7-191a-4287-bc5e-ef7974e06771",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1696,
        608
      ],
      "parameters": {
        "color": 5,
        "width": 1168,
        "height": 1076,
        "content": "# Create Instagram Carousel via ChatGPT & Blotato"
      },
      "typeVersion": 1
    },
    {
      "id": "f0f826e9-aff8-4cc4-ade8-29508cdf87f6",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1264,
        1440
      ],
      "parameters": {
        "color": 7,
        "width": 662,
        "height": 212,
        "content": "## Troubleshooting Blotato Templates\n\n- View all video/carousel templates available: https://my.blotato.com/videos/new\n- DO NOT edit the 'quotes' parameter unless you're an n8n expert\n- When adding a new template, DO NOT duplicate an existing node. Instead, click '+ Tool' > Blotato Tool > Video > Create > select new template. This ensures template parameters are correctly loaded."
      },
      "typeVersion": 1
    },
    {
      "id": "fa052877-db65-4af0-9152-06259841ccdc",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        -160
      ],
      "parameters": {
        "color": 6,
        "width": 896,
        "height": 720,
        "content": "# Setup\n\n- Sign up for OpenAPI API access and create credential\n- Sign up for Blotato.com\n- Generate Blotato API Key by going to Settings > API > Generate API Key (paid feature only)\n- Create Blotato credential\n- If you're using n8n, ensure you have \"Verified Community Nodes\" enabled in your n8n Admin Panel. Then, install \"Blotato\" verified community node.\n- Click \"Open chat\" to test workflow\n- Complete the 2 SETUP sticky notes in BROWN in this template\n- AFTER your first successful run, open each carousel template tool call (i.e. pink nodes attached to AI Agent Carousel Maker) and tweak the parameters, but DO NOT change \"quotes\" parameter unless you're an n8n expert.\n\n## Tips and Tricks\n\n- While testing: enable only 1 social platform, and deactivate the rest for testing purposes. Add optional parameter 'scheduledTime' so that you don't accidentally post to social media. Check your content calendar here: https://my.blotato.com/queue/schedules\n- Check how your carousels look in Blotato app: https://my.blotato.com/videos\n- You can browse all video/carousel templates and get a sense of how they work by making them in the Blotato web app first: https://my.blotato.com/videos\n- When adding a new template, DO NOT duplicate an existing node. Instead, click '+ Tool' > Blotato Tool > Video > Create > select new template. This ensures template parameters are correctly loaded."
      },
      "typeVersion": 1
    },
    {
      "id": "ec20b1c6-87b5-41a4-99d4-07a08e85a49f",
      "name": "Tiktok [BLOTATO]",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "onError": "continueErrorOutput",
      "maxTries": 2,
      "position": [
        576,
        544
      ],
      "parameters": {
        "options": {},
        "platform": "tiktok",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "199",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/199",
          "cachedResultName": "sabrina_ramonov"
        },
        "postContentText": "={{ $('AI Agent Carousel Maker').item.json.output.parseJson().caption }}",
        "postContentMediaUrls": "={{ $('Get carousel').item.json.item.imageUrls }}",
        "postCreateTiktokOptionTitle": "={{ $('AI Agent Carousel Maker').item.json.output.parseJson().title }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": false,
      "typeVersion": 2,
      "waitBetweenTries": 3000
    },
    {
      "id": "cbd3819d-b7c2-43d5-b48e-371e497b85d5",
      "name": "Facebook [BLOTATO]",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "onError": "continueErrorOutput",
      "position": [
        576,
        752
      ],
      "parameters": {
        "options": {},
        "platform": "facebook",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "369",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/369",
          "cachedResultName": "Sabrina Ramonov"
        },
        "facebookPageId": {
          "__rl": true,
          "mode": "list",
          "value": "161711670360847",
          "cachedResultUrl": "https://backend.blotato.com/v2/YOUR_AWS_SECRET_KEY_HERE",
          "cachedResultName": "Blotato"
        },
        "postContentText": "={{ $('AI Agent Carousel Maker').item.json.output.parseJson().caption }}",
        "postContentMediaUrls": "={{ $('Get carousel').item.json.item.imageUrls }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "247b2fd5-bd56-45e7-a9f4-e8bc4b5a8704",
      "name": "Instagram [BLOTATO]",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "onError": "continueErrorOutput",
      "maxTries": 2,
      "position": [
        576,
        960
      ],
      "parameters": {
        "options": {},
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "28",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/28",
          "cachedResultName": "sabrina_ramonov"
        },
        "postContentText": "={{ $('AI Agent Carousel Maker').item.json.output.parseJson().caption }}",
        "postContentMediaUrls": "={{ $('Get carousel').item.json.item.imageUrls }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "waitBetweenTries": 5000
    },
    {
      "id": "f2e6ca67-0c23-42b9-9cc2-d9e7bc0e8fb6",
      "name": "Twitter [BLOTATO]",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "onError": "continueErrorOutput",
      "position": [
        576,
        1168
      ],
      "parameters": {
        "options": {},
        "platform": "twitter",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "38",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/38",
          "cachedResultName": "Sabrina_Ramonov"
        },
        "postContentText": "={{ $('AI Agent Carousel Maker').item.json.output.parseJson().caption }}",
        "postContentMediaUrls": "={{ $('Get carousel').item.json.item.imageUrls }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "66f42867-3b79-41f2-8665-b0f7fc58620b",
      "name": "Get carousel",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -144,
        976
      ],
      "parameters": {
        "videoId": "={{ $('If quotes ready').item.json.output.parseJson().id }}",
        "resource": "video",
        "operation": "get"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "61833e96-598f-40ff-9f7e-e65f835dd821",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -1616,
        976
      ],
      "parameters": {
        "options": {
          "responseMode": "responseNodes"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f320b7f9-1ac4-4893-9a0f-011dee07f81b",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -1456,
        1216
      ],
      "parameters": {
        "contextWindowLength": 20
      },
      "typeVersion": 1.3
    },
    {
      "id": "8e228748-3124-494e-920a-6cd7922380be",
      "name": "Respond to Chat",
      "type": "@n8n/n8n-nodes-langchain.chat",
      "position": [
        -752,
        1056
      ],
      "parameters": {
        "message": "={{ $json.output }}",
        "options": {},
        "waitUserReply": false
      },
      "typeVersion": 1
    },
    {
      "id": "323c3f87-16e3-41c6-91a0-1f2ba7cb2469",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        -320,
        976
      ],
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1,
      "alwaysOutputData": false
    },
    {
      "id": "cfd4de69-9874-4616-9331-050737304b72",
      "name": "If quotes ready",
      "type": "n8n-nodes-base.if",
      "position": [
        -1008,
        976
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1be77713-67d6-46a2-8e95-9284aaea62f1",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ (() => { try { const o = JSON.parse($('AI Agent Carousel Maker').item.json.output); return typeof o === 'object' && o !== null && 'id' in o; } catch { return false; } })() }}",
              "rightValue": "id"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "aa89e6b3-2e6d-4a0b-a9e6-a64d4c2ec257",
      "name": "AI Agent Carousel Maker",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1408,
        976
      ],
      "parameters": {
        "options": {
          "systemMessage": "# TASK\n\nYour task is to analyze the user's request, research the topic, and write a list of Instagram carousel containing quotes related to the user's request. \n\n# TOOLS\n\nYou have access to tools that allow you to make Instagram carousels, simply by specific a few parameters. Each tool corresponds to a different Instagram carousel template. Select the appropriate tool, then you SHOULD call it EXACTLY ONCE.\n\nWhen you call a tool, `quotes` must be an array of strings, delimited by newlines or |.\n```\n\nImportant: BEFORE making the tool call to generate the Instagram carousel, you SHOULD always confirm with the user:\n- list of quotes\n- carousel template\n\n# OUTPUT\n\nYou SHOULD always output the following format, where `id` contains the video id returned by the tool call. Leave `id` as an empty string \"\" if you did not make a carousel:\n\n{\n\t\"output\": \"Output from AI\",\n        \"caption\": \"Long carousel caption, 300 characters max\",\n        \"title\": \"Short carousel title, 8 words max\"\n\t\"id\": 1234\n}"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "03ab0521-b209-4796-a903-dc5c369b9258",
      "name": "Simple tweet cards monocolor",
      "type": "@blotato/n8n-nodes-blotato.blotatoTool",
      "position": [
        -1248,
        1264
      ],
      "parameters": {
        "resource": "video",
        "templateId": {
          "__rl": true,
          "mode": "list",
          "value": "/base/v2/tweet-card/ba413be6-a840-4e60-8fd6-0066d3b427df/v1",
          "cachedResultName": "Twitter/X style quote cards with minimal style"
        },
        "templateInputs": {
          "value": {
            "theme": "dark",
            "handle": "sabrina_ramonov",
            "quotes": "={{ $fromAI('Quotes__e_g____item_1____item_2___', ``, 'string').split(/\\n|\\|/).map(s => s.trim()).filter(Boolean) }}",
            "verified": true,
            "authorName": "Sabrina Ramonov",
            "aspectRatio": "4:5",
            "profileImage": "https://media.licdn.com/YOUR_AWS_SECRET_KEY_HERE-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1713795109052?e=2147483647&v=beta&t=dIuWBN1_U-vy1lccFxB65cRFWBOojkOghbKGmqZXXnc"
          },
          "schema": [
            {
              "id": "quotes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Quotes (e.g. [\"item 1\", \"item 2\"])",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "authorName",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "handle",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Social Media Handle",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "profileImage",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Profile Photo URL (publicly accessible URL)",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "verified",
              "type": "boolean",
              "display": true,
              "required": false,
              "displayName": "Show Verified Badge",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "theme",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Dark",
                  "value": "dark"
                },
                {
                  "name": "Light",
                  "value": "light"
                }
              ],
              "removed": false,
              "required": false,
              "displayName": "Theme",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "aspectRatio",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "4:5",
                  "value": "4:5"
                },
                {
                  "name": "1:1",
                  "value": "1:1"
                },
                {
                  "name": "9:16",
                  "value": "9:16"
                }
              ],
              "required": false,
              "displayName": "Aspect Ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "44c0f2a8-6d46-4b03-ac61-487bcf8ac7f7",
      "name": "Quote cards monocolor paper",
      "type": "@blotato/n8n-nodes-blotato.blotatoTool",
      "position": [
        -1072,
        1264
      ],
      "parameters": {
        "resource": "video",
        "templateId": {
          "__rl": true,
          "mode": "list",
          "value": "/base/v2/quote-card/77f65d2b-48cc-4adb-bfbb-5bc86f8c01bd/v1",
          "cachedResultName": "Quote Card Carousel with Monocolor Paper Background"
        },
        "templateInputs": {
          "value": {
            "font": "Philosopher",
            "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', `String that will appear on 1st slide of carousel`, 'string') }}",
            "quotes": "={{ $fromAI('Quotes__e_g____item_1____item_2___', ``, 'string').split(/\\n|\\|/).map(s => s.trim()).filter(Boolean) }}"
          },
          "schema": [
            {
              "id": "font",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Inter",
                  "value": "Inter"
                },
                {
                  "name": "Merriweather",
                  "value": "Merriweather"
                },
                {
                  "name": "Roboto Mono",
                  "value": "Roboto Mono"
                },
                {
                  "name": "VT323",
                  "value": "VT323"
                },
                {
                  "name": "Montserrat",
                  "value": "Montserrat"
                },
                {
                  "name": "Quicksand",
                  "value": "Quicksand"
                },
                {
                  "name": "Philosopher",
                  "value": "Philosopher"
                },
                {
                  "name": "Poppins",
                  "value": "Poppins"
                },
                {
                  "name": "Raleway",
                  "value": "Raleway"
                },
                {
                  "name": "Open Sans",
                  "value": "Open Sans"
                },
                {
                  "name": "Lato",
                  "value": "Lato"
                },
                {
                  "name": "Oswald",
                  "value": "Oswald"
                },
                {
                  "name": "Playfair Display",
                  "value": "Playfair Display"
                },
                {
                  "name": "Roboto",
                  "value": "Roboto"
                },
                {
                  "name": "PT Sans",
                  "value": "PT Sans"
                },
                {
                  "name": "DM Sans",
                  "value": "DM Sans"
                },
                {
                  "name": "Nunito",
                  "value": "Nunito"
                },
                {
                  "name": "Comfortaa",
                  "value": "Comfortaa"
                },
                {
                  "name": "Work Sans",
                  "value": "Work Sans"
                },
                {
                  "name": "Fjalla One",
                  "value": "Fjalla One"
                },
                {
                  "name": "Rubik",
                  "value": "Rubik"
                },
                {
                  "name": "Barlow",
                  "value": "Barlow"
                },
                {
                  "name": "Bebas Neue",
                  "value": "Bebas Neue"
                },
                {
                  "name": "Caveat",
                  "value": "Caveat"
                },
                {
                  "name": "Pacifico",
                  "value": "Pacifico"
                }
              ],
              "required": false,
              "displayName": "Font",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "quotes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Quotes (e.g. [\"item 1\", \"item 2\"])",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "f9de6c67-de20-479a-b941-bb4de4ec19ed",
      "name": "Tweet cards with photo background",
      "type": "@blotato/n8n-nodes-blotato.blotatoTool",
      "position": [
        -896,
        1264
      ],
      "parameters": {
        "resource": "video",
        "templateId": {
          "__rl": true,
          "mode": "list",
          "value": "/base/v2/tweet-card/9714ae5c-7e6b-4878-be4a-4b1ba5d0cd66/v1",
          "cachedResultName": "Twitter/X style quote cards with photo/video background"
        },
        "templateInputs": {
          "value": {
            "handle": "sabrina_ramonov",
            "quotes": "={{ $fromAI('Quotes__e_g____item_1____item_2___', ``, 'string').split(/\\n|\\|/).map(s => s.trim()).filter(Boolean) }}",
            "verified": true,
            "authorName": "Sabrina Ramonov",
            "cardPosition": "bottom",
            "profileImage": "https://media.licdn.com/YOUR_AWS_SECRET_KEY_HERE-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1713795109052?e=2147483647&v=beta&t=dIuWBN1_U-vy1lccFxB65cRFWBOojkOghbKGmqZXXnc",
            "backgroundMedia": "https://www.google.com/url?sa=i&url=https%3A%2F%2Ftheworldtravelguy.com%2Fbest-utah-hiking-trails%2F&psig=AOvVaw3HfzPBC0uTaDlnIl5ErYMJ&ust=1757862025078000&source=images&cd=vfe&opi=89978449&ved=0CBYQjRxqFwoTCIDLlL-A1o8DFQAAAAAdAAAAABAE"
          },
          "schema": [
            {
              "id": "backgroundMedia",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Background Media (publicly accessible URL)",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "quotes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Quotes (e.g. [\"item 1\", \"item 2\"])",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "authorName",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "handle",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Social Media Handle",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "profileImage",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Profile Photo URL (publicly accessible URL)",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "theme",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Light",
                  "value": "light"
                },
                {
                  "name": "Dark",
                  "value": "dark"
                }
              ],
              "removed": true,
              "required": false,
              "displayName": "Theme",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "cardPosition",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Top",
                  "value": "top"
                },
                {
                  "name": "Middle",
                  "value": "middle"
                },
                {
                  "name": "Bottom",
                  "value": "bottom"
                }
              ],
              "required": false,
              "displayName": "Card Position",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "verified",
              "type": "boolean",
              "display": true,
              "required": false,
              "displayName": "Show Verified Badge",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "enableBackdropBlur",
              "type": "boolean",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Enable Backdrop Blur",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "accentColor",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Accent Background Color",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "cardBackgroundColor",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Card Background Color",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "textColor",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Text Color",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "72e1afa3-7c0a-41da-b8fb-e2d83f24399e",
      "name": "Quote cards with highlight on paper",
      "type": "@blotato/n8n-nodes-blotato.blotatoTool",
      "position": [
        -704,
        1264
      ],
      "parameters": {
        "resource": "video",
        "templateId": {
          "__rl": true,
          "mode": "list",
          "value": "/base/v2/quote-card/f941e306-76f7-45da-b3d9-7463af630e91/v1",
          "cachedResultName": "Quote Card Carousel with Paper Background and Highlight"
        },
        "templateInputs": {
          "value": {
            "font": "Philosopher",
            "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
            "quotes": "={{ $fromAI('Quotes__e_g____item_1____item_2___', ``, 'string').split(/\\n|\\|/).map(s => s.trim()).filter(Boolean) }}",
            "paperBackground": "Light paper"
          },
          "schema": [
            {
              "id": "font",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Inter",
                  "value": "Inter"
                },
                {
                  "name": "Merriweather",
                  "value": "Merriweather"
                },
                {
                  "name": "Roboto Mono",
                  "value": "Roboto Mono"
                },
                {
                  "name": "VT323",
                  "value": "VT323"
                },
                {
                  "name": "Montserrat",
                  "value": "Montserrat"
                },
                {
                  "name": "Quicksand",
                  "value": "Quicksand"
                },
                {
                  "name": "Philosopher",
                  "value": "Philosopher"
                },
                {
                  "name": "Poppins",
                  "value": "Poppins"
                },
                {
                  "name": "Raleway",
                  "value": "Raleway"
                },
                {
                  "name": "Open Sans",
                  "value": "Open Sans"
                },
                {
                  "name": "Lato",
                  "value": "Lato"
                },
                {
                  "name": "Oswald",
                  "value": "Oswald"
                },
                {
                  "name": "Playfair Display",
                  "value": "Playfair Display"
                },
                {
                  "name": "Roboto",
                  "value": "Roboto"
                },
                {
                  "name": "PT Sans",
                  "value": "PT Sans"
                },
                {
                  "name": "DM Sans",
                  "value": "DM Sans"
                },
                {
                  "name": "Nunito",
                  "value": "Nunito"
                },
                {
                  "name": "Comfortaa",
                  "value": "Comfortaa"
                },
                {
                  "name": "Work Sans",
                  "value": "Work Sans"
                },
                {
                  "name": "Fjalla One",
                  "value": "Fjalla One"
                },
                {
                  "name": "Rubik",
                  "value": "Rubik"
                },
                {
                  "name": "Barlow",
                  "value": "Barlow"
                },
                {
                  "name": "Bebas Neue",
                  "value": "Bebas Neue"
                },
                {
                  "name": "Caveat",
                  "value": "Caveat"
                },
                {
                  "name": "Pacifico",
                  "value": "Pacifico"
                }
              ],
              "required": false,
              "displayName": "Font",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "quotes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Quotes (e.g. [\"item 1\", \"item 2\"])",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "highlighterColor",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Highlighter Color",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "paperBackground",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "White paper",
                  "value": "White paper"
                },
                {
                  "name": "Yellow paper",
                  "value": "Yellow paper"
                },
                {
                  "name": "Light paper",
                  "value": "Light paper"
                }
              ],
              "required": false,
              "displayName": "Paper Background",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "4891e954-0bf4-47b7-b059-7cf8137f4ce2",
      "name": "ChatGPT",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1584,
        1216
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "bc3f7cf1-b63f-450e-aef8-60a705efb726",
      "name": "Pinterest [BLOTATO]",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "onError": "continueErrorOutput",
      "position": [
        576,
        1376
      ],
      "parameters": {
        "options": {},
        "platform": "pinterest",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "358",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/358",
          "cachedResultName": "sabrina_ramonov"
        },
        "postContentText": "={{ $('AI Agent Carousel Maker').item.json.output.parseJson().caption }}",
        "pinterestBoardId": {
          "__rl": true,
          "mode": "id",
          "value": "1234"
        },
        "postContentMediaUrls": "={{ $('Get carousel').item.json.item.imageUrls }}",
        "postCreatePinterestOptionTitle": "={{ $('AI Agent Carousel Maker').item.json.output.parseJson().title }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "123171dc-a0e0-45f1-90fa-ca9439c7c1c2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        800
      ],
      "parameters": {
        "color": 3,
        "width": 624,
        "height": 468,
        "content": "# Get Instagram Carousel\n\n- "
      },
      "typeVersion": 1
    },
    {
      "id": "3e37eda2-27a2-4b6d-820f-a87bf9d264ea",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        784
      ],
      "parameters": {
        "color": 2,
        "width": 224,
        "height": 144,
        "content": "# Setup 1\n1. Select OpenAI credential\n2. Select Blotato credential"
      },
      "typeVersion": 1
    },
    {
      "id": "3be9803e-5f30-4469-a310-8b009ea00074",
      "name": "If carousel ready",
      "type": "n8n-nodes-base.if",
      "position": [
        48,
        976
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "e511deb8-8e4c-45db-aa35-18f43a0552b6",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $('Get carousel').item.json.item.status }}",
              "rightValue": "done"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "cbbbae9d-6822-46c8-ac93-2a8a9e471bda",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Get carousel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ChatGPT": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent Carousel Maker",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get carousel": {
      "main": [
        [
          {
            "node": "If carousel ready",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent Carousel Maker",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "If quotes ready": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond to Chat",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tiktok [BLOTATO]": {
      "main": [
        [],
        [
          {
            "node": "Error Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If carousel ready": {
      "main": [
        [
          {
            "node": "Tiktok [BLOTATO]",
            "type": "main",
            "index": 0
          },
          {
            "node": "Facebook [BLOTATO]",
            "type": "main",
            "index": 0
          },
          {
            "node": "Instagram [BLOTATO]",
            "type": "main",
            "index": 0
          },
          {
            "node": "Twitter [BLOTATO]",
            "type": "main",
            "index": 0
          },
          {
            "node": "Pinterest [BLOTATO]",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Twitter [BLOTATO]": {
      "main": [
        [],
        [
          {
            "node": "Error Report",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "Facebook [BLOTATO]": {
      "main": [
        [],
        [
          {
            "node": "Error Report",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Instagram [BLOTATO]": {
      "main": [
        [],
        [
          {
            "node": "Error Report",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "AI Agent Carousel Maker": {
      "main": [
        [
          {
            "node": "If quotes ready",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent Carousel Maker",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Quote cards monocolor paper": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Carousel Maker",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple tweet cards monocolor": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Carousel Maker",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Tweet cards with photo background": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Carousel Maker",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Quote cards with highlight on paper": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Carousel Maker",
            "type": "ai_tool",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This AI Agent Carousel Maker uses ChatGPT and Blotato to write, generate, and auto-post social media carousels to 5 social platforms: Instagram, Tiktok, Facebook, Twitter, and Pinterest.

Source: https://n8n.io/workflows/8559/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Who is this workflow for? This workflow is designed for SEO analysts, content creators, marketing agencies, and developers who need to index a website and then interact with its content as if it were

Agent, OpenAI Chat, Memory Buffer Window +10
AI & RAG

This Chatbot automates the process of discovering job openings and generating tailored job application emails.

Chat Trigger, OpenAI Chat, Mcp Client Tool +12
AI & RAG

This workflow implements an advanced AI-powered system for generating, and executing Claude Skills stored on GitHub.

Chat Trigger, Memory Buffer Window, Mcp Client Tool +9
AI & RAG

This workflow deploys a fully autonomous "AI SEO Agency" inside your n8n instance.

Chat Trigger, OpenAI Chat, Agent Tool +5
AI & RAG

This workflow creates a fully interactive AI-powered Sales CRM Chatbot inside n8n, capable of understanding user queries, searching Google Sheets for CRM data, and responding intelligently based on re

Chat Trigger, OpenAI Chat, Google Sheets Tool +4