{"workflow":{"id":13928,"name":"Generate 360° product videos from photos with Veo 3 and Telegram","views":130,"recentViews":1,"totalViews":130,"createdAt":"2026-03-07T05:45:12.837Z","description":"Generate 360° product videos from a single photo using Google Veo 3 and Telegram\n\n---\n\n📌 Overview\nThis workflow turns any product photo into a cinematic 360° orbit video using \nGoogle Vertex AI (Veo 3) — fully automated and delivered straight to Telegram.\n\nSend a product image to your Telegram bot and the workflow handles everything: \nimage validation, Google Cloud authentication, AI video generation, and delivery. \nNo manual steps, no dashboard — just send a photo and receive a professional video.\n\nBuilt for e-commerce sellers, product photographers, and marketers who want \nstudio-quality 360° product videos without expensive equipment or editing software.\n\n---\n\n⚙️ How it works\n\n1. User sends a product photo to the Telegram bot\n2. The workflow validates the image (minimum 480px resolution)\n3. A Service Account stored in Google Sheets is used to authenticate with \n   Google Cloud and generate a short-lived OAuth token\n4. The image is sent to Vertex AI Veo 3 with a cinematic 360° orbit camera prompt\n5. The workflow polls every 2 minutes until the video is ready (up to 10 minutes)\n6. The finished video is delivered back to the user in Telegram\n\n---\n\n🛠️ Setup steps\n\n1. Create a Telegram bot via @BotFather and add the bot credentials in n8n\n2. Enable the Vertex AI API in your Google Cloud project\n3. Request access to the Veo 3 preview model in Google Cloud Console\n4. Create a Google Service Account with the role roles/aiplatform.user\n5. Download the Service Account JSON key\n6. Create a Google Sheet (Sheet1) with these columns:\n   client_email | private_key | project_id | scope\n7. Paste your Service Account JSON values into the sheet\n8. Update the 1. Get Service Account Details node with your Google Sheet ID\n9. Connect your Google Sheets and Telegram credentials in n8n\n10. Activate the workflow and send a product photo to your bot\n\n---\n\n🚀 Features\n\nAI-powered video generation\n- Generates cinematic 360° orbit product videos from a single photo\n- Uses Google Veo 3 (latest AI video generation model)\n- Adds studio lighting and clean white background automatically\n- Supports optional product caption as additional AI context\n- Audio generation included by default\n\nSmart error handling\n- Validates image resolution before processing (minimum 480px)\n- Catches and reports image conversion failures\n- Timeout protection after 10 minutes with user-friendly error message\n- All errors are sent back to the user as Telegram messages\n\nSecure authentication\n- Service Account credentials stored safely in Google Sheets\n- JWT signed locally — no third-party auth services required\n- Fresh OAuth token generated on every request\n\n---\n\n📋 Requirements\n\n- n8n (self-hosted or cloud)\n- Telegram Bot (via @BotFather)\n- Google Cloud project with Vertex AI API enabled\n- Google Veo 3 preview access (request via Google Cloud Console)\n- Google Service Account with roles/aiplatform.user\n- Google Sheets (to store Service Account credentials)\n\n---\n\n🎯 Benefits\n\n- No expensive equipment or video editing software needed\n- Fully automated — send a photo, receive a video\n- Works for any physical product\n- Scales to multiple users via Telegram\n- Videos ready in 3–5 minutes on average\n\n---\n\n👨‍💻 Author\n\nBytezTech Pvt Ltd","workflow":{"meta":{"instanceId":"d8b6cd0a2c2e6ba23a5da9f16cd13931d99066fe95baf9d490aa54324f0e20c5","templateCredsSetupCompleted":true},"nodes":[{"id":"b2b02fc9-ea89-4d96-893f-f9e530876ea8","name":"📋 Overview","type":"n8n-nodes-base.stickyNote","position":[-9264,-336],"parameters":{"width":620,"height":584,"content":"## 🎬 360° Product Video Generator\n\nTurn a single product photo into a cinematic 360° video using Google Veo 3 — delivered straight to Telegram.\n\n## How it works\n1. User sends a product photo to your Telegram bot\n2. The workflow authenticates with Google Cloud using a Service Account stored in Google Sheets\n3. The image is sent to Vertex AI (Veo 3) with a 360° orbit camera prompt\n4. The workflow polls every 2 minutes until the video is ready (up to 10 min)\n5. The finished video is sent back to the user in Telegram\n\n## Setup steps\n1. Create a Telegram bot via @BotFather and add the credentials in n8n\n2. Enable the **Vertex AI API** in your Google Cloud project and request Veo 3 preview access\n3. Create a Service Account with `roles/aiplatform.user` and download the JSON key\n4. Paste the key fields into your Google Sheet — columns needed: `client_email`, `private_key`, `project_id`, `scope`\n5. Update the **1. Get Service Account Details** node with your Sheet ID\n6. Connect your Google and Telegram credentials, then activate the workflow"},"typeVersion":1},{"id":"70a23ef7-b728-4388-b4e4-afe39ef8b657","name":"Group 1","type":"n8n-nodes-base.stickyNote","position":[-8528,-208],"parameters":{"color":7,"width":428,"height":348,"content":"## Receive & Validate\nListens for Telegram messages and checks that a photo was sent and is at least 480px. Rejects documents or text-only messages and replies with a clear error."},"typeVersion":1},{"id":"0cf4efdf-44ac-4673-a88c-cb25452ca036","name":"Group 2","type":"n8n-nodes-base.stickyNote","position":[-8064,-176],"parameters":{"color":7,"width":840,"height":332,"content":"## Google Cloud Auth\nReads Service Account credentials from Google Sheets, signs a JWT locally, and exchanges it for a short-lived OAuth access token. Runs fresh on every request."},"typeVersion":1},{"id":"db7f81ba-92c6-4677-a921-93e879d0771b","name":"Group 3","type":"n8n-nodes-base.stickyNote","position":[-7168,-288],"parameters":{"color":7,"width":840,"height":480,"content":"## Download & Convert\nDownloads the highest-resolution version of the photo from Telegram and converts it to Base64. Any conversion failure is caught and reported back to the user."},"typeVersion":1},{"id":"a8977c41-5e0f-4e02-91ce-3fef4a6ca60b","name":"Group 4","type":"n8n-nodes-base.stickyNote","position":[-6272,-384],"parameters":{"color":7,"width":620,"height":508,"content":"## Submit to Veo 3\nBuilds the API payload with a cinematic 360° orbit prompt and submits a long-running job to Vertex AI Veo 3. Gets back an operation ID used for polling."},"typeVersion":1},{"id":"19948635-28b8-4c13-8ede-1a7bee91c42e","name":"Group 5","type":"n8n-nodes-base.stickyNote","position":[-5616,-528],"parameters":{"color":7,"width":1108,"height":872,"content":"## Poll for Result\nChecks every 2 minutes whether the video is ready. Times out after 40 attempts (~10 min) and notifies the user with a friendly error if generation takes too long."},"typeVersion":1},{"id":"be8ea122-84d1-4264-a646-be1010aa4bb2","name":"Group 6","type":"n8n-nodes-base.stickyNote","position":[-4496,-432],"parameters":{"color":7,"width":660,"height":276,"content":"## Deliver Video\nConverts the Base64 video bytes to a file and sends it directly to the user in Telegram."},"typeVersion":1},{"id":"ee81c12f-2c54-441b-90a1-f5482c40b97e","name":"Wait 2 Minutes","type":"n8n-nodes-base.wait","position":[-5552,-240],"webhookId":"d3800f2b-17a5-4490-b79a-1d8ce76e3a88","parameters":{"unit":"minutes","amount":2},"typeVersion":1.1},{"id":"99b5b684-d316-4c79-9f58-d190be2e85df","name":"Send Timeout Error","type":"n8n-nodes-base.telegram","position":[-4784,144],"webhookId":"timeout-error-webhook","parameters":{"text":"=❌ Video generation failed after {{ $json.poll_count }} attempts.\n\nPlease try again with a different image or contact support.","chatId":"={{ $json.chatId }}","additionalFields":{"reply_to_message_id":"={{ $json.messageId }}"}},"credentials":{"telegramApi":{"id":"MZYDXGRSvEPr584A","name":"BytezTechSopingBot"}},"typeVersion":1.1},{"id":"e545feb6-efa8-4bf0-9bf0-0bb5d3fae486","name":"Check Timeout","type":"n8n-nodes-base.if","position":[-5184,32],"parameters":{"options":{},"conditions":{"string":[{"value1":"={{ $json.status }}","value2":"timeout"}]}},"typeVersion":2},{"id":"7d7f7f2c-0e25-473b-bf87-7339957295d7","name":"Download Image","type":"n8n-nodes-base.telegram","position":[-6896,-160],"webhookId":"75958cb9-50b4-43c4-8764-d6d99607f122","parameters":{"fileId":"={{ $json.result.reply_to_message.photo[3].file_id }}","resource":"file","additionalFields":{}},"credentials":{"telegramApi":{"id":"MZYDXGRSvEPr584A","name":"BytezTechSopingBot"}},"typeVersion":1.1},{"id":"83d5cd34-c7a8-454d-bea7-22854b9fea78","name":"Telegram Trigger","type":"n8n-nodes-base.telegramTrigger","position":[-8480,-48],"webhookId":"4883299d-cfbb-4008-9d5d-9e7ef74689d5","parameters":{"updates":["message"],"additionalFields":{}},"credentials":{"telegramApi":{"id":"MZYDXGRSvEPr584A","name":"BytezTechSopingBot"}},"typeVersion":1.2},{"id":"1ed72edc-642e-4d2b-a33a-39eac6401c2c","name":"2. Validate Input","type":"n8n-nodes-base.code","position":[-8256,-48],"parameters":{"jsCode":"const inputData = $input.item.json;\nconst message = inputData.message;\nconst output = { ...inputData };\n\nif (!message) {\n  output.error = true;\n  output.errorMessage = '❌ No message found.';\n  return [{ json: output }];\n}\n\nif (!message.photo || !Array.isArray(message.photo) || message.photo.length === 0) {\n  output.error = true;\n  output.errorMessage = '❌ No photo found. Please send an image of your product.';\n  return [{ json: output }];\n}\n\nconst photo = message.photo[message.photo.length - 1];\nif (Math.min(photo.width, photo.height) < 480) {\n  output.error = true;\n  output.errorMessage = `❌ Image too small (${photo.width}x${photo.height}).\\n\\nMinimum: 480px — Recommended: 1024x1024 or larger`;\n  return [{ json: output }];\n}\n\noutput.chatId = message.chat?.id;\noutput.messageId = message.message_id;\noutput.caption = message.caption || '';\noutput.file_id = photo.file_id;\noutput.error = false;\n\nreturn [{ json: output }];"},"typeVersion":2},{"id":"1f36ad53-6c90-471e-b8a3-6686b96de5de","name":"Check Auth Token Valid","type":"n8n-nodes-base.if","position":[-7344,-48],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9e617a27-7ee6-44ba-a7cb-02b3e5738b08","operator":{"type":"boolean","operation":"false","singleValue":true},"leftValue":"={{ $json.access_token.isEmpty() }}","rightValue":""}]}},"typeVersion":2},{"id":"3153c612-b11e-40ad-a24c-06b48b24f2eb","name":"Send Validation Error","type":"n8n-nodes-base.telegram","position":[-7120,32],"webhookId":"fcd46af2-c85c-4146-8d0c-bc0e80798ac9","parameters":{"text":"={{ $json.errorMessage }}","chatId":"={{ $json.chatId }}","additionalFields":{"reply_to_message_id":"={{ $json.messageId }}"}},"credentials":{"telegramApi":{"id":"MZYDXGRSvEPr584A","name":"BytezTechSopingBot"}},"typeVersion":1.1},{"id":"526add44-409e-41e6-b327-05c91a427708","name":"Send Processing Message","type":"n8n-nodes-base.telegram","position":[-7120,-160],"webhookId":"0a22f792-6405-4b9b-9fb7-d6ef02c6df9c","parameters":{"text":"🎬 Creating your 360° product video...\n\n⏱️ This takes around 3–4 minutes\n🔄 Processing with Google Veo 3...","chatId":"={{ $json.chatId }}","additionalFields":{"reply_to_message_id":"={{ $json.messageId }}"}},"credentials":{"telegramApi":{"id":"MZYDXGRSvEPr584A","name":"BytezTechSopingBot"}},"typeVersion":1.1},{"id":"238d0cb6-789f-4cbd-b894-38525e8b18e8","name":"Convert Image to Base64","type":"n8n-nodes-base.code","position":[-6672,-160],"parameters":{"jsCode":"const items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n  try {\n    if (!item.binary || !item.binary.data) {\n      throw new Error('No binary data found');\n    }\n\n    let imageBuffer;\n    let mimeType = 'image/jpeg';\n\n    if (item.binary.data.data) {\n      imageBuffer = Buffer.from(item.binary.data.data, 'base64');\n      mimeType = item.binary.data.mimeType || mimeType;\n    } else if (Buffer.isBuffer(item.binary.data)) {\n      imageBuffer = item.binary.data;\n      mimeType = item.binary.mimeType || mimeType;\n    } else if (typeof item.binary.data === 'string') {\n      imageBuffer = Buffer.from(item.binary.data, 'base64');\n      mimeType = item.binary.mimeType || mimeType;\n    } else {\n      const binaryKeys = Object.keys(item.binary).filter(k =>\n        !['mimeType', 'fileType', 'fileName', 'fileExtension'].includes(k)\n      );\n      if (binaryKeys.length > 0) {\n        const binaryData = item.binary[binaryKeys[0]];\n        imageBuffer = Buffer.isBuffer(binaryData) ? binaryData\n          : binaryData.data ? Buffer.from(binaryData.data)\n          : Buffer.from(binaryData);\n        mimeType = item.binary.mimeType || mimeType;\n      } else {\n        throw new Error('Could not locate binary data');\n      }\n    }\n\n    if (!imageBuffer || imageBuffer.length === 0) throw new Error('Empty image buffer');\n\n    results.push({\n      json: {\n        ...item.json,\n        imageBase64: imageBuffer.toString('base64'),\n        imageMimeType: mimeType,\n        imageSize: imageBuffer.length,\n        conversionStatus: 'success'\n      }\n    });\n\n  } catch (error) {\n    results.push({\n      json: {\n        ...item.json,\n        error: true,\n        conversionStatus: 'failed',\n        conversionError: error.message\n      }\n    });\n  }\n}\n\nreturn results;"},"typeVersion":2},{"id":"5696a1e9-ef12-4d7e-bc24-5cfcec661fec","name":"Conversion OK?","type":"n8n-nodes-base.if","position":[-6448,-160],"parameters":{"conditions":{"string":[{"value1":"={{ $json.conversionStatus }}","value2":"success"}]}},"typeVersion":1},{"id":"f4ac9dea-d831-413b-9ecc-1181a8ee0185","name":"Send Conversion Error","type":"n8n-nodes-base.telegram","position":[-6016,-48],"webhookId":"08210d1c-81de-4ee6-b6d8-c46c756eaa29","parameters":{"text":"=❌ Failed to process your image: {{ $json.conversionError }}\n\nPlease try sending the photo again.","chatId":"={{ $json.chatId }}","additionalFields":{"reply_to_message_id":"={{ $json.messageId }}"}},"credentials":{"telegramApi":{"id":"MZYDXGRSvEPr584A","name":"BytezTechSopingBot"}},"typeVersion":1.1},{"id":"06685eae-cf1a-4469-84de-f2d06079121f","name":"5. Prepare Veo Request","type":"n8n-nodes-base.code","position":[-6224,-240],"parameters":{"jsCode":"const item = $input.item.json;\n\nconst basePrompt = `Create a professional 360-degree product showcase video. The camera smoothly orbits the product in a full 360-degree rotation, maintaining consistent framing. Use studio lighting with a clean white background. The product stays centered throughout. Smooth, cinematic movement — no jitter or cuts.`;\n\nconst userCaption = item.caption || '';\nconst finalPrompt = userCaption.trim().length > 0\n  ? basePrompt + ` Product context: ${userCaption.trim()}`\n  : basePrompt;\n\nconst apiPayload = {\n  instances: [{\n    prompt: finalPrompt,\n    image: {\n      bytesBase64Encoded: item.imageBase64,\n      mimeType: item.imageMimeType\n    }\n  }],\n  parameters: {\n    aspectRatio: '16:9',\n    sampleCount: 1,\n    durationSeconds: 8,\n    personGeneration: 'allow_all',\n    addWatermark: true,\n    includeRaiReason: true,\n    generateAudio: true\n  }\n};\n\nreturn {\n  api_payload: JSON.stringify(apiPayload),\n  chatId: item.chatId,\n  messageId: item.messageId,\n  caption: item.caption\n};"},"typeVersion":2},{"id":"010b2b1c-fdde-454d-851d-e8d1aa5b7bfb","name":"6. Call Vertex AI Veo 3","type":"n8n-nodes-base.httpRequest","position":[-6000,-240],"parameters":{"url":"=https://us-central1-aiplatform.googleapis.com/v1/projects/{{ $('3. Get Access Token').item.json.project_id }}/locations/us-central1/publishers/google/models/veo-3.0-generate-preview:predictLongRunning","method":"POST","options":{},"jsonBody":"={{ $json.api_payload }}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"Authorization","value":"=Bearer {{ $('3. Get Access Token').item.json.access_token }}"},{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.2},{"id":"1343ec01-9309-40c6-b287-df7d3af9941b","name":"Extract Operation Name","type":"n8n-nodes-base.code","position":[-5776,-240],"parameters":{"jsCode":"const response = $input.item.json;\n\nif (response.name) {\n  return [{\n    json: {\n      operation_name: response.name,\n      status: 'polling',\n      poll_count: 0,\n      chatId: response.chatId,\n      messageId: response.messageId,\n      caption: response.caption\n    }\n  }];\n} else {\n  return [{\n    json: {\n      ...response,\n      error: 'No operation name returned from Vertex AI',\n      status: 'failed'\n    }\n  }];\n}"},"typeVersion":2},{"id":"13ef8fde-d595-4fec-b48b-66e479cdd700","name":"Poll Video Status","type":"n8n-nodes-base.httpRequest","position":[-5328,-320],"parameters":{"url":"=https://us-central1-aiplatform.googleapis.com/v1/projects/{{ $('3. Get Access Token').item.json.project_id }}/locations/us-central1/publishers/google/models/veo-3.0-generate-preview:fetchPredictOperation","method":"POST","options":{},"jsonBody":"={\n  \"operationName\": \"{{ $json.operation_name }}\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json"},"typeVersion":4.2},{"id":"041a8843-5462-4ff0-ae89-d7985463618a","name":"Is Video Ready?","type":"n8n-nodes-base.if","position":[-5104,-320],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"5b5ff11d-4bb6-4955-9d99-b1e9e27666ea","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.done }}","rightValue":""}]}},"typeVersion":2},{"id":"4127d7d4-340d-4228-9ace-b287b6bb0526","name":"Convert Video to File","type":"n8n-nodes-base.convertToFile","position":[-4880,-416],"parameters":{"options":{},"operation":"toBinary","sourceProperty":"response.videos[0].bytesBase64Encoded"},"typeVersion":1.1},{"id":"82f5dcb0-62e4-43b7-9148-7bce5074361e","name":"Continue Polling","type":"n8n-nodes-base.code","position":[-4880,-224],"parameters":{"jsCode":"const item = $input.item.json;\nconst pollCount = (item.poll_count || 0) + 1;\n\nif (pollCount > 40) {\n  return {\n    error: 'Video generation timeout',\n    status: 'timeout',\n    poll_count: pollCount,\n    chatId: item.chatId,\n    messageId: item.messageId\n  };\n}\n\nreturn {\n  operation_name: item.name || item.operation_name,\n  poll_count: pollCount,\n  status: 'polling',\n  chatId: item.chatId,\n  messageId: item.messageId,\n  caption: item.caption\n};"},"typeVersion":2},{"id":"6b7f1886-adda-4211-a4ff-a0b16e4bb131","name":"Send Video to User","type":"n8n-nodes-base.telegram","position":[-4224,-320],"webhookId":"74e11481-5b2a-4977-83dc-b438449eb577","parameters":{"chatId":"={{ $('Telegram Trigger').item.json.message.chat.id }}","operation":"sendVideo","binaryData":true,"additionalFields":{}},"credentials":{"telegramApi":{"id":"MZYDXGRSvEPr584A","name":"BytezTechSopingBot"}},"typeVersion":1.1},{"id":"8fb2a208-a649-4182-83d1-87d715e946a2","name":"2. Build JWT from Sheet","type":"n8n-nodes-base.code","position":[-7792,-48],"parameters":{"jsCode":"const item = $input.item.json;\nconst crypto = require('crypto');\n\nconst SERVICE_ACCOUNT_EMAIL = item.client_email;\nconst PRIVATE_KEY = item.private_key.replace(/\\\\n/g, '\\n');\nconst PROJECT_ID = item.project_id;\nconst SCOPE = item.scope || 'https://www.googleapis.com/auth/cloud-platform';\nconst TOKEN_URI = 'https://oauth2.googleapis.com/token';\nconst now = Math.floor(Date.now() / 1000);\n\nfunction base64url(input) {\n  const buf = Buffer.isBuffer(input) ? input : Buffer.from(JSON.stringify(input));\n  return buf.toString('base64').replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n\ntry {\n  const header = base64url({ alg: 'RS256', typ: 'JWT' });\n  const claims = base64url({ iss: SERVICE_ACCOUNT_EMAIL, scope: SCOPE, aud: TOKEN_URI, iat: now, exp: now + 3600 });\n  const signingInput = `${header}.${claims}`;\n  const sign = crypto.createSign('RSA-SHA256');\n  sign.update(signingInput);\n  sign.end();\n  const signature = sign.sign(PRIVATE_KEY).toString('base64').replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n\n  return [{ json: { ...item, jwt: `${signingInput}.${signature}`, project_id: PROJECT_ID, client_email: SERVICE_ACCOUNT_EMAIL, error: false } }];\n} catch (err) {\n  return [{ json: { ...item, error: true, errorMessage: `❌ JWT Build Failed: ${err.message}` } }];\n}"},"typeVersion":2},{"id":"faa1f906-1f3a-4b08-8fc1-fe117ea31a51","name":"3. Get Access Token","type":"n8n-nodes-base.httpRequest","position":[-7568,-48],"parameters":{"url":"https://oauth2.googleapis.com/token","method":"POST","options":{},"sendBody":true,"contentType":"form-urlencoded","bodyParameters":{"parameters":[{"name":"grant_type","value":"urn:ietf:params:oauth:grant-type:jwt-bearer"},{"name":"assertion","value":"={{ $json.jwt }}"}]}},"typeVersion":4.2},{"id":"563b037e-91b8-4348-a994-abfa27fba9ec","name":"1. Get Service Account Details","type":"n8n-nodes-base.googleSheets","position":[-8016,-48],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_GOOGLE_SHEET_ID_HERE","cachedResultUrl":"https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit","cachedResultName":"Service Account Credentials"}},"credentials":{"googleSheetsOAuth2Api":{"id":"c9xJX6hTzeLptu1d","name":"Jignesh Sheet"}},"typeVersion":4.7}],"pinData":{},"connections":{"Check Timeout":{"main":[[{"node":"Send Timeout Error","type":"main","index":0}],[{"node":"Wait 2 Minutes","type":"main","index":0}]]},"Conversion OK?":{"main":[[{"node":"5. Prepare Veo Request","type":"main","index":0}],[{"node":"Send Conversion Error","type":"main","index":0}]]},"Download Image":{"main":[[{"node":"Convert Image to Base64","type":"main","index":0}]]},"Wait 2 Minutes":{"main":[[{"node":"Poll Video Status","type":"main","index":0}]]},"Is Video Ready?":{"main":[[{"node":"Convert Video to File","type":"main","index":0}],[{"node":"Continue Polling","type":"main","index":0}]]},"Continue Polling":{"main":[[{"node":"Check Timeout","type":"main","index":0}]]},"Telegram Trigger":{"main":[[{"node":"2. Validate Input","type":"main","index":0}]]},"2. Validate Input":{"main":[[{"node":"1. Get Service Account Details","type":"main","index":0}]]},"Poll Video Status":{"main":[[{"node":"Is Video Ready?","type":"main","index":0}]]},"3. Get Access Token":{"main":[[{"node":"Check Auth Token Valid","type":"main","index":0}]]},"Convert Video to File":{"main":[[{"node":"Send Video to User","type":"main","index":0}]]},"5. Prepare Veo Request":{"main":[[{"node":"6. Call Vertex AI Veo 3","type":"main","index":0}]]},"Check Auth Token Valid":{"main":[[{"node":"Send Processing Message","type":"main","index":0}],[{"node":"Send Validation Error","type":"main","index":0}]]},"Extract Operation Name":{"main":[[{"node":"Wait 2 Minutes","type":"main","index":0}]]},"2. Build JWT from Sheet":{"main":[[{"node":"3. Get Access Token","type":"main","index":0}]]},"6. Call Vertex AI Veo 3":{"main":[[{"node":"Extract Operation Name","type":"main","index":0}]]},"Convert Image to Base64":{"main":[[{"node":"Conversion OK?","type":"main","index":0}]]},"Send Processing Message":{"main":[[{"node":"Download Image","type":"main","index":0}]]},"1. Get Service Account Details":{"main":[[{"node":"2. Build JWT from Sheet","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":30,"nodeTypes":{"n8n-nodes-base.if":{"count":4},"n8n-nodes-base.code":{"count":6},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.telegram":{"count":6},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.httpRequest":{"count":3},"n8n-nodes-base.googleSheets":{"count":1},"n8n-nodes-base.convertToFile":{"count":1},"n8n-nodes-base.telegramTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"BytezTech","username":"chintan","bio":"Technology partner for startups and growing businesses. We build scalable Mobile Apps (Flutter, Native), Web Platforms (Laravel, MERN, Next.js), and AI/ML solutions using Python. Focused on clean architecture, security-first development, and long-term product scalability. Let’s build systems that grow with your business.","verified":true,"links":["https://byteztech.com/"],"avatar":"https://gravatar.com/avatar/78d67bdade378e9982a64f629cf9268fb40bb058b3c3316e7334fffd80ea1b83?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":49,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegram","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Telegram"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":50,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegramTrigger","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.telegramtrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"Telegram Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram Trigger","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1234,"icon":"file:convertToFile.svg","name":"n8n-nodes-base.convertToFile","codex":{"data":{"alias":["CSV","Spreadsheet","Excel","xls","xlsx","ods","tabular","encode","encoding","Move Binary Data","Binary","File","JSON","HTML","ICS","iCal","RTF","64","Base64"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.converttofile/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Files","Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Convert to File"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc2MTkgMkMxMy4yNDM3IDIgMTIuODIzNiAyLjQyMDA5IDEyLjgyMzYgMi45MzgzMVYxNS4yNTI2QzEzLjMxOTkgMTUuNDY0MyAxMy43ODUxIDE1Ljc3MiAxNC4xOTEgMTYuMTc1N0wyMS4yMjgzIDIzLjE3MzlDMjIuMDU0OCAyMy45OTU4IDIyLjUxOTUgMjUuMTEzMiAyMi41MTk1IDI2LjI3ODhDMjIuNTE5NSAyNy40NDQzIDIyLjA1NDggMjguNTYxOCAyMS4yMjgzIDI5LjM4MzdMMTQuMTkxIDM2LjM4MTlDMTMuNzg1IDM2Ljc4NTYgMTMuMzE5OSAzNy4wOTMyIDEyLjgyMzYgMzcuMzA1VjM3LjM1MjdDMTIuODIzNiAzNy44NzA5IDEzLjI0MzcgMzguMjkxIDEzLjc2MTkgMzguMjkxSDM5LjA2MTdDMzkuNTc5OSAzOC4yOTEgNDAgMzcuODcwOSA0MCAzNy4zNTI3TDQwIDE1Ljc5NEgyNy4xNDQzQzI2LjYyNjEgMTUuNzk0IDI2LjIwNiAxNS4zNzM5IDI2LjIwNiAxNC44NTU3VjJIMTMuNzYxOVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTI4Ljg2NDUgMkMyOC43NzgxIDIgMjguNzA4MSAyLjA3MDAyIDI4LjcwODEgMi4xNTYzOVYxMi44MjI3QzI4LjcwODEgMTMuMDgxOCAyOC45MTgyIDEzLjI5MTkgMjkuMTc3MyAxMy4yOTE5SDM5Ljg0MzZDMzkuOTMgMTMuMjkxOSA0MCAxMy4yMjE5IDQwIDEzLjEzNTVMNDAgMTIuNjI2M0M0MCAxMi4zNzc4IDM5LjkwMTQgMTIuMTM5NSAzOS43MjYgMTEuOTYzNkwzMC4wNjEgMi4yNzU2MUMyOS44ODUgMi4wOTkxNiAyOS42NDYgMiAyOS4zOTY3IDJIMjguODY0NVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTkuNzcyNjggMzQuNjAwM0M5LjA0MTg2IDMzLjg2NTQgOS4wNDUxNyAzMi42NzcyIDkuNzgwMDcgMzEuOTQ2NEwxMy42MzE1IDI4LjExNjNMMC45MzgzMTEgMjguMTE2M0MwLjQyMDA5NiAyOC4xMTYzIC0yLjI2NTE5ZS0wOCAyNy42OTYyIDAgMjcuMTc4TDguMjAyOTdlLTA4IDI1LjMwMTRDMS4wNDY4MmUtMDcgMjQuNzgzMiAwLjQyMDA5NSAyNC4zNjMxIDAuOTM4MzExIDI0LjM2MzFIMTMuNTUyOUw5Ljc4MDA3IDIwLjYxMTJDOS4wNDUxNyAxOS44ODA0IDkuMDQxODYgMTguNjkyMiA5Ljc3MjY4IDE3Ljk1NzNDMTAuNTAzNSAxNy4yMjI0IDExLjY5MTcgMTcuMjE5MSAxMi40MjY2IDE3Ljk0OTlMMTkuNDYzOSAyNC45NDgxQzE5LjgxODEgMjUuMzAwNCAyMC4wMTczIDI1Ljc3OTMgMjAuMDE3MyAyNi4yNzg4QzIwLjAxNzMgMjYuNzc4MyAxOS44MTgxIDI3LjI1NzIgMTkuNDYzOSAyNy42MDk1TDEyLjQyNjYgMzQuNjA3N0MxMS42OTE3IDM1LjMzODUgMTAuNTAzNSAzNS4zMzUyIDkuNzcyNjggMzQuNjAwM1oiIGZpbGw9IiMzQTQyRTkiLz4KPC9zdmc+Cg=="},"displayName":"Convert to File","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}