This workflow follows the Agent → Google Sheets 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 →
{
"createdAt": "2025-07-14T19:04:31.485Z",
"updatedAt": "2025-07-14T19:04:31.485Z",
"id": "ssXTKiWQzvM8XaHj",
"name": "10-Generate___Auto_Post_Social_Videos_to_Multiple_Platforms_with_GPT_4_and_Kling_AI",
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {
"content": "# \ud83d\udfeb STEP 1 \u2014 Create Video Using AI\n## This step handles the full video creation pipeline using AI.\n### It starts from a Telegram message containing a prompt, \n### refines the prompt with GPT-4 to suit Kling\u2019s video engine, \n### and generates a cinematic video based entirely on text input.\n",
"height": 420,
"width": 2640
},
"id": "d9a8eb49-f9bd-4360-8487-f0c6318d27e5",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
-460
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud83d\udfeb STEP 2 \u2014 Add Voice-Over to Video\n## Here, a short-form voice-over script is generated using GPT-4 based on the topic.\n### The script is converted to speech, uploaded, and merged with the AI-generated video \u2014 resulting in a fully narrated visual asset.\n",
"height": 260,
"width": 2640
},
"id": "9cc40330-66e1-46a9-9a84-6af207064db6",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
0
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud83d\udfe5 STEP 5 \u2014 Auto-Publish to 9 Social Platforms\n## The final step automates distribution using Blotato\u2019s API.\n## The video is auto-published to Instagram, YouTube, TikTok, Facebook, \n## LinkedIn, Threads, Twitter (X), Bluesky, and Pinterest \n## \u2014 all in one go, with no manual work required.\n",
"height": 540,
"width": 2640,
"color": 3
},
"id": "adc039dc-d2d4-441c-bfb9-9275028c8555",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
900
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud83d\udfeb STEP 4 \u2014 Save Video & Notify via Telegram\n## This step generates a title and caption for the video, \n## saves the content metadata to a Google Sheet for future tracking, \n### And sends both the final video and its description to a Telegram chat for validation or reuse.\n### The script is converted to speech, uploaded, and merged with the AI-generated video \u2014 resulting in a fully narrated visual asset.\n",
"height": 260,
"width": 2640
},
"id": "b40b60e1-ce28-43c3-b7bc-1e82e24c3d50",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
600
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud83d\udfeb STEP 3 \u2014 Add Captions to Enhance Engagement\n## To increase accessibility and boost social engagement, \n## this step overlays professional-looking subtitles on the video using a styling template.\n### This results in a final video that includes visuals, voice-over, and captions.\n",
"height": 260,
"width": 2640
},
"id": "71b5d99f-fef4-4c51-a8c2-e6c6a9c4dc5b",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
300
],
"typeVersion": 1
},
{
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"id": "b21fe84a-66f4-450b-9ab5-d9c0a9976a85",
"name": "Trigger: Telegram Prompt",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
1620,
-340
],
"typeVersion": 1.1
},
{
"parameters": {
"jsCode": "\n inputText=$input.first().json.message.text;\n // Remove \"generate video\" prefix (case-insensitive) and trim whitespace\n const cleaned = inputText.replace(/^generate video/i, '').trim();\n\n // Split at the first comma only\n const [videoPrompt, captionIdea] = cleaned.split(/,(.+)/).map(s => s.trim());\n\n // Return as a JSON object\n return {\n videoPrompt,\n captionIdea\n };\n"
},
"id": "7cbb75b6-6912-4f5b-a0d6-7e1915a92edc",
"name": "Extract Prompt & Caption",
"type": "n8n-nodes-base.code",
"position": [
1940,
-340
],
"typeVersion": 2
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json.videoPrompt }}",
"options": {
"systemMessage": "=\u2699\ufe0f System Instructions \u2013 AI Agent:\nYou are a prompt optimization assistant for Kling AI, a cutting-edge text-to-video generation platform.\n\n\ud83c\udfaf Mission:\nTransform brief user inputs into cinematic, high-quality video prompts rich in sensory details, spatial context, and dynamic motion\u2014perfectly tuned for Kling AI.\n\n\u270d\ufe0f Instructions:\nExpand short ideas into visually immersive scenes.\n\nUse concrete visual elements: colors, textures, lighting, motion, atmosphere, camera angles.\n\nKeep descriptions concise but vivid, like a scene from a movie script.\n\nOutput only the final prompt\u2014no explanations, no formatting tips.\n\n\ud83c\udf1f Examples:\nUser Input: \u201cRainy street at night\u201d\nFinal Prompt:\nNeon signs reflect in puddles on a dimly lit city street. Raindrops ripple across a parked motorcycle's chrome. A figure in a trench coat walks past flickering lights as steam rises from a nearby sewer grate. The camera tracks from ground level, capturing water splashing underfoot.\n\nUser Input: \u201cMountain hike\u201d\nFinal Prompt:\nA hiker climbs a rugged mountain trail at sunrise, golden light hitting snow-capped peaks in the distance. Wind rustles through pine trees as birds soar overhead. The camera pans slowly from behind, revealing a vast valley below bathed in morning mist.\n\nUser Input: \u201cCozy library\u201d\nFinal Prompt:\nA warm library room with wooden shelves lined with old books. Dust floats in the sunbeams streaming through tall windows. A cat naps on a leather armchair while a hand flips through a weathered novel. The camera gently rotates around the room, revealing small glowing lamps."
}
},
"id": "a88f1cc9-7400-49b5-85f3-a61eb4840af0",
"name": "Transform Prompt for Kling (GPT-4)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2280,
-340
],
"typeVersion": 1.8
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"id": "2c8078ca-d2af-4f5f-835c-efade050ca79",
"name": "OpenAI Model Bridge",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2300,
-180
],
"typeVersion": 1.2
},
{
"parameters": {
"method": "POST",
"url": "https://api.piapi.ai/api/v1/task",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n\"model\": \"kling\",\n\"task_type\": \"video_generation\",\n\"input\": {\n\"prompt\": \"{{ $('Transform Prompt for Kling (GPT-4)').item.json.output }}\",\n\"negative_prompt\": \"\",\n\"cfg_scale\": 0.5,\n\"duration\": 10,\n\"aspect_ratio\": \"9:16\",\n\"version\": \"1.6\",\n\"camera_control\": {\n\"type\": \"simple\",\n\"config\": {\n\"horizontal\": 0,\n\"vertical\": 0,\n\"pan\": -10,\n\"tilt\": 0,\n\"roll\": 0,\n\"zoom\": 0\n}\n},\n\"mode\": \"std\"\n},\n\"config\": {\n\"service_mode\": \"\",\n\"webhook_config\": {\n\"endpoint\": \"\",\n\"secret\": \"\"\n}\n}\n}",
"options": {}
},
"id": "4aef0d52-8f96-4c26-a499-3bfbd4fc9b01",
"name": "Generate Video via Kling API",
"type": "n8n-nodes-base.httpRequest",
"position": [
2740,
-340
],
"typeVersion": 4.2
},
{
"parameters": {
"amount": 7,
"unit": "minutes"
},
"id": "09acd41c-5f50-4252-a897-2b824e595882",
"name": "Wait for Video Generation",
"type": "n8n-nodes-base.wait",
"position": [
3040,
-340
],
"typeVersion": 1.1
},
{
"parameters": {
"url": "=https://api.piapi.ai/api/v1/task/{{ $json.data.task_id }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
}
},
"id": "feeed38b-fff2-4199-8a49-f13c7f39cc9f",
"name": "Get Generated Video URL",
"type": "n8n-nodes-base.httpRequest",
"position": [
3320,
-340
],
"typeVersion": 4.2
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"messages": {
"values": [
{
"content": "=Task:\nCraft a short-form voice-over script that perfectly fits a 7-second video duration. The script should align with the following topic:\n\n{{ $('Extract Prompt & Caption').item.json.captionIdea }}\n\nRequirements:\n\nMatch the average spoken word count for a 7-second voice-over (approximately 18\u201322 words, depending on pacing).\n\nThe script must be tight, impactful, and written in a natural spoken tone suitable for narration.\n\nNo intro text or labels \u2014 return only the plain voice-over script with no headers or commentary.\n\n\u2705 Example (For Context Only):\nTopic: \"Why cold showers boost productivity\"\nGenerated Output:\nCold showers shock your system awake, boost focus, and kickstart circulation\u2014training your brain to embrace discomfort."
}
]
},
"options": {}
},
"id": "ae15eef5-1e73-4a5a-a040-8967c06403b8",
"name": "Generate Voice-Over Script",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1940,
20
],
"typeVersion": 1.8
},
{
"parameters": {
"resource": "audio",
"input": "={{ $json.message.content }}",
"options": {}
},
"id": "05697ce3-a6b3-462a-a234-58fe017d02f9",
"name": "Convert Script to Audio (TTS)",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2300,
20
],
"typeVersion": 1.8
},
{
"parameters": {
"url": "https://api.cloudinary.com/v1_1/dc5wapno3/auto/upload",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"parameterType": "formBinaryData",
"name": "file",
"inputDataFieldName": "data"
},
{
"name": "upload_preset",
"value": "n8n_video"
}
]
},
"options": {}
},
"id": "35d878fe-5f55-4f30-a75b-07478bfa21a5",
"name": "Upload Audio to Cloudinary",
"type": "n8n-nodes-base.httpRequest",
"position": [
2500,
20
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://api.json2video.com/v2/movies",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n\"resolution\": \"custom\",\n\"width\": 720,\n\"height\": 1280,\n\"scenes\": [\n{\n\"elements\": [\n{\n\"type\": \"video\",\n\"src\": \"{{ $('Get Generated Video URL').item.json.data.output.video_url }}\",\n\"resize\": \"cover\"\n},\n{\n\"type\": \"audio\",\n\"src\": \"{{ $json.url }}\"\n}\n]\n}\n]\n}",
"options": {}
},
"id": "b9b44047-9c2c-4760-8551-8be08ac451ca",
"name": "Merge Audio + Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
2740,
20
],
"typeVersion": 4.2
},
{
"parameters": {
"amount": 1,
"unit": "minutes"
},
"id": "4e14c350-c6df-4b2c-9763-48f559b2a08c",
"name": "Wait for Audio/Video Fusion",
"type": "n8n-nodes-base.wait",
"position": [
3040,
20
],
"typeVersion": 1.1
},
{
"parameters": {
"url": "=https://api.json2video.com/v2/movies?id={{ $json.project }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"id": "49c63b0e-19df-43cf-a7e8-fa8ba90178e5",
"name": "Get Video URL with Audio",
"type": "n8n-nodes-base.httpRequest",
"position": [
3320,
20
],
"typeVersion": 4.2
},
{
"parameters": {
"amount": 30
},
"id": "5adabf4d-9145-409c-82d5-1b6504fffe52",
"name": "Wait Before Captioning",
"type": "n8n-nodes-base.wait",
"position": [
2500,
320
],
"typeVersion": 1.1
},
{
"parameters": {
"method": "POST",
"url": "https://api.json2video.com/v2/movies",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n\"id\": \"qbaasr7s\",\n\"resolution\": \"custom\",\n\"quality\": \"high\",\n\"scenes\": [\n{\n\"id\": \"qyjh9lwj\",\n\"comment\": \"Scene 1\",\n\"elements\": []\n}\n],\n\"elements\": [\n{\n\"id\": \"q6dznzcv\",\n\"type\": \"video\",\n\"src\": \"{{ $json.movie.url }}\"\n},\n{\n\"id\": \"q41n9kxp\",\n\"type\": \"subtitles\",\n\"settings\": {\n\"style\": \"classic-progressive\",\n\"position\": \"center-center\",\n\"font-family\": \"Oswald\",\n\"font-size\": 140,\n\"word-color\": \"#ffd700\",\n\"shadow-color\": \"#260B1B\",\n\"line-color\": \"#F1E7F4\",\n\"shadow-offset\": 0,\n\"box-color\": \"#260B1B\",\n\"outline-color\": \"#000000\",\n\"outline-width\": 8\n},\n\"language\": \"en\"\n}\n],\n\"width\": 720,\n\"height\": 1280\n}",
"options": {}
},
"id": "7ba939f8-e61f-482d-8546-85eeed741a17",
"name": "Add Captions/Subtitles to Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
2740,
320
],
"typeVersion": 4.2
},
{
"parameters": {
"amount": 1,
"unit": "minutes"
},
"id": "f23e34e0-ab80-4d28-b66e-f7954c9c8324",
"name": "Wait for Caption Render",
"type": "n8n-nodes-base.wait",
"position": [
3040,
320
],
"typeVersion": 1.1
},
{
"parameters": {
"url": "=https://api.json2video.com/v2/movies?id={{ $json.project }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"id": "1a68e463-fe6a-4a24-acea-1abf30f58159",
"name": "Get Final Video URL (Audio + Captions)",
"type": "n8n-nodes-base.httpRequest",
"position": [
3320,
320
],
"typeVersion": 4.2
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"messages": {
"values": [
{
"content": "=\ud83d\udcf2 Prompt: Caption Generator for Voiceover-Based Social Posts\nYour Role:\nCreate a concise and engaging social media caption that builds directly on the voiceover script below:\n{{ $('Generate Voice-Over Script').item.json.message.content }}\n\n\ud83e\udde0 Caption Guidelines:\nKeep it short, compelling, and value-driven.\n\nAvoid generic motivational fluff \u2014 focus on real, actionable insight or highlight a problem/solution pattern.\n\n\nStructure:\n\nOne sentence per line.\n\nNote: Do not use this character: \" in the result.\nReturn a single short paragraph with no line breaks and no special characters.\nNote: Do not use this character: \" in the result.\n"
}
]
},
"options": {}
},
"id": "c036b212-0a8f-4c55-a907-5602a58b17b6",
"name": "Generate Social Caption from Voiceover",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1960,
660
],
"typeVersion": 1.8
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"messages": {
"values": [
{
"content": "=Act as a YouTube Title Expert.\nBased on the following video description:\n{{ $('Generate Voice-Over Script').item.json.message.content }}\nGenerate a short, punchy, and curiosity-driven YouTube video title that makes people want to click.\nMake it feel urgent, valuable, or surprising \u2014 and avoid generic or boring phrases.\nKeep it under 70 characters. Return only the title, no explanations.\nNote: The title must be free of special characters and the character \". Return only a plain text title.\n\n"
}
]
},
"options": {}
},
"id": "f14ec9bb-0748-4fa9-bd99-8852127f32e8",
"name": "Generate YouTube-Style Title",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2360,
660
],
"typeVersion": 1.8
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"columns": {
"value": {
"Titre": "={{ $json.message.content }}",
"PROMPT": "={{ $('Trigger: Telegram Prompt').item.json.message.text }}",
"URL VIDEO": "={{ $('Get Final Video URL (Audio + Captions)').item.json.movie.url }}",
"DESCRIPTION": "={{ $('Generate Social Caption from Voiceover').item.json.message.content }}"
},
"schema": [
{
"id": "PROMPT",
"type": "string",
"display": true,
"required": false,
"displayName": "PROMPT",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "DESCRIPTION",
"type": "string",
"display": true,
"required": false,
"displayName": "DESCRIPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL VIDEO",
"type": "string",
"display": true,
"required": false,
"displayName": "URL VIDEO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Titre",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Titre",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "98aa6a77-48d7-42a6-940c-1e78c5c51fb2",
"name": "Save Video Metadata to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
2740,
660
],
"typeVersion": 4.5
},
{
"parameters": {
"operation": "sendVideo",
"chatId": "={{ $('Trigger: Telegram Prompt').item.json.message.chat.id }}",
"file": "={{ $json['URL VIDEO'] }}",
"additionalFields": {}
},
"id": "bfd0252e-b8f6-4852-bde1-f7873970072c",
"name": "Send Final Video to Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
3040,
660
],
"typeVersion": 1.2
},
{
"parameters": {
"chatId": "={{ $json.result.chat.id }}",
"text": "={{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\n\nLink here : {{ $('Save Video Metadata to Google Sheets').item.json['URL VIDEO'] }}",
"additionalFields": {}
},
"id": "60e2ba47-227c-4a23-873b-818ca5a937a3",
"name": "Send Caption Link via Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
3320,
660
],
"typeVersion": 1.2
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "{\n \"instagram_id\": \"1687\",\n \"youtube_id\": \"873\",\n \"threads_id\": \"507\",\n \"tiktok_id\": \"2079\",\n \"facebook_id\": \"1759\",\n \"facebook_page_id\": \"101603614680195\",\n \"twitter_id\": \"1289\",\n \"linkedin_id\": \"1446\",\n \"pinterest_id\": \"363\",\n \"pinterest_board_id\": \"1146658823815436667\",\n \"bluesky_id\": \"932\"\n}\n",
"options": {}
},
"id": "da9252ee-32cf-4ef2-ac10-32c0fd5125e7",
"name": "Assign Social Media IDs",
"type": "n8n-nodes-base.set",
"position": [
1960,
1120
],
"typeVersion": 3.4
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/media",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $('Save Video Metadata to Google Sheets').item.json['URL VIDEO'] }}"
}
]
},
"options": {}
},
"id": "5f80b6c2-7811-453f-b805-994b367ae781",
"name": "Upload Video to Blotato",
"type": "n8n-nodes-base.httpRequest",
"position": [
2180,
1120
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.instagram_id }}\",\n \"target\": {\n \"targetType\": \"instagram\"\n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"instagram\",\n \"mediaUrls\": [\n \"{{ $json.url }}\"\n ]\n }\n }\n}\n",
"options": {}
},
"id": "0c946cc5-05d0-4c38-b452-347d26300ccc",
"name": "Post to Instagram",
"type": "n8n-nodes-base.httpRequest",
"position": [
2740,
940
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.youtube_id }}\",\n \"target\": {\n \"targetType\": \"youtube\",\n \"title\": \"{{ $('Save Video Metadata to Google Sheets').item.json.Titre }}\",\n \"privacyStatus\": \"unlisted\",\n \"shouldNotifySubscribers\": \"false\"\n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"youtube\",\n \"mediaUrls\": [\n \"{{ $json.url }}\"\n ]\n }\n }\n}",
"options": {}
},
"id": "46f674e1-1567-4576-8332-a7afa077afaa",
"name": "Post to YouTube",
"type": "n8n-nodes-base.httpRequest",
"position": [
3040,
940
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.tiktok_id }}\",\n \"target\": {\n \"targetType\": \"tiktok\",\n \"isYourBrand\": \"false\", \n \"disabledDuet\": \"false\",\n \"privacyLevel\": \"PUBLIC_TO_EVERYONE\",\n \"isAiGenerated\": \"true\",\n \"disabledStitch\": \"false\",\n \"disabledComments\": \"false\",\n \"isBrandedContent\": \"false\"\n \n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"tiktok\",\n \"mediaUrls\": [\n \"{{ $json.url }}\"\n ]\n }\n }\n}\n",
"options": {}
},
"id": "7795894c-8c0e-4166-8e31-9d7eb4595e59",
"name": "Post to TikTok",
"type": "n8n-nodes-base.httpRequest",
"position": [
3320,
940
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.facebook_id }}\",\n \"target\": {\n \"targetType\": \"facebook\",\n \"pageId\": \"{{ $('Assign Social Media IDs').item.json.facebook_page_id }}\"\n\n \n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"facebook\",\n \"mediaUrls\": [\n \"{{ $json.url }}\"\n ]\n }\n }\n}",
"options": {}
},
"id": "2d65f303-b7c8-4ff3-918c-678219978666",
"name": "Post to Facebook Page",
"type": "n8n-nodes-base.httpRequest",
"position": [
2740,
1120
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.threads_id }}\",\n \"target\": {\n \"targetType\": \"threads\"\n \n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"threads\",\n \"mediaUrls\": [\n \"{{ $json.url }}\"\n ]\n }\n }\n}",
"options": {}
},
"id": "6f1f5965-07c4-4860-bb45-4ffac3865cfb",
"name": "Post to Threads",
"type": "n8n-nodes-base.httpRequest",
"position": [
3040,
1120
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.twitter_id }}\",\n \"target\": {\n \"targetType\": \"twitter\"\n \n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"twitter\",\n \"mediaUrls\": [\n \"{{ $json.url }}\"\n ]\n }\n }\n}\n",
"options": {}
},
"id": "8711123c-5dbf-46d9-9818-8f8fe844ded3",
"name": "Post to Twitter (X)",
"type": "n8n-nodes-base.httpRequest",
"position": [
3320,
1120
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.linkedin_id }}\",\n \"target\": {\n \"targetType\": \"linkedin\"\n \n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"linkedin\",\n \"mediaUrls\": [\n \"{{ $json.url }}\"\n ]\n }\n }\n}\n",
"options": {}
},
"id": "66122c27-4d03-49e9-8cc6-8d8e96f7545d",
"name": "Post to LinkedIn",
"type": "n8n-nodes-base.httpRequest",
"position": [
2740,
1280
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.bluesky_id }}\",\n \"target\": {\n \"targetType\": \"bluesky\"\n \n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"bluesky\",\n \"mediaUrls\": [\n \"https://pbs.twimg.com/media/GE8MgIiWEAAfsK3.jpg\"\n ]\n }\n }\n}\n",
"options": {}
},
"id": "f26e1c5e-b12d-4a09-8d9f-52b928047838",
"name": "Post to Bluesky",
"type": "n8n-nodes-base.httpRequest",
"position": [
3040,
1280
],
"typeVersion": 4.2
},
{
"parameters": {
"method": "POST",
"url": "https://backend.blotato.com/v2/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('Assign Social Media IDs').item.json.pinterest_id }}\",\n \"target\": {\n \"targetType\": \"pinterest\",\n \"boardId\": \"{{ $('Assign Social Media IDs').item.json.pinterest_board_id }}\" \n },\n \"content\": {\n \"text\": \"{{ $('Save Video Metadata to Google Sheets').item.json.DESCRIPTION }}\",\n \"platform\": \"pinterest\",\n \"mediaUrls\": [\n \"https://pbs.twimg.com/media/GE8MgIiWEAAfsK3.jpg\"\n ]\n }\n }\n}\n",
"options": {}
},
"id": "4bded05b-2dbf-4fd2-933d-e3e538962e2c",
"name": "Post to Pinterest",
"type": "n8n-nodes-base.httpRequest",
"position": [
3320,
1280
],
"typeVersion": 4.2
},
{
"parameters": {
"content": "## External Setup Guide\n[Guide](https://dr-firas.vip/)",
"height": 80,
"width": 300
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
920,
-560
],
"id": "043be36f-3fad-4eca-9482-a8e35c0a5a77",
"name": "Sticky Note5"
}
],
"connections": {
"Merge Audio + Video": {
"main": [
[
{
"node": "Wait for Audio/Video Fusion",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Model Bridge": {
"ai_languageModel": [
[
{
"node": "Transform Prompt for Kling (GPT-4)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Wait Before Captioning": {
"main": [
[
{
"node": "Add Captions/Subtitles to Video",
"type": "main",
"index": 0
}
]
]
},
"Assign Social Media IDs": {
"main": [
[
{
"node": "Upload Video to Blotato",
"type": "main",
"index": 0
}
]
]
},
"Get Generated Video URL": {
"main": [
[
{
"node": "Generate Voice-Over Script",
"type": "main",
"index": 0
}
]
]
},
"Upload Video to Blotato": {
"main": [
[
{
"node": "Post to Instagram",
"type": "main",
"index": 0
},
{
"node": "Post to YouTube",
"type": "main",
"index": 0
},
{
"node": "Post to TikTok",
"type": "main",
"index": 0
},
{
"node": "Post to Facebook Page",
"type": "main",
"index": 0
},
{
"node": "Post to Threads",
"type": "main",
"index": 0
},
{
"node": "Post to Twitter (X)",
"type": "main",
"index": 0
},
{
"node": "Post to LinkedIn",
"type": "main",
"index": 0
},
{
"node": "Post to Bluesky",
"type": "main",
"index": 0
},
{
"node": "Post to Pinterest",
"type": "main",
"index": 0
}
]
]
},
"Wait for Caption Render": {
"main": [
[
{
"node": "Get Final Video URL (Audio + Captions)",
"type": "main",
"index": 0
}
]
]
},
"Extract Prompt & Caption": {
"main": [
[
{
"node": "Transform Prompt for Kling (GPT-4)",
"type": "main",
"index": 0
}
]
]
},
"Get Video URL with Audio": {
"main": [
[
{
"node": "Wait Before Captioning",
"type": "main",
"index": 0
}
]
]
},
"Trigger: Telegram Prompt": {
"main": [
[
{
"node": "Extract Prompt & Caption",
"type": "main",
"index": 0
}
]
]
},
"Wait for Video Generation": {
"main": [
[
{
"node": "Get Generated Video URL",
"type": "main",
"index": 0
}
]
]
},
"Generate Voice-Over Script": {
"main": [
[
{
"node": "Convert Script to Audio (TTS)",
"type": "main",
"index": 0
}
]
]
},
"Upload Audio to Cloudinary": {
"main": [
[
{
"node": "Merge Audio + Video",
"type": "main",
"index": 0
}
]
]
},
"Wait for Audio/Video Fusion": {
"main": [
[
{
"node": "Get Video URL with Audio",
"type": "main",
"index": 0
}
]
]
},
"Generate Video via Kling API": {
"main": [
[
{
"node": "Wait for Video Generation",
"type": "main",
"index": 0
}
]
]
},
"Generate YouTube-Style Title": {
"main": [
[
{
"node": "Save Video Metadata to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Send Final Video to Telegram": {
"main": [
[
{
"node": "Send Caption Link via Telegram",
"type": "main",
"index": 0
}
]
]
},
"Convert Script to Audio (TTS)": {
"main": [
[
{
"node": "Upload Audio to Cloudinary",
"type": "main",
"index": 0
}
]
]
},
"Send Caption Link via Telegram": {
"main": [
[
{
"node": "Assign Social Media IDs",
"type": "main",
"index": 0
}
]
]
},
"Add Captions/Subtitles to Video": {
"main": [
[
{
"node": "Wait for Caption Render",
"type": "main",
"index": 0
}
]
]
},
"Transform Prompt for Kling (GPT-4)": {
"main": [
[
{
"node": "Generate Video via Kling API",
"type": "main",
"index": 0
}
]
]
},
"Save Video Metadata to Google Sheets": {
"main": [
[
{
"node": "Send Final Video to Telegram",
"type": "main",
"index": 0
}
]
]
},
"Generate Social Caption from Voiceover": {
"main": [
[
{
"node": "Generate YouTube-Style Title",
"type": "main",
"index": 0
}
]
]
},
"Get Final Video URL (Audio + Captions)": {
"main": [
[
{
"node": "Generate Social Caption from Voiceover",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": {
"templateCredsSetupCompleted": true
},
"versionId": "af2ec08c-842b-479f-a33b-763880616930",
"triggerCount": 0,
"shared": [
{
"createdAt": "2025-09-03T06:21:15.750Z",
"updatedAt": "2025-09-03T06:21:15.750Z",
"role": "workflow:owner",
"workflowId": "ssXTKiWQzvM8XaHj",
"projectId": "DUObCiOoOXJuG68P"
}
],
"tags": [
{
"createdAt": "2025-07-09T21:41:38.773Z",
"updatedAt": "2025-07-09T21:41:38.773Z",
"id": "G5Lcoe2jTgqCJuSy",
"name": "OpenAI"
},
{
"createdAt": "2025-07-09T23:31:21.052Z",
"updatedAt": "2025-07-09T23:31:21.052Z",
"id": "JXtwH1KWn3HpvHrm",
"name": "templates"
},
{
"createdAt": "2025-07-09T23:31:21.059Z",
"updatedAt": "2025-07-09T23:31:21.059Z",
"id": "giPr8wYqaJHn1OWx",
"name": "creator"
},
{
"createdAt": "2025-07-09T21:41:38.763Z",
"updatedAt": "2025-07-09T21:41:38.763Z",
"id": "pz5LfYMpyppJnoPT",
"name": "WooCommerce"
}
]
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
10-Generate___Auto_Post_Social_Videos_to_Multiple_Platforms_with_GPT_4_and_Kling_AI. Uses telegramTrigger, agent, lmChatOpenAi, httpRequest. Event-driven trigger; 39 nodes.
Source: https://github.com/Abdul-hannan-coder/n8n-workflow-backup/blob/main/Backup_2025-10-10/10-Generate___Auto_Post_Social_Videos_to_Multiple_Platforms_with_GPT_4_and_Kling_AI.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
BoomerBobBot.TP. Uses agent, telegramTrigger, telegram, memoryBufferWindow. Event-driven trigger; 95 nodes.
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.
Digital marketers, content creators, social media managers, and businesses who want to use AI marketing automation for YouTube Shorts without spending hours on production. This AI workflow helps anyon
Transform your salon/service business with this streamlined Telegram automation system featuring Claude integration, zero-setup database management, and intelligent conversation handling. Claude MCP I
Inbox Guardian. Uses gmailTrigger, lmChatOpenAi, agent, textClassifier. Event-driven trigger; 66 nodes.