💥 Usar NanoBanana y VEO3 para generar videos virales de IA, compartir a través de Blotato a plataformas sociales - Video

Avanzado

Este es unMiscellaneous, Multimodal AIflujo de automatización del dominio deautomatización que contiene 47 nodos.Utiliza principalmente nodos como Set, Code, Wait, Merge, Telegram. Generar videos virales de IA con NanoBanana y VEO3, compartir en redes sociales con Blotato

Requisitos previos
  • Bot Token de Telegram
  • Credenciales de API de Google Drive
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "z8nPpsFFe7kDBQUm",
  "meta": {
    "instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44",
    "templateCredsSetupCompleted": true
  },
  "name": "💥 Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato - vide",
  "tags": [],
  "nodes": [
    {
      "id": "101bdee1-4de4-4b5e-9170-4d490d4e8128",
      "name": "Nota adhesiva 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -304
      ],
      "parameters": {
        "color": 4,
        "width": 1344,
        "height": 832,
        "content": "# 📑 STEP 5 — Auto-Post to All Platforms\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "db2db976-7988-4939-a931-b6b2b98570aa",
      "name": "Subir video a BLOTATO",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1024,
        320
      ],
      "parameters": {
        "mediaUrl": "={{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}",
        "resource": "media"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6866a654-e6a7-4543-b98a-8288f9d04b47",
      "name": "Youtube",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1648,
        112
      ],
      "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
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a1b51932-2e2c-4e32-a37a-7ce94620cdd9",
      "name": "Tiktok",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1280,
        -64
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
      "name": "Combinar",
      "type": "n8n-nodes-base.merge",
      "position": [
        1936,
        16
      ],
      "parameters": {
        "mode": "chooseBranch",
        "numberInputs": 9
      },
      "typeVersion": 3.2
    },
    {
      "id": "bee496d6-fc2d-4f1c-812f-9d6be08154a7",
      "name": "Actualizar estado a \"COMPLETADO\"",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2112,
        128
      ],
      "parameters": {
        "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": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "5f7344d8-a277-457b-a33f-c48e2ced1e49",
      "name": "Linkedin",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1472,
        -64
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "31bc2347-2457-4fad-8436-09282df89609",
      "name": "Facebook",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1648,
        -64
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "06e29e46-c3ce-4c9e-825d-39df924a607d",
      "name": "Instagram",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1280,
        112
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3f7560c8-3e4a-4d62-bf62-e8d543df8026",
      "name": "Threads",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1280,
        320
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3e4b6251-7c56-40ca-8fb6-4b77c910a2e6",
      "name": "Bluesky",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1472,
        320
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "61f5f513-b7ec-40ca-a4a1-1b897f092a04",
      "name": "Pinterest",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1648,
        320
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "4fb185bf-f237-4b71-8557-178f15f0caec",
      "name": "Twitter (X)",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1472,
        112
      ],
      "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 }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "cb9939c6-1c5c-448b-ab3a-a66d90767cf2",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        480,
        32
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2c244851-7835-4f4a-8fe9-10a26acf6365",
      "name": "Pensar",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        624,
        32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0695e935-93ac-48da-a893-1615ce22a6e7",
      "name": "Analizador de salida estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        768,
        32
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"string\",\n  \"final_prompt\": \"string\"\n}\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "ff995af1-503e-4356-8e67-6392b4629496",
      "name": "Enviar URL del video vía Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1008,
        -176
      ],
      "webhookId": "ea6e5974-1930-4b67-a51b-16249a9ed8bd",
      "parameters": {
        "text": "=Url VIDEO : {{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}",
        "chatId": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "257eedc1-30c1-4e40-913b-24ceb018df28",
      "name": "Enviar vista previa final del video",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1024,
        64
      ],
      "webhookId": "443fd41d-a051-45bf-ad68-173197dba26b",
      "parameters": {
        "file": "={{ $('Save Caption Video to Google Sheets').item.json['URL VIDEO FINAL'] }}",
        "chatId": "={{ $json.result.chat.id }}",
        "operation": "sendVideo",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "11f4ee14-912b-4a77-8696-7d36f7fc8a21",
      "name": "Telegram Trigger: Recibir idea de video",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -208,
        -752
      ],
      "webhookId": "26dbe6f5-5197-4b2b-9e32-8060f2119686",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "45e0b8ee-b830-48bc-8a9a-a426a7afcd43",
      "name": "Establecer prompt maestro",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        -192
      ],
      "parameters": {
        "options": {},
        "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 – physical description, outfit\",\n      \"pose\": \"optional – position or gesture\",\n      \"lip_sync_line\": \"optional – spoken line if there’s 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 – describe style (neon trails, motion blur...)\",\n    \"impact\": \"optional – e.g. shockwave, glow, distortion\",\n    \"particles\": \"optional – embers, sparks, thread strands...\",\n    \"environment\": \"optional – VFX affecting the scene (ripples, wind...)\"\n  },\n  \"audio\": {\n    \"music\": \"optional – cinematic score, trap beat, ambient tone\",\n    \"sfx\": [\n      \"list of sound effects (zip, pop, woosh...)\"\n    ],\n    \"ambience\": \"optional – 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 – 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"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
      "name": "Agente de IA: Generar guion de video",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        560,
        -192
      ],
      "parameters": {
        "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’s 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",
        "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 — 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"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "16902ea9-197e-4cac-936e-83c1fc226854",
      "name": "Generar video con VEO3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -160,
        320
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/veo/generate",
        "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}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "ho8ZjaYj1SY0icGT",
          "name": "Kie AI"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a7fffb23-dba4-4d1e-a42e-191a1414ec60",
      "name": "Esperar renderizado de VEO3",
      "type": "n8n-nodes-base.wait",
      "position": [
        48,
        320
      ],
      "webhookId": "f6d814f3-4eb8-4629-a920-134cfa4ea03b",
      "parameters": {
        "amount": 20
      },
      "typeVersion": 1.1
    },
    {
      "id": "67889216-2c0f-4ed8-ae54-8e7e7fdbac90",
      "name": "Descargar video de VEO3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        256,
        320
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/veo/record-info",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "taskId",
              "value": "={{ $('Generate Video with VEO3').item.json.data.taskId }}"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "ho8ZjaYj1SY0icGT",
          "name": "Kie AI"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f6dda272-6129-4c04-b4c2-1e6bf5d156d8",
      "name": "Reescribir descripción con GPT-4o",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        416,
        320
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "GPT-4O"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are rewriting a TikTok video script, caption, and overlay —\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"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "8b4c6b55-a0d7-4a19-b85c-1927ccb5eaa2",
      "name": "Guardar descripción y video en Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        720,
        320
      ],
      "parameters": {
        "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": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "30c415e0-58e0-48b9-b7e9-11dc5d979ac8",
      "name": "Formatear prompt",
      "type": "n8n-nodes-base.code",
      "position": [
        -160,
        16
      ],
      "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"
      },
      "typeVersion": 2
    },
    {
      "id": "61ce4a03-4104-4beb-bb16-0b2d2dde142d",
      "name": "Nota adhesiva 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -304
      ],
      "parameters": {
        "width": 1180,
        "height": 460,
        "content": "# 📑 STEP 3 — Generate Video Ad Script"
      },
      "typeVersion": 1
    },
    {
      "id": "9f91c353-3ad6-498c-ba14-907bb91e208c",
      "name": "Nota adhesiva 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        208
      ],
      "parameters": {
        "width": 1180,
        "height": 320,
        "content": "# 📑 STEP 4 — Generate Video with VEO3"
      },
      "typeVersion": 1
    },
    {
      "id": "3051b833-571a-4f0c-993a-ca8ffd03e476",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -944
      ],
      "parameters": {
        "width": 1184,
        "height": 592,
        "content": "# 📑 STEP 1 — Collect Idea & Image"
      },
      "typeVersion": 1
    },
    {
      "id": "785aa7c8-8921-4b6b-8db3-8d55e2a42564",
      "name": "Nota adhesiva 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -944
      ],
      "parameters": {
        "width": 1328,
        "height": 592,
        "content": "# 📑 STEP 2 — Create Image with NanoBanana\n"
      },
      "typeVersion": 1
    },
    {
      "id": "fa25f6bf-d05b-4b8d-8a8a-b8684c601510",
      "name": "Telegram: Obtener archivo de imagen",
      "type": "n8n-nodes-base.telegram",
      "position": [
        224,
        -880
      ],
      "webhookId": "06ceb31d-dcd9-4a9a-bbbe-a7bf7ae0ad4a",
      "parameters": {
        "fileId": "={{ $json.message.photo[2].file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7a362123-c86c-45f9-b80c-a5660f92da46",
      "name": "Google Drive: Subir imagen",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        240,
        -688
      ],
      "parameters": {
        "name": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}",
        "driveId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gzeHMd64HAz6HBIe",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "a9614733-44e3-4580-95f8-a955d9136be4",
      "name": "Google Sheets: Registrar imagen y descripción",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        240,
        -512
      ],
      "parameters": {
        "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": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "a8e85901-2451-4037-ba0c-aa2b229c9d0f",
      "name": "Establecer: Token de bot (Marcador)",
      "type": "n8n-nodes-base.set",
      "position": [
        480,
        -752
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "af62651a-3fc8-419d-908b-6514f6f4bcb3",
              "name": "YOUR_BOT_TOKEN",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ae9da8d7-f2c4-4ada-897c-651176cbfdb6",
      "name": "Telegram API: Obtener URL del archivo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        672,
        -752
      ],
      "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": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "6527e03e-6417-45a5-95a8-2ef84b872df0",
      "name": "OpenAI Vision: Analizar imagen de referencia",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1088,
        -752
      ],
      "parameters": {
        "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–2 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–2 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.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "=https://api.telegram.org/file/bot{{ $('Set: Bot Token (Placeholder)').item.json.YOUR_BOT_TOKEN }}/{{ $json.result.file_path }}",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "6d78c44a-9073-4a2c-9a17-102c870b2162",
      "name": "Google Sheets: Actualizar descripción de imagen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1328,
        -752
      ],
      "parameters": {
        "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": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "efd41bb8-ecef-49ea-9051-ead169d6766b",
      "name": "LLM: Analizador de salida estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1712,
        -512
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"image_prompt\": \"string\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "96a49fe4-d013-42c8-9ae8-11eb713e132f",
      "name": "LLM: Chat OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1504,
        -512
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
      "name": "Generar prompt de imagen",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1552,
        -752
      ],
      "parameters": {
        "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’s description:**  \n{{ $json.CAPTION }}\n\n- **Reference image description:**  \n{{ $json['IMAGE DESCRIPTION'] }}\n",
        "options": {
          "systemMessage": "=ROLE: UGC Image Prompt Builder  \n\nGOAL:  \nGenerate one concise, natural, and realistic image prompt (≤120 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–3 (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–38.  \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"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "80274aa5-bdf0-49bf-9980-0624d99d68ef",
      "name": "NanoBanana: Crear imagen",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1888,
        -752
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/nano-banana/edit",
        "method": "POST",
        "options": {},
        "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",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "kNULkYDcOZG3X0be",
          "name": "Fal.ai"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e132487d-da8c-4850-9d3f-9e057e9bde64",
      "name": "Esperar edición de imagen",
      "type": "n8n-nodes-base.wait",
      "position": [
        2096,
        -752
      ],
      "webhookId": "df52d997-45c4-431f-bdf6-89dd25027b5b",
      "parameters": {
        "amount": 20
      },
      "typeVersion": 1.1
    },
    {
      "id": "2c7ffce1-8ace-418d-9738-c659f4554980",
      "name": "Descargar imagen editada",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2096,
        -528
      ],
      "parameters": {
        "url": "={{ $json.response_url }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "kNULkYDcOZG3X0be",
          "name": "Fal.ai"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ec725aa0-fd30-4d98-b984-0228873db428",
      "name": "Google Sheets: Leer parámetros de video (CONFIG)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        32,
        -192
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "abafa8c6-55a0-488c-970e-d2a969ad7959",
      "name": "Telegram: Enviar notificación",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2112,
        336
      ],
      "webhookId": "2f4a4bc1-99de-4e93-8523-dd8c6499b893",
      "parameters": {
        "text": "Published",
        "chatId": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "77030cb3-3246-41d5-bcbc-74f82bdd501b",
      "name": "Nota adhesiva 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -992,
        -944
      ],
      "parameters": {
        "color": 6,
        "width": 700,
        "height": 1476,
        "content": "# 🎬 Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato (By Dr. Firas)\n\n\n# 🎥 Full Tutorial :\n[![AI Voice Agent Preview](https://www.dr-firas.com/nanobanana.png)](https://youtu.be/nlwpbXQqNQ4)\n\n---\n\n# 📘 Documentation  \nAccess detailed setup instructions, API config, platform connection guides, and workflow customization tips:\n\n📎 [Open the full documentation on Notion](https://automatisation.notion.site/NonoBanan-2643d6550fd98041aef5dcbe8ab0f7a1?source=copy_link)\n\n---\n\n# ⚙️ Requirements\n\n1. ✅ **Create a [Blotato](https://blotato.com/?ref=firas) account** (Pro plan required for API access)  \n2. 🔑 **Generate your Blotato API Key** via: `Settings > API > Generate API Key`  \n3. 📦 **Enable “Verified Community Nodes”** in the n8n admin settings  \n4. 🧩 **Install the Blotato** verified community node in n8n  \n5. 🛠 **Create a Blotato API credential** inside your n8n credentials tab  \n6. 📄 **Duplicate this [Google Sheet template](https://docs.google.com/spreadsheets/d/1FutmZHblwnk36fp59fnePjONzuJBdndqZOCuRoGWSmY/edit?usp=sharing)**  \n7. ☁️ **Make sure your Google Drive folder is PUBLIC** (anyone with the link can access)  \n8. 📌 **Complete the 3 brown sticky note steps** inside the workflow editor\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8577d027-1dbc-4c0d-97db-1cf6c6613ae6",
  "connections": {
    "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b": {
      "main": [
        [
          {
            "node": "bee496d6-fc2d-4f1c-812f-9d6be08154a7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c244851-7835-4f4a-8fe9-10a26acf6365": {
      "ai_tool": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "a1b51932-2e2c-4e32-a37a-7ce94620cdd9": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3e4b6251-7c56-40ca-8fb6-4b77c910a2e6": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 7
          }
        ]
      ]
    },
    "3f7560c8-3e4a-4d62-bf62-e8d543df8026": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 6
          }
        ]
      ]
    },
    "6866a654-e6a7-4543-b98a-8288f9d04b47": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "31bc2347-2457-4fad-8436-09282df89609": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "5f7344d8-a277-457b-a33f-c48e2ced1e49": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "06e29e46-c3ce-4c9e-825d-39df924a607d": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "61f5f513-b7ec-40ca-a4a1-1b897f092a04": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 8
          }
        ]
      ]
    },
    "4fb185bf-f237-4b71-8557-178f15f0caec": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "30c415e0-58e0-48b9-b7e9-11dc5d979ac8": {
      "main": [
        [
          {
            "node": "16902ea9-197e-4cac-936e-83c1fc226854",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "96a49fe4-d013-42c8-9ae8-11eb713e132f": {
      "ai_languageModel": [
        [
          {
            "node": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "cb9939c6-1c5c-448b-ab3a-a66d90767cf2": {
      "ai_languageModel": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "45e0b8ee-b830-48bc-8a9a-a426a7afcd43": {
      "main": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e132487d-da8c-4850-9d3f-9e057e9bde64": {
      "main": [
        [
          {
            "node": "2c7ffce1-8ace-418d-9738-c659f4554980",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c7ffce1-8ace-418d-9738-c659f4554980": {
      "main": [
        [
          {
            "node": "ec725aa0-fd30-4d98-b984-0228873db428",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6599d80-4301-4dd1-bc38-1c39e57e21cb": {
      "main": [
        [
          {
            "node": "80274aa5-bdf0-49bf-9980-0624d99d68ef",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bee496d6-fc2d-4f1c-812f-9d6be08154a7": {
      "main": [
        [
          {
            "node": "abafa8c6-55a0-488c-970e-d2a969ad7959",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "db2db976-7988-4939-a931-b6b2b98570aa": {
      "main": [
        [
          {
            "node": "a1b51932-2e2c-4e32-a37a-7ce94620cdd9",
            "type": "main",
            "index": 0
          },
          {
            "node": "5f7344d8-a277-457b-a33f-c48e2ced1e49",
            "type": "main",
            "index": 0
          },
          {
            "node": "31bc2347-2457-4fad-8436-09282df89609",
            "type": "main",
            "index": 0
          },
          {
            "node": "06e29e46-c3ce-4c9e-825d-39df924a607d",
            "type": "main",
            "index": 0
          },
          {
            "node": "4fb185bf-f237-4b71-8557-178f15f0caec",
            "type": "main",
            "index": 0
          },
          {
            "node": "6866a654-e6a7-4543-b98a-8288f9d04b47",
            "type": "main",
            "index": 0
          },
          {
            "node": "3f7560c8-3e4a-4d62-bf62-e8d543df8026",
            "type": "main",
            "index": 0
          },
          {
            "node": "3e4b6251-7c56-40ca-8fb6-4b77c910a2e6",
            "type": "main",
            "index": 0
          },
          {
            "node": "61f5f513-b7ec-40ca-a4a1-1b897f092a04",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a7fffb23-dba4-4d1e-a42e-191a1414ec60": {
      "main": [
        [
          {
            "node": "67889216-2c0f-4ed8-ae54-8e7e7fdbac90",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "67889216-2c0f-4ed8-ae54-8e7e7fdbac90": {
      "main": [
        [
          {
            "node": "f6dda272-6129-4c04-b4c2-1e6bf5d156d8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "16902ea9-197e-4cac-936e-83c1fc226854": {
      "main": [
        [
          {
            "node": "a7fffb23-dba4-4d1e-a42e-191a1414ec60",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "80274aa5-bdf0-49bf-9980-0624d99d68ef": {
      "main": [
        [
          {
            "node": "e132487d-da8c-4850-9d3f-9e057e9bde64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "257eedc1-30c1-4e40-913b-24ceb018df28": {
      "main": [
        [
          {
            "node": "db2db976-7988-4939-a931-b6b2b98570aa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0695e935-93ac-48da-a893-1615ce22a6e7": {
      "ai_outputParser": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "fa25f6bf-d05b-4b8d-8a8a-b8684c601510": {
      "main": [
        [
          {
            "node": "7a362123-c86c-45f9-b80c-a5660f92da46",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7a362123-c86c-45f9-b80c-a5660f92da46": {
      "main": [
        [
          {
            "node": "a9614733-44e3-4580-95f8-a955d9136be4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ae9da8d7-f2c4-4ada-897c-651176cbfdb6": {
      "main": [
        [
          {
            "node": "6527e03e-6417-45a5-95a8-2ef84b872df0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6dda272-6129-4c04-b4c2-1e6bf5d156d8": {
      "main": [
        [
          {
            "node": "8b4c6b55-a0d7-4a19-b85c-1927ccb5eaa2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ff995af1-503e-4356-8e67-6392b4629496": {
      "main": [
        [
          {
            "node": "257eedc1-30c1-4e40-913b-24ceb018df28",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a8e85901-2451-4037-ba0c-aa2b229c9d0f": {
      "main": [
        [
          {
            "node": "ae9da8d7-f2c4-4ada-897c-651176cbfdb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "efd41bb8-ecef-49ea-9051-ead169d6766b": {
      "ai_outputParser": [
        [
          {
            "node": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "a27e8e28-cb43-4b3f-a96e-e986a25209fb": {
      "main": [
        [
          {
            "node": "30c415e0-58e0-48b9-b7e9-11dc5d979ac8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a9614733-44e3-4580-95f8-a955d9136be4": {
      "main": [
        [
          {
            "node": "a8e85901-2451-4037-ba0c-aa2b229c9d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b4c6b55-a0d7-4a19-b85c-1927ccb5eaa2": {
      "main": [
        [
          {
            "node": "ff995af1-503e-4356-8e67-6392b4629496",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "11f4ee14-912b-4a77-8696-7d36f7fc8a21": {
      "main": [
        [
          {
            "node": "a8e85901-2451-4037-ba0c-aa2b229c9d0f",
            "type": "main",
            "index": 0
          },
          {
            "node": "fa25f6bf-d05b-4b8d-8a8a-b8684c601510",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6527e03e-6417-45a5-95a8-2ef84b872df0": {
      "main": [
        [
          {
            "node": "6d78c44a-9073-4a2c-9a17-102c870b2162",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6d78c44a-9073-4a2c-9a17-102c870b2162": {
      "main": [
        [
          {
            "node": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ec725aa0-fd30-4d98-b984-0228873db428": {
      "main": [
        [
          {
            "node": "45e0b8ee-b830-48bc-8a9a-a426a7afcd43",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Varios, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Flujos de trabajo relacionados recomendados

💥 Automatización de anuncios de video con NanoBanana, Seedream 4, ChatGPT Image y Veo 3 - VIDE
Usar IA (NanoBanana, Seedream, GPT-4o, Veo 3) para automatizar y publicar campañas de video publicitario
Set
Code
Wait
+
Set
Code
Wait
63 NodosDr. Firas
Creación de contenido
💥 Crear anuncios virales con NanoBanana y Seedance, publicar videos en redes sociales mediante upload-post VIDE II
Usar IA para crear anuncios virales multimedia: NanoBanana, Seedance y Suno para redes sociales
If
Set
Code
+
If
Set
Code
45 NodosDr. Firas
Varios
💥 HeyGen II - Clone Mí - De la Idea a la Publicación: Automatización de Videos con GPT-5 para YouTube, TikTok e Instagram - Video
Automatizar la creación de videos con entrada de voz usando HeyGen, GPT-5 y publicación social
If
Set
Wait
+
If
Set
Wait
41 NodosDr. Firas
Creación de contenido
💥 HeyGen - De la idea a la publicación: Automatización de video GPT-5 para YouTube, TikTok e Instagram - Video
Usar GPT-5 para generar videos de avatares virtuales de AI y publicarlos en plataformas de redes sociales
If
Set
Wait
+
If
Set
Wait
41 NodosDr. Firas
Creación de contenido
💥 Usar VEO 3 para generar videos virales de IA y subir a TikTok
Generar videos virales de IA con VEO 3 y subir a TikTok
Set
Code
Wait
+
Set
Code
Wait
24 NodosDr. Firas
Creación de contenido
💥 Generar automáticamente videos para redes sociales con GPT-5 y publicarlos con Blotato - Video
Usar GPT-5 para generar automáticamente videos de redes sociales y publicarlos con Blotato
Set
Merge
Telegram
+
Set
Merge
Telegram
31 NodosDr. Firas
Redes sociales
Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos47
Categoría2
Tipos de nodos16
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Dr. Firas

Dr. Firas

@drfiras

Automation expert and certified trainer. I create hands-on courses to master automation with n8n. Contact me to access my exclusive training and start building powerful workflows today. 🚀

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34