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 →
{
"nodes": [
{
"parameters": {
"content": "# \ud83d\udcd1 STEP 5 \u2014 Auto-Post to All Platforms\n\n",
"height": 832,
"width": 1344,
"color": 4
},
"id": "101bdee1-4de4-4b5e-9170-4d490d4e8128",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
880
],
"typeVersion": 1
},
{
"parameters": {
"mediaUrl": "={{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}",
"resource": "media"
},
"id": "db2db976-7988-4939-a931-b6b2b98570aa",
"name": "Upload Video to BLOTATO",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
2384,
1504
],
"typeVersion": 2,
"credentials": {}
},
{
"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": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}",
"postCreateYoutubeOptionTitle": "={{ $('Save Caption Video to Google Sheets').item.json['TITRE VIDEO'] }}",
"postCreateYoutubeOptionPrivacyStatus": "private",
"postCreateYoutubeOptionShouldNotifySubscribers": false
},
"id": "6866a654-e6a7-4543-b98a-8288f9d04b47",
"name": "Youtube",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
3008,
1296
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"options": {},
"platform": "tiktok",
"accountId": {
"__rl": true,
"mode": "list",
"value": "9332",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/9332",
"cachedResultName": "docteur.firas"
},
"postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "a1b51932-2e2c-4e32-a37a-7ce94620cdd9",
"name": "Tiktok",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
2640,
1120
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"mode": "chooseBranch",
"numberInputs": 9
},
"id": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
3296,
1200
],
"typeVersion": 3.2
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"columns": {
"value": {
"STATUS": "Published",
"IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}"
},
"schema": [
{
"id": "IMAGE NAME",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "IMAGE NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE URL",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "IMAGE URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE DESCRIPTION",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "IMAGE DESCRIPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CAPTION",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "CAPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL VIDEO FINAL",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "URL VIDEO FINAL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TITRE VIDEO",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "TITRE VIDEO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CAPTION VIDEO",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "CAPTION VIDEO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "STATUS",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "STATUS",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"IMAGE NAME"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "bee496d6-fc2d-4f1c-812f-9d6be08154a7",
"name": "Update Status to \"DONE\"",
"type": "n8n-nodes-base.googleSheets",
"position": [
3472,
1312
],
"typeVersion": 4.5,
"credentials": {}
},
{
"parameters": {
"options": {},
"platform": "linkedin",
"accountId": {
"__rl": true,
"mode": "list",
"value": "1446",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/1446",
"cachedResultName": "Samuel Amalric"
},
"postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "5f7344d8-a277-457b-a33f-c48e2ced1e49",
"name": "Linkedin",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
2832,
1120
],
"typeVersion": 2,
"credentials": {}
},
{
"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": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "31bc2347-2457-4fad-8436-09282df89609",
"name": "Facebook",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
3008,
1120
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"options": {},
"accountId": {
"__rl": true,
"mode": "list",
"value": "11892",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/11892",
"cachedResultName": "doc.firass"
},
"postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "06e29e46-c3ce-4c9e-825d-39df924a607d",
"name": "Instagram",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
2640,
1296
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"options": {},
"platform": "threads",
"accountId": {
"__rl": true,
"mode": "list",
"value": "2280",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/2280",
"cachedResultName": "doc.firass"
},
"postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "3f7560c8-3e4a-4d62-bf62-e8d543df8026",
"name": "Threads",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
2640,
1504
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"options": {},
"platform": "bluesky",
"accountId": {
"__rl": true,
"mode": "list",
"value": "6012",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/6012",
"cachedResultName": "formationinternet.bsky.social"
},
"postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "3e4b6251-7c56-40ca-8fb6-4b77c910a2e6",
"name": "Bluesky",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
2832,
1504
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"options": {},
"platform": "pinterest",
"accountId": {
"__rl": true,
"mode": "list",
"value": "363",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/363",
"cachedResultName": "formationinternet2022"
},
"postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"pinterestBoardId": {
"__rl": true,
"mode": "id",
"value": "1146658823815436667"
},
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "61f5f513-b7ec-40ca-a4a1-1b897f092a04",
"name": "Pinterest",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
3008,
1504
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"options": {},
"platform": "twitter",
"accountId": {
"__rl": true,
"mode": "list",
"value": "1289",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/1289",
"cachedResultName": "Docteur_Firas"
},
"postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
"postContentMediaUrls": "={{ $json.url }}"
},
"id": "4fb185bf-f237-4b71-8557-178f15f0caec",
"name": "Twitter (X)",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
2832,
1296
],
"typeVersion": 2,
"credentials": {}
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"id": "cb9939c6-1c5c-448b-ab3a-a66d90767cf2",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1840,
1216
],
"typeVersion": 1.2,
"credentials": {}
},
{
"parameters": {},
"id": "2c244851-7835-4f4a-8fe9-10a26acf6365",
"name": "Think",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
1984,
1216
],
"typeVersion": 1
},
{
"parameters": {
"jsonSchemaExample": "{\n \"title\": \"string\",\n \"final_prompt\": \"string\"\n}\n"
},
"id": "0695e935-93ac-48da-a893-1615ce22a6e7",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2128,
1216
],
"typeVersion": 1.3
},
{
"parameters": {
"chatId": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.chat.id }}",
"text": "=Url VIDEO : {{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}",
"additionalFields": {}
},
"id": "ff995af1-503e-4356-8e67-6392b4629496",
"name": "Send Video URL via Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
2368,
1008
],
"typeVersion": 1.2,
"credentials": {}
},
{
"parameters": {
"operation": "sendVideo",
"chatId": "={{ $json.result.chat.id }}",
"file": "={{ $('Save Caption Video to Google Sheets').item.json['URL VIDEO FINAL'] }}",
"additionalFields": {}
},
"id": "257eedc1-30c1-4e40-913b-24ceb018df28",
"name": "Send Final Video Preview",
"type": "n8n-nodes-base.telegram",
"position": [
2384,
1248
],
"typeVersion": 1.2,
"credentials": {}
},
{
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"id": "11f4ee14-912b-4a77-8696-7d36f7fc8a21",
"name": "Telegram Trigger: Receive Video Idea",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
1152,
432
],
"typeVersion": 1.2,
"credentials": {}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "cc2e0500-57b1-4615-82cb-1c950e5f2ec4",
"name": "json_master",
"type": "string",
"value": "={\n \"description\": \"Brief narrative description of the scene, focusing on key visual storytelling and product transformation.\",\n \"style\": \"cinematic | photorealistic | stylized | gritty | elegant\",\n \"camera\": {\n \"type\": \"fixed | dolly | Steadicam | crane combo\",\n \"movement\": \"describe any camera moves like slow push-in, pan, orbit\",\n \"lens\": \"optional lens type or focal length for cinematic effect\"\n },\n \"lighting\": {\n \"type\": \"natural | dramatic | high-contrast\",\n \"sources\": \"key lighting sources (sunset, halogen, ambient glow...)\",\n \"FX\": \"optional VFX elements like fog, reflections, flares\"\n },\n \"environment\": {\n \"location\": \"describe location or room (kitchen, desert, basketball court...)\",\n \"set_pieces\": [\n \"list of key background or prop elements\",\n \"e.g. hardwood floors, chain-link fence, velvet surface\"\n ],\n \"mood\": \"describe the ambient atmosphere (moody, clean, epic...)\"\n },\n \"elements\": [\n \"main physical items involved (product box, accessories, vehicles...)\",\n \"include brand visibility (logos, packaging, texture...)\"\n ],\n \"subject\": {\n \"character\": {\n \"description\": \"optional \u2013 physical description, outfit\",\n \"pose\": \"optional \u2013 position or gesture\",\n \"lip_sync_line\": \"optional \u2013 spoken line if there\u2019s a voiceover\"\n },\n \"product\": {\n \"brand\": \"Brand name\",\n \"model\": \"Product model or name\",\n \"action\": \"description of product transformation or assembly\"\n }\n },\n \"motion\": {\n \"type\": \"e.g. transformation, explosion, vortex\",\n \"details\": \"step-by-step visual flow of how elements move or evolve\"\n },\n \"VFX\": {\n \"transformation\": \"optional \u2013 describe style (neon trails, motion blur...)\",\n \"impact\": \"optional \u2013 e.g. shockwave, glow, distortion\",\n \"particles\": \"optional \u2013 embers, sparks, thread strands...\",\n \"environment\": \"optional \u2013 VFX affecting the scene (ripples, wind...)\"\n },\n \"audio\": {\n \"music\": \"optional \u2013 cinematic score, trap beat, ambient tone\",\n \"sfx\": [\n \"list of sound effects (zip, pop, woosh...)\"\n ],\n \"ambience\": \"optional \u2013 background soundscape (traffic, wind...)\",\n \"voiceover\": {\n \"delivery\": \"tone and style (confident, whisper, deep...)\",\n \"line\": \"text spoken if applicable\"\n }\n },\n \"ending\": \"Final shot description \u2013 what is seen or felt at the end (freeze frame, logo pulse, glow...)\",\n \"text\": \"none | overlay | tagline | logo pulse at end only\",\n \"format\": \"16:9 | 4k | vertical\",\n \"keywords\": [\n \"brand\",\n \"scene style\",\n \"motion type\",\n \"camera style\",\n \"sound mood\",\n \"target theme\"\n ]\n}\n"
}
]
},
"options": {}
},
"id": "45e0b8ee-b830-48bc-8a9a-a426a7afcd43",
"name": "Set Master Prompt",
"type": "n8n-nodes-base.set",
"position": [
1600,
992
],
"typeVersion": 3.4
},
{
"parameters": {
"promptType": "define",
"text": "=Create a UGC-style video prompt using both the reference image and the user description. \n\n**Inputs** \n- User description (optional): \n `{{ $('Telegram Trigger: Receive Video Idea').item.json.message.caption }}` \n- Reference image analysis (stay strictly faithful to what\u2019s visible): \n `{{ $('Google Sheets: Update Image Description').item.json['IMAGE DESCRIPTION'] }}` \n\n**Rules** \n- Keep the style casual, authentic, and realistic. Avoid studio-like or cinematic language. \n- Default model: `veo3_fast` (unless otherwise specified). \n- Output only **one JSON object** with the key: `video_prompt`. \n",
"hasOutputParser": true,
"options": {
"systemMessage": "=system_prompt:\n ## SYSTEM PROMPT: Structured Video Ad Prompt Generator\n A - Ask:\n Generate a structured video ad prompt for cinematic generation, strictly based on the master schema provided in: {{ $json.json_master }}.\n The final result must be a JSON object with exactly two top-level keys: `title` and `final_prompt`.\n\n G - Guidance:\n role: Creative Director\n output_count: 1\n character_limit: None\n constraints:\n - The output must be valid JSON.\n - The `title` field should contain a short, descriptive and unique title (max 15 words).\n - The `final_prompt` field must contain a **single-line JSON string** that follows the exact structure of {{ $json.json_master }} with all fields preserved.\n - Do not include any explanations, markdown, or extra text \u2014 only the JSON object.\n - Escape all inner quotes in the `final_prompt` string so it is valid as a stringified JSON inside another JSON.\n tool_usage:\n - Ensure consistent alignment across all fields (camera, lighting, motion, etc.).\n - Maintain full structure even for optional fields (use \"none\", \"\", or [] as needed).\n\n N - Notation:\n format: JSON\n expected_output:\n {\n \"title\": \"A unique short title for the scene\",\n \"final_prompt\": \"{...stringified JSON of the full prompt...}\"\n }\n\n"
}
},
"id": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
"name": "AI Agent: Generate Video Script",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1920,
992
],
"typeVersion": 2
},
{
"parameters": {
"method": "POST",
"url": "https://api.kie.ai/api/v1/veo/generate",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"contentType": "raw",
"rawContentType": "application/json",
"body": "={\n \"prompt\": {{ $json.prompt }},\n \"model\": \"{{ $('Google Sheets: Read Video Parameters (CONFIG)').item.json.model }}\",\n \"aspectRatio\": \"{{ $json.aspectRatio }}\",\n \"imageUrls\": [\n \"{{ $('Download Edited Image').item.json.images[0].url }}\"\n ]\n}",
"options": {}
},
"id": "16902ea9-197e-4cac-936e-83c1fc226854",
"name": "Generate Video with VEO3",
"type": "n8n-nodes-base.httpRequest",
"position": [
1200,
1504
],
"typeVersion": 4.2,
"credentials": {}
},
{
"parameters": {
"amount": 20
},
"id": "a7fffb23-dba4-4d1e-a42e-191a1414ec60",
"name": "Wait for VEO3 Rendering",
"type": "n8n-nodes-base.wait",
"position": [
1408,
1504
],
"typeVersion": 1.1
},
{
"parameters": {
"url": "https://api.kie.ai/api/v1/veo/record-info",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "taskId",
"value": "={{ $('Generate Video with VEO3').item.json.data.taskId }}"
}
]
},
"options": {}
},
"id": "67889216-2c0f-4ed8-ae54-8e7e7fdbac90",
"name": "Download Video from VEO3",
"type": "n8n-nodes-base.httpRequest",
"position": [
1616,
1504
],
"typeVersion": 4.2,
"credentials": {}
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"messages": {
"values": [
{
"content": "=You are rewriting a TikTok video script, caption, and overlay \u2014\nnot inventing a new one. You must follow this format and obey\nthese rules strictly.\n---\n### CONTEXT:\nHere is the content idea to use:{{ $('Telegram Trigger: Receive Video Idea').item.json.message.caption }}\n\nand the Title is : {{ $('AI Agent: Generate Video Script').item.json.output.title }}\n\n\nWrite the caption text using the topic.\n\n---\n- MUST be under 200 characters (yes \"Characters\" not wordcount)\nthis is an absolute MUST, no more than 200 characters!!! \n\n### FINAL OUTPUT FORMAT (no markdown formatting):\n\nDO NOT return any explanations. Only return the Caption Text\n"
}
]
},
"options": {}
},
"id": "f6dda272-6129-4c04-b4c2-1e6bf5d156d8",
"name": "Rewrite Caption with GPT-4o",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1776,
1504
],
"typeVersion": 1.8,
"credentials": {}
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"columns": {
"value": {
"STATUS": "CREATE",
"IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}",
"TITRE VIDEO": "={{ $('AI Agent: Generate Video Script').item.json.output.title }}",
"CAPTION VIDEO": "={{ $json.message.content }}",
"URL VIDEO FINAL": "={{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}"
},
"schema": [
{
"id": "IMAGE NAME",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "IMAGE NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE URL",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "IMAGE URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE DESCRIPTION",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "IMAGE DESCRIPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CAPTION",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "CAPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL VIDEO FINAL",
"type": "string",
"display": true,
"required": false,
"displayName": "URL VIDEO FINAL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TITRE VIDEO",
"type": "string",
"display": true,
"required": false,
"displayName": "TITRE VIDEO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CAPTION VIDEO",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "CAPTION VIDEO",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "STATUS",
"type": "string",
"display": true,
"required": false,
"displayName": "STATUS",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"IMAGE NAME"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "8b4c6b55-a0d7-4a19-b85c-1927ccb5eaa2",
"name": "Save Caption Video to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
2080,
1504
],
"typeVersion": 4.6,
"credentials": {}
},
{
"parameters": {
"jsCode": "const structuredPrompt = $input.first().json.output.final_prompt;\nreturn {\n json: {\n prompt: JSON.stringify(structuredPrompt), // this escapes it correctly!\n model: \"veo3_fast\",\n aspectRatio: \"16:9\"\n }\n};\n"
},
"id": "30c415e0-58e0-48b9-b7e9-11dc5d979ac8",
"name": "Format Prompt",
"type": "n8n-nodes-base.code",
"position": [
1200,
1200
],
"typeVersion": 2
},
{
"parameters": {
"content": "# \ud83d\udcd1 STEP 3 \u2014 Generate Video Ad Script",
"height": 460,
"width": 1180
},
"id": "61ce4a03-4104-4beb-bb16-0b2d2dde142d",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1088,
880
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud83d\udcd1 STEP 4 \u2014 Generate Video with VEO3",
"height": 320,
"width": 1180
},
"id": "9f91c353-3ad6-498c-ba14-907bb91e208c",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1088,
1392
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud83d\udcd1 STEP 1 \u2014 Collect Idea & Image",
"height": 592,
"width": 1184
},
"id": "3051b833-571a-4f0c-993a-ca8ffd03e476",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1088,
240
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud83d\udcd1 STEP 2 \u2014 Create Image with NanoBanana\n",
"height": 592,
"width": 1328
},
"id": "785aa7c8-8921-4b6b-8db3-8d55e2a42564",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
240
],
"typeVersion": 1
},
{
"parameters": {
"resource": "file",
"fileId": "={{ $json.message.photo[2].file_id }}",
"additionalFields": {}
},
"id": "fa25f6bf-d05b-4b8d-8a8a-b8684c601510",
"name": "Telegram: Get Image File",
"type": "n8n-nodes-base.telegram",
"position": [
1584,
304
],
"typeVersion": 1.2,
"credentials": {}
},
{
"parameters": {
"name": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}",
"driveId": {
"__rl": true,
"mode": "id",
"value": "="
},
"folderId": {
"__rl": true,
"mode": "id",
"value": "="
},
"options": {}
},
"id": "7a362123-c86c-45f9-b80c-a5660f92da46",
"name": "Google Drive: Upload Image",
"type": "n8n-nodes-base.googleDrive",
"position": [
1600,
496
],
"typeVersion": 3,
"credentials": {}
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"columns": {
"value": {
"STATUS": "EN COURS",
"CAPTION": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.caption }}",
"IMAGE URL": "={{ $json.webContentLink }}",
"IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}"
},
"schema": [
{
"id": "IMAGE NAME",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "IMAGE NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "IMAGE URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE DESCRIPTION",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "IMAGE DESCRIPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CAPTION",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "CAPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "STATUS",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "STATUS",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"IMAGE NAME"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "a9614733-44e3-4580-95f8-a955d9136be4",
"name": "Google Sheets: Log Image & Caption",
"type": "n8n-nodes-base.googleSheets",
"position": [
1600,
672
],
"typeVersion": 4.7,
"credentials": {}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "af62651a-3fc8-419d-908b-6514f6f4bcb3",
"name": "YOUR_BOT_TOKEN",
"type": "string",
"value": ""
}
]
},
"options": {}
},
"id": "a8e85901-2451-4037-ba0c-aa2b229c9d0f",
"name": "Set: Bot Token (Placeholder)",
"type": "n8n-nodes-base.set",
"position": [
1840,
432
],
"typeVersion": 3.4
},
{
"parameters": {
"url": "=https://api.telegram.org/bot{{ $json.YOUR_BOT_TOKEN }}/getFile?file_id={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[3].file_id }}",
"options": {}
},
"id": "ae9da8d7-f2c4-4ada-897c-651176cbfdb6",
"name": "Telegram API: Get File URL",
"type": "n8n-nodes-base.httpRequest",
"position": [
2032,
432
],
"typeVersion": 4.2
},
{
"parameters": {
"resource": "image",
"operation": "analyze",
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"text": "=You are an image analysis assistant.\n\nYour task is to analyze the given image and output results **only in YAML format**. Do not add explanations, comments, or extra text outside YAML.\n\nRules:\n\n- If the image depicts a **product**, return:\n \n ```yaml\n brand_name: (brand if visible or inferable)\n color_scheme:\n - hex: (hex code of each prominent color)\n name: (descriptive name of the color)\n font_style: (serif/sans-serif, bold/thin, etc.)\n visual_description: (1\u20132 sentences summarizing what is seen, ignoring the background)\n \n ```\n \n- If the image depicts a **character**, return:\n \n ```yaml\n character_name: (name if visible or inferable, else \"unknown\")\n color_scheme:\n - hex: (hex code of each prominent color on the character)\n name: (descriptive name of the color)\n outfit_style: (clothing style, accessories, or notable features)\n visual_description: (1\u20132 sentences summarizing what the character looks like, ignoring the background)\n \n ```\n \n- If the image depicts **both**, return **both sections** in YAML.\n\nOnly output valid YAML. No explanations.",
"imageUrls": "=https://api.telegram.org/file/bot{{ $('Set: Bot Token (Placeholder)').item.json.YOUR_BOT_TOKEN }}/{{ $json.result.file_path }}",
"options": {}
},
"id": "6527e03e-6417-45a5-95a8-2ef84b872df0",
"name": "OpenAI Vision: Analyze Reference Image",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2448,
432
],
"typeVersion": 1.8,
"credentials": {}
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"columns": {
"value": {
"IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}",
"IMAGE DESCRIPTION": "={{ $json.content }}"
},
"schema": [
{
"id": "IMAGE NAME",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "IMAGE NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE URL",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "IMAGE URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE DESCRIPTION",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "IMAGE DESCRIPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CAPTION",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "CAPTION",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "STATUS",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "STATUS",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"IMAGE NAME"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "6d78c44a-9073-4a2c-9a17-102c870b2162",
"name": "Google Sheets: Update Image Description",
"type": "n8n-nodes-base.googleSheets",
"position": [
2688,
432
],
"typeVersion": 4.7,
"credentials": {}
},
{
"parameters": {
"jsonSchemaExample": "{\n\t\"image_prompt\": \"string\"\n}"
},
"id": "efd41bb8-ecef-49ea-9051-ead169d6766b",
"name": "LLM: Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
3072,
672
],
"typeVersion": 1.3
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"id": "96a49fe4-d013-42c8-9ae8-11eb713e132f",
"name": "LLM: OpenAI Chat",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2864,
672
],
"typeVersion": 1.2,
"credentials": {}
},
{
"parameters": {
"promptType": "define",
"text": "=Your task is to create an image prompt following the system guidelines. \nEnsure that the reference image is represented as **accurately as possible**, including all text elements. \n\nUse the following inputs: \n\n- **User\u2019s description:** \n{{ $json.CAPTION }}\n\n- **Reference image description:** \n{{ $json['IMAGE DESCRIPTION'] }}\n",
"hasOutputParser": true,
"options": {
"systemMessage": "=ROLE: UGC Image Prompt Builder \n\nGOAL: \nGenerate one concise, natural, and realistic image prompt (\u2264120 words) from a given product or reference image. The prompt must simulate authentic UGC (user-generated content) photography. \n\nRULES: \n- Always output **one JSON object only** with the key: \n - `image_prompt`: (string with full description) \n- Do **not** add commentary, metadata, or extra keys. JSON only. \n\nSTYLE GUIDELINES: \n- Tone: casual, unstaged, lifelike, handheld snapshot. \n- Camera cues: include at least 2\u20133 (e.g., phone snapshot, handheld framing, off-center composition, natural indoor light, soft shadows, slight motion blur, auto exposure, unpolished look, mild grain). \n- Realism: embrace imperfections (wrinkles, stray hairs, skin texture, clutter, smudges). \n- Packaging/Text: preserve exactly as visible. Never invent claims, numbers, or badges. \n- Diversity: if people appear but are unspecified, vary gender/ethnicity naturally; default age range = 21\u201338. \n- Setting: default to real-world everyday spaces (home, street, store, gym, office). \n\nSAFETY: \n- No copyrighted character names. \n- No dialogue or scripts. Only describe scenes. \n\nOUTPUT CONTRACT: \n- JSON only, no prose outside. \n- Max 120 words in `image_prompt`. \n- Must cover: subject, action, mood, setting, style/camera, colors, and text accuracy. \n\nCHECKLIST BEFORE OUTPUT: \n- Natural handheld tone? \n- At least 2 camera cues included? \n- Product text preserved exactly? \n- Only JSON returned? \n\n--- \n\n### Example \n\nGood Example : \n```json\n{ \"image_prompt\": \"a young adult casually holding a skincare tube near a bathroom mirror; action: dabs small amount on the back of the hand; mood: easy morning; setting: small apartment bathroom with towel on rack and toothbrush cup; style/camera: phone snapshot, handheld framing, off-center composition, natural window light, slight motion blur, mild grain; colors: soft whites and mint label; text accuracy: keep every word on the tube exactly as visible, no added claims\" }\n"
}
},
"id": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
"name": "Generate Image Prompt",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2912,
432
],
"typeVersion": 2.2
},
{
"parameters": {
"method": "POST",
"url": "https://queue.fal.run/fal-ai/nano-banana/edit",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n\t\"prompt\": \"{{ $json.output.image_prompt.replace(/\\\"/g, '\\\\\\\"').replace(/\\n/g, '\\\\n') }}\",\n\"image_urls\": [\"{{ $('Google Drive: Upload Image').item.json.webContentLink }}\"]\n\n}\n\n",
"options": {}
},
"id": "80274aa5-bdf0-49bf-9980-0624d99d68ef",
"name": "NanoBanana: Create Image",
"type": "n8n-nodes-base.httpRequest",
"position": [
3248,
432
],
"typeVersion": 4.2,
"credentials": {}
},
{
"parameters": {
"amount": 20
},
"id": "e132487d-da8c-4850-9d3f-9e057e9bde64",
"name": "Wait for Image Edit",
"type": "n8n-nodes-base.wait",
"position": [
3456,
432
],
"typeVersion": 1.1
},
{
"parameters": {
"url": "={{ $json.response_url }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"id": "2c7ffce1-8ace-418d-9738-c659f4554980",
"name": "Download Edited Image",
"type": "n8n-nodes-base.httpRequest",
"position": [
3456,
656
],
"typeVersion": 4.2,
"credentials": {}
},
{
"parameters": {
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"options": {}
},
"id": "ec725aa0-fd30-4d98-b984-0228873db428",
"name": "Google Sheets: Read Video Parameters (CONFIG)",
"type": "n8n-nodes-base.googleSheets",
"position": [
1392,
992
],
"typeVersion": 4.6,
"credentials": {}
},
{
"parameters": {
"chatId": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.chat.id }}",
"text": "Published",
"additionalFields": {}
},
"id": "abafa8c6-55a0-488c-970e-d2a969ad7959",
"name": "Telegram: Send notification",
"type": "n8n-nodes-base.telegram",
"position": [
3472,
1520
],
"typeVersion": 1.2,
"credentials": {}
},
{
"parameters": {
"content": "# \ud83c\udfac Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato (By Dr. Firas)\n\n\n# \ud83c\udfa5 Full Tutorial :\n[](https://youtu.be/nlwpbXQqNQ4)\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/NonoBanan-2643d6550fd98041aef5dcbe8ab0f7a1?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/1FutmZHblwnk36fp59fnePjONzuJBdndqZOCuRoGWSmY/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",
"height": 1476,
"width": 700,
"color": 6
},
"id": "77030cb3-3246-41d5-bcbc-74f82bdd501b",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
240
],
"typeVersion": 1
}
],
"connections": {
"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
}
]
]
},
"Youtube": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 5
}
]
]
},
"Tiktok": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Update Status to \"DONE\"",
"type": "main",
"index": 0
}
]
]
},
"Update Status to \"DONE\"": {
"main": [
[
{
"node": "Telegram: Send notification",
"type": "main",
"index": 0
}
]
]
},
"Linkedin": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Facebook": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"Instagram": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 3
}
]
]
},
"Threads": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 6
}
]
]
},
"Bluesky": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 7
}
]
]
},
"Pinterest": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 8
}
]
]
},
"Twitter (X)": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 4
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent: Generate Video Script",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Think": {
"ai_tool": [
[
{
"node": "AI Agent: Generate Video Script",
"type": "ai_tool",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent: Generate Video Script",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Send Video URL via Telegram": {
"main": [
[
{
"node": "Send Final Video Preview",
"type": "main",
"index": 0
}
]
]
},
"Send Final Video Preview": {
"main": [
[
{
"node": "Upload Video to BLOTATO",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger: Receive Video Idea": {
"main": [
[
{
"node": "Set: Bot Token (Placeholder)",
"type": "main",
"index": 0
},
{
"node": "Telegram: Get Image File",
"type": "main",
"index": 0
}
]
]
},
"Set Master Prompt": {
"main": [
[
{
"node": "AI Agent: Generate Video Script",
"type": "main",
"index": 0
}
]
]
},
"AI Agent: Generate Video Script": {
"main": [
[
{
"node": "Format Prompt",
"type": "main",
"index": 0
}
]
]
},
"Generate Video with VEO3": {
"main": [
[
{
"node": "Wait for VEO3 Rendering",
"type": "main",
"index": 0
}
]
]
},
"Wait for VEO3 Rendering": {
"main": [
[
{
"node": "Download Video from VEO3",
"type": "main",
"index": 0
}
]
]
},
"Download Video from VEO3": {
"main": [
[
{
"node": "Rewrite Caption with GPT-4o",
"type": "main",
"index": 0
}
]
]
},
"Rewrite Caption with GPT-4o": {
"main": [
[
{
"node": "Save Caption Video to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Save Caption Video to Google Sheets": {
"main": [
[
{
"node": "Send Video URL via Telegram",
"type": "main",
"index": 0
}
]
]
},
"Format Prompt": {
"main": [
[
{
"node": "Generate Video with VEO3",
"type": "main",
"index": 0
}
]
]
},
"Telegram: Get Image File": {
"main": [
[
{
"node": "Google Drive: Upload Image",
"type": "main",
"index": 0
}
]
]
},
"Google Drive: Upload Image": {
"main": [
[
{
"node": "Google Sheets: Log Image & Caption",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets: Log Image & Caption": {
"main": [
[
{
"node": "Set: Bot Token (Placeholder)",
"type": "main",
"index": 0
}
]
]
},
"Set: Bot Token (Placeholder)": {
"main": [
[
{
"node": "Telegram API: Get File URL",
"type": "main",
"index": 0
}
]
]
},
"Telegram API: Get File URL": {
"main": [
[
{
"node": "OpenAI Vision: Analyze Reference Image",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Vision: Analyze Reference Image": {
"main": [
[
{
"node": "Google Sheets: Update Image Description",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets: Update Image Description": {
"main": [
[
{
"node": "Generate Image Prompt",
"type": "main",
"index": 0
}
]
]
},
"LLM: Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Generate Image Prompt",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"LLM: OpenAI Chat": {
"ai_languageModel": [
[
{
"node": "Generate Image Prompt",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Generate Image Prompt": {
"main": [
[
{
"node": "NanoBanana: Create Image",
"type": "main",
"index": 0
}
]
]
},
"NanoBanana: Create Image": {
"main": [
[
{
"node": "Wait for Image Edit",
"type": "main",
"index": 0
}
]
]
},
"Wait for Image Edit": {
"main": [
[
{
"node": "Download Edited Image",
"type": "main",
"index": 0
}
]
]
},
"Download Edited Image": {
"main": [
[
{
"node": "Google Sheets: Read Video Parameters (CONFIG)",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets: Read Video Parameters (CONFIG)": {
"main": [
[
{
"node": "Set Master Prompt",
"type": "main",
"index": 0
}
]
]
}
},
"meta": {
"templateCredsSetupCompleted": true
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Create Video Ia. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 47 nodes.
Source: https://github.com/raulisai/mcp-n8n/blob/6a06c01669223c83583149adcf7f397b1bc80d0e/.agent/skills/n8n-manager/examples/json/create_video_ia.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.
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.
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.
RAG CHATBOT Main. Uses telegram, telegramTrigger, lmChatOpenAi, n8n-nodes-mcp. Event-driven trigger; 87 nodes.
Creators, marketers, and brands that want to turn a single product photo into premium motion clips, then optionally publish to Instagram/TikTok/YouTube via LATE. No editing skills required.
Product to Social Video (xCodeWraith Edition). Uses telegram, agentTool, telegramTrigger, httpRequest. Event-driven trigger; 83 nodes.