This workflow corresponds to n8n.io template #17058 — we link there as the canonical source.
This workflow follows the Agent → Blotaton8N Nodes Blotato 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 →
{
"id": "u9SGQbuO50FSgnH5",
"meta": {
"builderVariant": "mcp",
"aiBuilderAssisted": true
},
"name": "Generate an AI video ad from a product photo and publish it to YouTube",
"tags": [],
"nodes": [
{
"id": "b8817060-5383-4039-b732-c88a57921c7f",
"name": "Receive product photo (Telegram Trigger)",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
0,
224
],
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "3bee4fa4-2cb8-4d27-a368-79f9a833bb68",
"name": "Configuration",
"type": "n8n-nodes-base.set",
"position": [
224,
240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c1",
"name": "ai_model",
"type": "string",
"value": "gpt-5.4"
},
{
"id": "c2",
"name": "vision_model",
"type": "string",
"value": "gpt-4o-mini"
},
{
"id": "c3",
"name": "video_model",
"type": "string",
"value": "bytedance/seedance-2.0/text-to-video"
},
{
"id": "c4",
"name": "video_duration",
"type": "number",
"value": 8
},
{
"id": "c5",
"name": "aspect_ratio",
"type": "string",
"value": "9:16"
},
{
"id": "c6",
"name": "generate_audio",
"type": "boolean",
"value": true
},
{
"id": "c7",
"name": "output_language",
"type": "string",
"value": "English"
},
{
"id": "c8",
"name": "poll_interval_seconds",
"type": "number",
"value": 15
},
{
"id": "c9",
"name": "youtube_privacy",
"type": "string",
"value": "unlisted"
},
{
"id": "c10",
"name": "campaign",
"type": "string",
"value": "={{ $('Receive product photo (Telegram Trigger)').item.json.message.caption || 'general product ad' }}"
},
{
"id": "c11",
"name": "chat_id",
"type": "string",
"value": "={{ $('Receive product photo (Telegram Trigger)').item.json.message.chat.id }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "9e569c78-9dcb-4733-a00c-1ca22700cb8d",
"name": "Download product photo",
"type": "n8n-nodes-base.telegram",
"position": [
448,
192
],
"parameters": {
"fileId": "={{ $('Receive product photo (Telegram Trigger)').item.json.message.photo.at(-1).file_id }}",
"resource": "file",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "4d220468-457e-449a-9daf-be0707808c92",
"name": "Analyze product photo (OpenAI Vision)",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
672,
192
],
"parameters": {
"text": "Describe this product in full detail for an advertising video: exact colors, shape, material, texture, logo/branding and any distinctive features. Ignore the background. Focus only on the product.",
"images": {
"values": [
{}
]
},
"modelId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Configuration').item.json.vision_model }}"
},
"options": {
"detail": "auto"
},
"resource": "image",
"inputType": "base64",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "3d725d59-d00e-4882-b4ce-5af941fc592e",
"name": "Generate video ad prompt",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
896,
192
],
"parameters": {
"text": "=Product analysis (from vision AI): {{ $('Analyze product photo (OpenAI Vision)').item.json.content }}\nCampaign / caption from user: {{ $('Configuration').item.json.campaign }}\nOutput language: {{ $('Configuration').item.json.output_language }}\nTarget duration (seconds): {{ $('Configuration').item.json.video_duration }}\nAspect ratio: {{ $('Configuration').item.json.aspect_ratio }}\n\nDesign ONE cinematic, production-ready text-to-video advertising prompt for this product, then return the JSON.",
"options": {
"systemMessage": "You are a senior creative director specialized in short-form vertical video ads (YouTube Shorts, TikTok, Reels).\nYou turn a product description into ONE cinematic, production-ready text-to-video prompt for an AI video model (Seedance / Veo style).\n\nRules for the video_prompt:\n- Keep the product identity accurate: color, shape, material, texture and logo must stay faithful to the analysis.\n- Describe a single continuous scene with camera movement, lighting, environment, mood and pacing suited to a vertical ad of the given duration and aspect ratio.\n- Brand-safe, realistic advertising aesthetic (packshot / lifestyle / cinematic). No surreal or fantasy elements unless implied by the campaign.\n- Avoid heavy on-screen text overlays. Return it as one line, no line breaks.\n\nAlso produce:\n- youtube_title: a punchy, honest YouTube Short title under 100 characters (no clickbait).\n- caption: an engaging YouTube description in the requested output language, with a short hook and 3-5 relevant hashtags.\n\nReturn ONLY a JSON object matching the provided schema. No commentary."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "941bdae4-a3f7-4498-bf44-965c1647c22c",
"name": "Video prompt model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
864,
416
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "={{ $('Configuration').item.json.ai_model }}"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "0c99616c-c05f-428d-8d27-9188a2fc9e05",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1040,
416
],
"parameters": {
"jsonSchemaExample": "{\n \"video_prompt\": \"8-second vertical cinematic product ad: slow dolly-in on the product on a matte surface, soft studio lighting, subtle rotation, premium mood\",\n \"youtube_title\": \"Punchy Short title under 100 characters\",\n \"caption\": \"Engaging YouTube description with a hook and 3-5 relevant hashtags #product #ad #shorts\"\n}"
},
"typeVersion": 1.3
},
{
"id": "a424c828-1818-4b68-a276-758b9fba0ef1",
"name": "Review video prompt on Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
1248,
192
],
"parameters": {
"chatId": "={{ $('Configuration').item.json.chat_id }}",
"message": "=\ud83c\udfac Proposed video ad prompt:\n\n{{ $('Generate video ad prompt').item.json.output.video_prompt }}\n\n\ud83d\udcfa YouTube title: {{ $('Generate video ad prompt').item.json.output.youtube_title }}\n\nApprove to generate the video?",
"options": {
"appendAttribution": false
},
"operation": "sendAndWait",
"approvalOptions": {
"values": {
"approvalType": "double"
}
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "d84b390b-7d1e-4713-8fc1-f897876d1197",
"name": "Prompt approved?",
"type": "n8n-nodes-base.if",
"position": [
1472,
192
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "p1",
"operator": {
"type": "boolean",
"operation": "equals"
},
"leftValue": "={{ $json.data.approved }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.3
},
{
"id": "6a67d965-7aae-483b-81c7-2c5f1d739306",
"name": "Notify generating video",
"type": "n8n-nodes-base.telegram",
"position": [
1648,
176
],
"parameters": {
"text": "\u23f3 Generating your video ad with AtlasCloud Seedance... this can take a minute.",
"chatId": "={{ $('Configuration').item.json.chat_id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "26584fb8-6b81-4b4c-9d0c-64245ed7e22e",
"name": "Generate video (AtlasCloud)",
"type": "n8n-nodes-base.httpRequest",
"position": [
1920,
96
],
"parameters": {
"url": "https://api.atlascloud.ai/api/v1/model/generateVideo",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"{{ $('Configuration').item.json.video_model }}\",\n \"prompt\": {{ JSON.stringify($('Generate video ad prompt').item.json.output.video_prompt) }},\n \"duration\": {{ $('Configuration').item.json.video_duration }},\n \"aspect_ratio\": \"{{ $('Configuration').item.json.aspect_ratio }}\",\n \"generate_audio\": {{ $('Configuration').item.json.generate_audio }}\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.4
},
{
"id": "167bff82-96ba-421f-bfab-eea59b16c537",
"name": "Wait for render",
"type": "n8n-nodes-base.wait",
"position": [
2144,
96
],
"parameters": {
"amount": "={{ $('Configuration').item.json.poll_interval_seconds }}"
},
"typeVersion": 1.1
},
{
"id": "b02c0145-b95b-41fa-b742-01a39d00fed6",
"name": "Check video status (AtlasCloud)",
"type": "n8n-nodes-base.httpRequest",
"position": [
2368,
96
],
"parameters": {
"url": "=https://api.atlascloud.ai/api/v1/model/prediction/{{ $('Generate video (AtlasCloud)').item.json.data.id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.4
},
{
"id": "e30826bd-d8d8-4ddc-b485-62dc661aba76",
"name": "Video ready?",
"type": "n8n-nodes-base.if",
"position": [
2592,
96
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "v1",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.data.status }}",
"rightValue": "completed"
},
{
"id": "v2",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.data.status }}",
"rightValue": "succeeded"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "c4ca017a-ac87-467e-a8e5-f8f6e8308741",
"name": "Send video preview on Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
2816,
96
],
"parameters": {
"file": "={{ $('Check video status (AtlasCloud)').item.json.data.outputs[0] }}",
"chatId": "={{ $('Configuration').item.json.chat_id }}",
"operation": "sendVideo",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "5ad6e10a-5a2a-4e8f-8b41-2d3f263a809b",
"name": "Review video on Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
3040,
96
],
"parameters": {
"chatId": "={{ $('Configuration').item.json.chat_id }}",
"message": "\u2705 Your AI video ad is ready (preview above). Approve to publish it to YouTube as a Short?",
"options": {
"appendAttribution": false
},
"operation": "sendAndWait",
"approvalOptions": {
"values": {
"approvalType": "double"
}
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "75ae9b87-9346-4964-88c6-a532ef80a70c",
"name": "Video approved?",
"type": "n8n-nodes-base.if",
"position": [
3264,
96
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a1",
"operator": {
"type": "boolean",
"operation": "equals"
},
"leftValue": "={{ $json.data.approved }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.3
},
{
"id": "78b9ce95-a817-4d73-8ab5-9235250770f4",
"name": "Publish to YouTube (Blotato)",
"type": "@blotato/n8n-nodes-blotato.blotato",
"position": [
3440,
80
],
"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": "={{ $('Generate video ad prompt').item.json.output.caption }}",
"postContentMediaUrls": "={{ $('Check video status (AtlasCloud)').item.json.data.outputs[0] }}",
"postCreateYoutubeOptionTitle": "={{ $('Generate video ad prompt').item.json.output.youtube_title }}",
"postCreateYoutubeOptionPrivacyStatus": "={{ $('Configuration').item.json.youtube_privacy }}",
"postCreateYoutubeOptionContainsSyntheticMedia": true
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "a5716124-a2c4-49d7-841a-500308998368",
"name": "Notify published",
"type": "n8n-nodes-base.telegram",
"position": [
3760,
96
],
"parameters": {
"text": "\ud83d\ude80 Sent to YouTube via Blotato - your Short will appear on your channel shortly.",
"chatId": "={{ $('Configuration').item.json.chat_id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "57be8a08-d91d-4df5-bd94-c4b578db76b7",
"name": "Notify video declined",
"type": "n8n-nodes-base.telegram",
"position": [
3344,
304
],
"parameters": {
"text": "\u274c Video declined. Nothing was published. Send a new product photo to retry.",
"chatId": "={{ $('Configuration').item.json.chat_id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "a0acdf6e-a77e-4767-ac2e-76cd2ef12127",
"name": "Notify prompt declined",
"type": "n8n-nodes-base.telegram",
"position": [
1616,
352
],
"parameters": {
"text": "\u274c Prompt declined. Send a new product photo to start again.",
"chatId": "={{ $('Configuration').item.json.chat_id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "a2159129-4c68-4a80-aaf8-52f338009061",
"name": "Sticky Note 9fba01b4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-560
],
"parameters": {
"width": 640,
"height": 1948,
"content": "# Generate an AI video ad from a product photo and publish it to YouTube\n# \ud83d\udce5 [Open full documentation on Notion](https://automatisation.notion.site/Course-Generate-an-AI-video-ad-from-a-product-photo-and-publish-it-to-YouTube-39b3d6550fd981cba160dc97f5f09c2c)\n\nSend a product photo to your Telegram bot and get a ready-to-publish AI video ad on YouTube. The bot analyzes the photo, writes a cinematic video prompt, generates a vertical video with [AtlasCloud](https://www.atlascloud.ai/?ref=8QKPJE) Seedance 2.0, and (after your approval) posts it to YouTube via [Blotato](https://blotato.com/?ref=firas). You approve the prompt and the final video before anything is published - the AI proposes, you stay in control.\n\n## How it works\n1. You send a product photo (with an optional caption/campaign) to the Telegram bot.\n2. OpenAI Vision analyzes the product; an AI agent writes a cinematic text-to-video prompt + a YouTube title & description.\n3. You approve the prompt on Telegram.\n4. AtlasCloud Seedance 2.0 generates a vertical video (the workflow polls until it is ready).\n5. You preview the video on Telegram and approve it.\n6. Blotato publishes it to YouTube as a Short, flagged as AI-generated.\n\n## Setup\n- Telegram: create a bot with @BotFather and connect it (Telegram account credential) on every Telegram node.\n- OpenAI: connect your \"OpenAi account\" credential on the Vision node and the model sub-node.\n- [AtlasCloud](https://www.atlascloud.ai/?ref=8QKPJE): create an HTTP Header Auth credential (Name: Authorization, Value: Bearer YOUR_KEY) named \"AtlasCloud API\" and select it on BOTH HTTP nodes.\n- [Blotato](https://blotato.com/?ref=firas): connect your \"Blotato account\" credential and pick your YouTube account in the publish node.\n- Open the Configuration node and set your defaults (model, duration, aspect ratio, language, privacy).\n\n## Requirements\n- n8n self-hosted (or n8n Cloud with Verified Community Nodes enabled) - Blotato is a community node.\n- A Telegram bot token, an OpenAI API key, an AtlasCloud API key, and a Blotato account with a connected YouTube channel.\n\n## Customization\n- Change the video model, duration, aspect ratio, language or YouTube privacy in the Configuration node.\n- Swap the target platform in the Blotato node (TikTok, Instagram, Facebook...).\n- Adjust the creative direction by editing the system prompt of the \"Generate video ad prompt\" agent.\n\nNeed help customizing?\nContact me for consulting and support : [Linkedin](https://www.linkedin.com/in/doctor-firass/)\n\n# MY NEW YOUTUBE CHANNEL\n\ud83d\udc49 [Subscribe to my new YouTube channel](https://www.youtube.com/@DrFiras_AI). Here I'll share videos and Shorts with practical tutorials and FREE templates for n8n.\n\n[](https://www.youtube.com/@DrFiras_AI)"
},
"typeVersion": 1
},
{
"id": "f64c2e32-3711-49f6-998c-3e9249bef992",
"name": "Sticky Note 07d3096e",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
48
],
"parameters": {
"color": 7,
"width": 480,
"height": 360,
"content": "## 1. Receive & configure\nProduct photo arrives on Telegram. The Configuration node centralizes every adjustable setting (model, duration, aspect ratio, language, privacy) - set them once here."
},
"typeVersion": 1
},
{
"id": "279928d1-a3b7-481f-98d6-caa27bef37ba",
"name": "Sticky Note 702908b4",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
48
],
"parameters": {
"color": 7,
"width": 770,
"height": 560,
"content": "## 2. Analyze product & write video prompt\nVision reads the product; the agent writes a cinematic text-to-video prompt + a YouTube title and description."
},
"typeVersion": 1
},
{
"id": "8a202ff0-fbc8-4f84-aadd-7aa5a22a242a",
"name": "Sticky Note 3fb8058a",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
48
],
"parameters": {
"color": 7,
"width": 520,
"height": 472,
"content": "## 3. Human approval (prompt)\nYou approve or decline the proposed prompt on Telegram before any video is generated."
},
"typeVersion": 1
},
{
"id": "ba1421ed-5e84-4691-aeca-d0c09f908c86",
"name": "Sticky Note d2108aae",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
-48
],
"parameters": {
"color": 7,
"width": 940,
"height": 360,
"content": "## 4. Generate video with AtlasCloud (poll)\nSeedance 2.0 generates the vertical video. The workflow waits and polls the prediction until status is completed/succeeded."
},
"typeVersion": 1
},
{
"id": "65bb9e0b-0715-472b-bc48-9efc3d98e81e",
"name": "Sticky Note 430dbedd",
"type": "n8n-nodes-base.stickyNote",
"position": [
2800,
-64
],
"parameters": {
"color": 7,
"width": 740,
"height": 528,
"content": "## 5. Preview & approve video\nThe generated video is previewed on Telegram; you approve it before publishing."
},
"typeVersion": 1
},
{
"id": "aad73fd2-a5ea-4841-86a0-afb4ac658878",
"name": "Sticky Note 5a9757be",
"type": "n8n-nodes-base.stickyNote",
"position": [
3584,
-64
],
"parameters": {
"color": 7,
"width": 460,
"height": 532,
"content": "## 6. Publish to YouTube via Blotato\nBlotato posts the video to YouTube as a Short, flagged as AI-generated (synthetic media)."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"binaryMode": "separate",
"availableInMCP": true,
"executionOrder": "v1"
},
"versionId": "d2a50ce6-5070-425e-8b60-40c4d056a002",
"nodeGroups": [],
"connections": {
"Video ready?": {
"main": [
[
{
"node": "Send video preview on Telegram",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for render",
"type": "main",
"index": 0
}
]
]
},
"Configuration": {
"main": [
[
{
"node": "Download product photo",
"type": "main",
"index": 0
}
]
]
},
"Video approved?": {
"main": [
[
{
"node": "Publish to YouTube (Blotato)",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify video declined",
"type": "main",
"index": 0
}
]
]
},
"Wait for render": {
"main": [
[
{
"node": "Check video status (AtlasCloud)",
"type": "main",
"index": 0
}
]
]
},
"Prompt approved?": {
"main": [
[
{
"node": "Notify generating video",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify prompt declined",
"type": "main",
"index": 0
}
]
]
},
"Video prompt model": {
"ai_languageModel": [
[
{
"node": "Generate video ad prompt",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Download product photo": {
"main": [
[
{
"node": "Analyze product photo (OpenAI Vision)",
"type": "main",
"index": 0
}
]
]
},
"Notify generating video": {
"main": [
[
{
"node": "Generate video (AtlasCloud)",
"type": "main",
"index": 0
}
]
]
},
"Generate video ad prompt": {
"main": [
[
{
"node": "Review video prompt on Telegram",
"type": "main",
"index": 0
}
]
]
},
"Review video on Telegram": {
"main": [
[
{
"node": "Video approved?",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Generate video ad prompt",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Generate video (AtlasCloud)": {
"main": [
[
{
"node": "Wait for render",
"type": "main",
"index": 0
}
]
]
},
"Publish to YouTube (Blotato)": {
"main": [
[
{
"node": "Notify published",
"type": "main",
"index": 0
}
]
]
},
"Send video preview on Telegram": {
"main": [
[
{
"node": "Review video on Telegram",
"type": "main",
"index": 0
}
]
]
},
"Check video status (AtlasCloud)": {
"main": [
[
{
"node": "Video ready?",
"type": "main",
"index": 0
}
]
]
},
"Review video prompt on Telegram": {
"main": [
[
{
"node": "Prompt approved?",
"type": "main",
"index": 0
}
]
]
},
"Analyze product photo (OpenAI Vision)": {
"main": [
[
{
"node": "Generate video ad prompt",
"type": "main",
"index": 0
}
]
]
},
"Receive product photo (Telegram Trigger)": {
"main": [
[
{
"node": "Configuration",
"type": "main",
"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.
blotatoApihttpHeaderAuthopenAiApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow takes a product photo sent via Telegram, uses OpenAI Vision to describe it and OpenAI to write a short-form video ad prompt, generates a vertical video via AtlasCloud, then (after two approvals in Telegram) publishes the Short to YouTube via Blotato. Triggers when…
Source: https://n8n.io/workflows/17058/ — 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.
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.
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.