AutomationFlowsAI & RAG › Auto-generate Social Media Videos with Gpt-5 and Publish via Blotato

Auto-generate Social Media Videos with Gpt-5 and Publish via Blotato

ByDr. Firas @drfiras on n8n.io

> ⚠️ Disclaimer: This workflow uses Community Nodes (Blotato) and requires a self-hosted n8n instance with "Verified Community Nodes" enabled.

Event trigger★★★★★ complexityAI-powered31 nodes@Blotato/N8N Nodes BlotatoTelegram TriggerGoogle SheetsTelegramGoogle DriveOpenAIAgentOpenAI Chat
AI & RAG Trigger: Event Nodes: 31 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #7348 — 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 →

Download .json
{
  "id": "4H8VzyaoTpFXg9Nj",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "\ud83d\udca5 Auto-Generate Social Media Videos with GPT-5 and Publish via Blotato - vide",
  "tags": [],
  "nodes": [
    {
      "id": "768ae3b3-0e54-475f-a856-9fb125f7bc58",
      "name": "Upload Video to BLOTATO",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -2000,
        560
      ],
      "parameters": {
        "mediaUrl": "=https://drive.google.com/uc?export=download&id={{ $json.final_google_drive_url }}",
        "resource": "media"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "8abd8f46-83d7-45b9-a725-770a5391310a",
      "name": "Youtube",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1040,
        440
      ],
      "parameters": {
        "options": {},
        "platform": "youtube",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "8047",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/8047",
          "cachedResultName": "DR FIRASS (Dr. Firas)"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}",
        "postCreateYoutubeOptionTitle": "={{ $('Google Sheets - Read Post Data').item.json.Title }}",
        "postCreateYoutubeOptionPrivacyStatus": "private",
        "postCreateYoutubeOptionShouldNotifySubscribers": false
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "bcf70961-a973-4695-9606-886ffff44adf",
      "name": "Tiktok",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1620,
        260
      ],
      "parameters": {
        "options": {},
        "platform": "tiktok",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "9332",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/9332",
          "cachedResultName": "docteur.firas"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "2d87b20b-b64c-411c-817c-098d9e6f7fed",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        -660,
        340
      ],
      "parameters": {
        "numberInputs": 9
      },
      "typeVersion": 3.2
    },
    {
      "id": "28dda1ac-17b0-422a-90c3-d2443dcf065f",
      "name": "Linkedin",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1340,
        260
      ],
      "parameters": {
        "options": {},
        "platform": "linkedin",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1446",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1446",
          "cachedResultName": "Samuel Amalric"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "9ad659bc-9ca7-40fc-9da7-1c025ceed23d",
      "name": "Facebook",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1040,
        260
      ],
      "parameters": {
        "options": {},
        "platform": "facebook",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1759",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1759",
          "cachedResultName": "Firass Ben"
        },
        "facebookPageId": {
          "__rl": true,
          "mode": "list",
          "value": "101603614680195",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1759/subaccounts/101603614680195",
          "cachedResultName": "Dr. Firas"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "e77f84c3-4ded-425a-b8b1-c160f5bf75f2",
      "name": "Instagram",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1620,
        440
      ],
      "parameters": {
        "options": {
          "instagramMediaType": "reel"
        },
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "7341",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/7341",
          "cachedResultName": "doc.firass"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "68ef8511-885f-4b6a-bbdb-35172b6cee84",
      "name": "Threads",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1620,
        640
      ],
      "parameters": {
        "options": {},
        "platform": "threads",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "2280",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/2280",
          "cachedResultName": "doc.firass"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "510db975-9dbd-4097-a441-34d9472b8bd4",
      "name": "Bluesky",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1340,
        640
      ],
      "parameters": {
        "options": {},
        "platform": "bluesky",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "6012",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/6012",
          "cachedResultName": "formationinternet.bsky.social"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "b651f6fa-5130-4ebf-b33a-4b8339726bea",
      "name": "Pinterest",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1040,
        640
      ],
      "parameters": {
        "options": {},
        "platform": "pinterest",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "363",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/363",
          "cachedResultName": "formationinternet2022"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "pinterestBoardId": {
          "__rl": true,
          "mode": "id",
          "value": "1146658823815436667"
        },
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "8c53c394-7c0b-4bc9-ae34-264f19f31c0a",
      "name": "Twitter (X)",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -1340,
        440
      ],
      "parameters": {
        "options": {},
        "platform": "twitter",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1289",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1289",
          "cachedResultName": "Docteur_Firas"
        },
        "postContentText": "={{ $('Google Sheets - Read Post Data').item.json.Caption }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "66631674-f38b-4156-8cd0-d25d26627f43",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2100,
        -620
      ],
      "parameters": {
        "width": 1960,
        "height": 660,
        "content": "# \ud83e\udde0 Step 1 \u2014 Generate Title & Caption from a Video"
      },
      "typeVersion": 1
    },
    {
      "id": "f8fb8bb2-f5fa-4014-af80-1e81389566c4",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2100,
        100
      ],
      "parameters": {
        "width": 1960,
        "height": 760,
        "content": "# \ud83d\ude80 Step 2 \u2014 Auto-Publish to 9 Social Platforms"
      },
      "typeVersion": 1
    },
    {
      "id": "1db9406d-a683-4241-98da-887cedebe925",
      "name": "Get Google Drive ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -1820,
        280
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1750d20-2f6e-4826-80b8-654d0985120d",
              "name": "final_google_drive_url",
              "type": "string",
              "value": "={{ $json['URL GOOGLE DRIVE'].match(/https:\\/\\/drive\\.google\\.com\\/file\\/d\\/([A-Za-z0-9_-]+)/i)[1] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9d58d8dd-3d83-4455-a82f-af86435266be",
      "name": "Telegram - Receive Video Idea",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -2020,
        -380
      ],
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "65165699-7361-40c8-8272-0de344734b2f",
      "name": "Google Sheets - Create Row",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1800,
        -380
      ],
      "parameters": {
        "columns": {
          "value": {
            "NAME FILE": "={{ $json.message.video.file_name }}"
          },
          "schema": [
            {
              "id": "NAME FILE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "NAME FILE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Caption",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Transcription",
              "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": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "753e1949-56b1-43a8-93c8-7f48867179fa",
      "name": "Telegram - Download Video",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -1580,
        -380
      ],
      "parameters": {
        "fileId": "={{ $('Telegram - Receive Video Idea').item.json.message.video.file_id }}",
        "resource": "file"
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "89b0c98a-84c2-4808-8f8f-db69e8b21bcb",
      "name": "Google Drive - Upload Video",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1320,
        -280
      ],
      "parameters": {
        "name": "={{ $('Telegram - Receive Video Idea').item.json.message.video.file_name }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1jSkENv2t7O6CMaSomvqQcgHmtaoPbxqb",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1jSkENv2t7O6CMaSomvqQcgHmtaoPbxqb",
          "cachedResultName": "Cours Udemy Blotato V2"
        },
        "inputDataFieldName": "=data"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "71e2b9cb-9d75-4b68-924c-87ea7ffd7ff4",
      "name": "OpenAI - Transcribe Video to Text",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -1320,
        -500
      ],
      "parameters": {
        "options": {
          "language": "fr",
          "temperature": 0
        },
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "dfbb598e-413e-4a3b-bcb9-dd185fe501eb",
      "name": "Google Sheets - Save Video Info",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1060,
        -280
      ],
      "parameters": {
        "columns": {
          "value": {
            "NAME FILE": "={{ $('Telegram - Receive Video Idea').item.json.message.video.file_name }}",
            "URL GOOGLE DRIVE": "={{ $('Google Drive - Upload Video').item.json.webViewLink }}",
            "ID URL GOOGLE DRIVE": "={{ $('Google Drive - Upload Video').item.json.id }}"
          },
          "schema": [
            {
              "id": "NAME FILE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "NAME FILE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Caption",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "NAME FILE"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-Stri7uM-d3-eO9CgA4/edit#gid=0",
          "cachedResultName": "URL"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1zrfxthPoUhbf1Ae3cKsDrJKw-Stri7uM-d3-eO9CgA4",
          "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-Stri7uM-d3-eO9CgA4/edit?usp=drivesdk",
          "cachedResultName": "url_Videos_AUTOPUBLICATION"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "210413ab-7b4f-43c6-ac17-d6364baf4c2e",
      "name": "Google Sheets - Save Transcript",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1060,
        -500
      ],
      "parameters": {
        "columns": {
          "value": {
            "NAME FILE": "={{ $('Telegram - Receive Video Idea').item.json.message.video.file_name }}",
            "Transcription": "={{ $json.text }}"
          },
          "schema": [
            {
              "id": "NAME FILE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "NAME FILE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "ID URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Caption",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "NAME FILE"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "1839a4ba-8654-4732-8449-372d98a3cf20",
      "name": "Merge - Join Video + Transcript",
      "type": "n8n-nodes-base.merge",
      "position": [
        -820,
        -380
      ],
      "parameters": {
        "mode": "chooseBranch"
      },
      "typeVersion": 3.2
    },
    {
      "id": "d7ee48ca-6b7c-4dbe-ba93-78fdf75cf36c",
      "name": "Google Sheets - Read Data for AI",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -640,
        -380
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $('Telegram - Receive Video Idea').item.json.message.video.file_name }}",
              "lookupColumn": "NAME FILE"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "b16d45e1-04ac-483c-be42-6dab8e9dcb70",
      "name": "AI Agent - Generate Title & Caption",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -480,
        -380
      ],
      "parameters": {
        "text": "={{ $json.Transcription }}",
        "options": {
          "systemMessage": "=You will create a concise Title and a short Caption using ONLY the TRANSCRIPTION below. Do not invent new content. Detect the language from the TRANSCRIPTION and write in that same language. No emojis. No hashtags.\n\nRULES\n- Title: clear, compelling, faithful to the content. Aim \u2264 70 characters. No clickbait. No emojis/hashtags.\n- Caption: \u2264 200 characters (characters, not words). Crisp, adds context or a takeaway. No emojis/hashtags.\n- Keep facts aligned with the TRANSCRIPTION. No external info.\n- Output JSON only on a single line. No markdown, no explanations.\n\nFINAL OUTPUT (single line JSON):\n{\"title\":\"<TITLE>\", \"caption\":\"<CAPTION>\"}\n\nTRANSCRIPTION:\n{{ $json.Transcription }}\n\nUse the Google Sheets tool to save the generated title and caption for this video.\n\n\n\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "74e5b89f-9dcb-4b7d-8c20-d631d43242dd",
      "name": "OpenAI Model GPT-5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -620,
        -120
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5",
          "cachedResultName": "gpt-5"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e7640b66-aaff-4dfa-9366-383ef2508d11",
      "name": "LangChain - Think Tool",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -440,
        -120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "da5fbfd8-985e-4ddc-ba23-598c5191ca2b",
      "name": "Google Sheets - Update Title & Caption",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -260,
        -120
      ],
      "parameters": {
        "columns": {
          "value": {
            "Title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
            "Caption": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Caption', ``, 'string') }}",
            "NAME FILE": "={{ $json['NAME FILE'] }}"
          },
          "schema": [
            {
              "id": "NAME FILE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "NAME FILE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "ID URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Caption",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "NAME FILE"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "184abcde-a529-4fac-ac84-0b60db7d9d05",
      "name": "Google Sheets - Read Post Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2020,
        280
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $('Telegram - Receive Video Idea').item.json.message.video.file_name }}",
              "lookupColumn": "NAME FILE"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "fde2606f-c15a-429f-9a38-5bf5115691f0",
      "name": "Google Sheets - Update Status",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -360,
        360
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "DONE",
            "ID URL GOOGLE DRIVE": "={{ $('Get Google Drive ID').item.json.final_google_drive_url }}"
          },
          "schema": [
            {
              "id": "NAME FILE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "NAME FILE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID URL GOOGLE DRIVE",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID URL GOOGLE DRIVE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Caption",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID URL GOOGLE DRIVE"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "b8f79262-7418-4206-8666-a0e9e51a4cd1",
      "name": "Telegram - Notify Post Done",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -360,
        580
      ],
      "parameters": {
        "text": "POST DONE",
        "chatId": "={{ $('Telegram - Receive Video Idea').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2753beb0-2166-44d7-bcdd-16a79e432288",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        -620
      ],
      "parameters": {
        "color": 6,
        "width": 508,
        "height": 1476,
        "content": "# \ud83d\ude80 Auto-Generate Social Media Videos with GPT-5 and Blotato\n\nCreate, caption, and publish videos on 9 platforms automatically using **GPT-5**, **Blotato**, **Google Sheets**, and **n8n**.\n\n---\n\n### \ud83c\udfa5 Full Tutorial  \n[![Watch on YouTube](https://img.youtube.com/vi/E9NhhUDK42g/hqdefault.jpg)](https://youtu.be/E9NhhUDK42g)  \n\ud83d\udc49 [Click here to watch the full YouTube tutorial](https://youtu.be/E9NhhUDK42g)\n\n---\n\n### \ud83d\udcd8 Documentation  \nAccess detailed setup instructions, API config, platform connection guides, and workflow customization tips:\n\n\ud83d\udcce [Open the full documentation on Notion](https://automatisation.notion.site/Blotato-2473d6550fd980e19983f69611a80a0d?source=copy_link)\n\n---\n\n## \u2699\ufe0f Requirements\n\n1. \u2705 **Create a [Blotato](https://blotato.com/?ref=firas) account** (Pro plan required for API access)  \n2. \ud83d\udd11 **Generate your Blotato API Key** via: `Settings > API > Generate API Key`  \n3. \ud83d\udce6 **Enable \u201cVerified Community Nodes\u201d** in the n8n admin settings  \n4. \ud83e\udde9 **Install the Blotato** verified community node in n8n  \n5. \ud83d\udee0 **Create a Blotato API credential** inside your n8n credentials tab  \n6. \ud83d\udcc4 **Duplicate this [Google Sheet template](https://docs.google.com/spreadsheets/d/1kKGEgdZCLxnILMiOph_YU95-rB8XZsQFz9XJ3gLZvas/edit?usp=sharing)**  \n7. \u2601\ufe0f **Make sure your Google Drive folder is PUBLIC** (anyone with the link can access)  \n8. \ud83d\udccc **Complete the 3 brown sticky note steps** inside the workflow editor\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "61d20a17-bf1c-4a93-8e75-5bd630c3ce0c",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Google Sheets - Update Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tiktok": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bluesky": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 7
          }
        ]
      ]
    },
    "Threads": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 6
          }
        ]
      ]
    },
    "Youtube": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "Facebook": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Linkedin": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Instagram": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Pinterest": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 8
          }
        ]
      ]
    },
    "Twitter (X)": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "OpenAI Model GPT-5": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Generate Title & Caption",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get Google Drive ID": {
      "main": [
        [
          {
            "node": "Upload Video to BLOTATO",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LangChain - Think Tool": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - Generate Title & Caption",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to BLOTATO": {
      "main": [
        [
          {
            "node": "Tiktok",
            "type": "main",
            "index": 0
          },
          {
            "node": "Linkedin",
            "type": "main",
            "index": 0
          },
          {
            "node": "Facebook",
            "type": "main",
            "index": 0
          },
          {
            "node": "Instagram",
            "type": "main",
            "index": 0
          },
          {
            "node": "Twitter (X)",
            "type": "main",
            "index": 0
          },
          {
            "node": "Youtube",
            "type": "main",
            "index": 0
          },
          {
            "node": "Threads",
            "type": "main",
            "index": 0
          },
          {
            "node": "Bluesky",
            "type": "main",
            "index": 0
          },
          {
            "node": "Pinterest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram - Download Video": {
      "main": [
        [
          {
            "node": "Google Drive - Upload Video",
            "type": "main",
            "index": 0
          },
          {
            "node": "OpenAI - Transcribe Video to Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Create Row": {
      "main": [
        [
          {
            "node": "Telegram - Download Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive - Upload Video": {
      "main": [
        [
          {
            "node": "Google Sheets - Save Video Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Update Status": {
      "main": [
        [
          {
            "node": "Telegram - Notify Post Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram - Receive Video Idea": {
      "main": [
        [
          {
            "node": "Google Sheets - Create Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Read Post Data": {
      "main": [
        [
          {
            "node": "Get Google Drive ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Save Transcript": {
      "main": [
        [
          {
            "node": "Merge - Join Video + Transcript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Save Video Info": {
      "main": [
        [
          {
            "node": "Merge - Join Video + Transcript",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge - Join Video + Transcript": {
      "main": [
        [
          {
            "node": "Google Sheets - Read Data for AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Read Data for AI": {
      "main": [
        [
          {
            "node": "AI Agent - Generate Title & Caption",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI - Transcribe Video to Text": {
      "main": [
        [
          {
            "node": "Google Sheets - Save Transcript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Generate Title & Caption": {
      "main": [
        [
          {
            "node": "Google Sheets - Read Post Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Update Title & Caption": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - Generate Title & Caption",
            "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

&gt; ⚠️ Disclaimer: This workflow uses Community Nodes (Blotato) and requires a self-hosted n8n instance with "Verified Community Nodes" enabled.

Source: https://n8n.io/workflows/7348/ — 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

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI Chat +9
AI & RAG

Jarvis is a powerful multi-agent productivity assistant built in n8n. It works directly from Telegram and can understand both text messages and voice notes.

Telegram Trigger, Telegram, OpenAI +10
AI & RAG

This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consiste

Telegram, Telegram Trigger, Google Drive +8
AI & RAG

Automate your personal productivity with this intelligent n8n workflow that integrates Telegram, Google Sheets, and OpenAI (GPT-4o). This system uses multiple AI agents to manage work hours, tasks, fi

Agent, OpenAI Chat, Telegram +9