AutomationFlowsWeb Scraping › Generate Videos From Chat with Google Vertex AI (veo3)

Generate Videos From Chat with Google Vertex AI (veo3)

ByAutomate With Marc @marconi on n8n.io

Generate Videos from Chat with Google Vertex AI (Veo3) - Beginner Friendly

Chat trigger trigger★★★★☆ complexityAI-powered13 nodesHTTP RequestChat Trigger
Web Scraping Trigger: Chat trigger Nodes: 13 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #7954 — we link there as the canonical source.

This workflow follows the Chat Trigger → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "EnIaJOKCuqYJ8ul1",
  "name": "Google Vertex AI Veo3",
  "tags": [],
  "nodes": [
    {
      "id": "6300d7f4-c714-43fe-9139-6864b6285847",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        416,
        0
      ],
      "parameters": {
        "amount": 15
      },
      "typeVersion": 1.1
    },
    {
      "id": "42ab0b46-93d2-40e7-8070-45e9db320ee0",
      "name": "Poll for Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        624,
        0
      ],
      "parameters": {
        "url": "<<<VERTEX_FETCH_OPERATION_URL>>>",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"operationName\": \"{{$json.name}}\"\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleOAuth2Api"
      },
      "typeVersion": 4.2
    },
    {
      "id": "aaf39750-83e5-4d47-a990-d81ba4bb976c",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        1088,
        -16
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5836e9ec-261f-462f-bc00-c92df3aeb2b7",
              "name": "b64",
              "type": "string",
              "value": "={{ $json.response.videos[0].bytesBase64Encoded }}"
            },
            {
              "id": "5910d171-eb3f-421b-873c-a6b18fa78093",
              "name": "mime",
              "type": "string",
              "value": "={{ $json.response.videos[0].mimeType }}"
            },
            {
              "id": "494760a4-0ae1-4c23-978b-8797625ffd43",
              "name": "filename",
              "type": "string",
              "value": "veo_sample_video"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b16e9bd2-9042-4b6a-a1fc-240cd31c2dd5",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1296,
        -16
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "b64"
      },
      "typeVersion": 1.1
    },
    {
      "id": "6d89bf29-5440-4c51-b12c-ed15f2fa418a",
      "name": "Post Veo3 Fast",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        192,
        0
      ],
      "parameters": {
        "url": "<<<VERTEX_PREDICT_LONG_RUNNING_URL>>>",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"instances\": [{ \"prompt\": \"{{ $json.chatInput }}\" }],\n  \"parameters\": {\n    \"aspectRatio\": \"16:9\",\n    \"durationSeconds\": 8,\n    \"resolution\": \"720p\",\n    \"sampleCount\": 1\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleOAuth2Api"
      },
      "typeVersion": 4.2
    },
    {
      "id": "dafb335c-d7af-4942-836b-67a8c1388d95",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        832,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5de4dcc5-afd1-49ab-aa0e-c2c6ecf247e1",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b17e2101-cfb7-4446-a46c-389f49252158",
      "name": "Wait1",
      "type": "n8n-nodes-base.wait",
      "position": [
        800,
        240
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "ab424258-b4e3-4532-b993-b42544402ca9",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -112,
        0
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "6ba0b8e4-0f65-4c95-8cad-4f1f95fee28c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -256
      ],
      "parameters": {
        "width": 336,
        "height": 800,
        "content": "Chat Trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "ca396856-da6d-4449-9425-0d21dc2ceaa1",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        -256
      ],
      "parameters": {
        "color": 4,
        "width": 288,
        "height": 800,
        "content": "Post to Google Vertex AI (Veo3)"
      },
      "typeVersion": 1
    },
    {
      "id": "b6b8292b-efa8-4cff-b98b-5690227c135d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -256
      ],
      "parameters": {
        "color": 5,
        "width": 608,
        "height": 800,
        "content": "Poll Video Loop"
      },
      "typeVersion": 1
    },
    {
      "id": "8080cbe5-6ac8-453f-8bd4-3dcae37b31ce",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1024,
        -256
      ],
      "parameters": {
        "color": 6,
        "width": 480,
        "height": 800,
        "content": "Download Binary"
      },
      "typeVersion": 1
    },
    {
      "id": "c173d6c0-abed-4e18-975c-c325ac6b587c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -368
      ],
      "parameters": {
        "color": 7,
        "width": 576,
        "height": 912,
        "content": "\ud83c\udfac Generate Videos from Chat with Google Vertex AI (Veo3)\n\nDescription\nTurn any text prompt into a short AI-generated video directly from an n8n chat. This workflow connects a chat trigger to Google Vertex AI\u2019s Veo3 model, sending your prompt as input and polling until the rendered video is ready. Once complete, the video is converted into a downloadable file you can use anywhere. Perfect for experimenting with AI-driven media or automating creative video generation inside your workflows.\n\nWatch step-by-step guide for these type of workflows here:\nwww.youtube.com/@automatewithmarc\n\nHow It Works\n\nChat Trigger \u2013 Start by typing your prompt into an n8n chat.\n\nPost to Vertex AI (Veo3) \u2013 Sends the prompt to the Veo3 API with parameters like aspect ratio, duration, and resolution.\n\nWait + Poll Loop \u2013 Repeatedly checks the operation status until the video is finished.\n\nIf + Edit Fields \u2013 Extracts the base64 video response and metadata.\n\nConvert to File \u2013 Turns the video into a binary file for download or use in further automations.\n\nWhy You\u2019ll Love It\n\n\u26a1 Generate custom AI videos in minutes.\n\n\ud83d\udde3\ufe0f Natural workflow \u2014 just type your idea in chat.\n\n\ud83c\udfa5 Flexible parameters \u2014 adjust resolution, aspect ratio, and duration.\n\n\ud83d\udd17 Ready for integration \u2014 feed the output into Google Drive, Slack, or any connected app.\n\nRequirements\n\nGoogle Cloud project with Vertex AI API enabled.\n\nGoogle OAuth credentials in n8n.\n\nn8n (Cloud or self-hosted)."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Poll for Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait1": {
      "main": [
        [
          {
            "node": "Poll for Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Poll for Video": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post Veo3 Fast": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Post Veo3 Fast",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Generate Videos from Chat with Google Vertex AI (Veo3) - Beginner Friendly

Source: https://n8n.io/workflows/7954/ — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

Analyze up to 100 URLs in one run and export key on-page SEO data to CSV automatically.

HTTP Request, Chat Trigger, Item Lists +1
Web Scraping

N8N Chain Translation. Uses httpRequest, chatTrigger, n8n-nodes-docx-extractor. Chat trigger; 31 nodes.

HTTP Request, Chat Trigger, N8N Nodes Docx Extractor
Web Scraping

o1 - mini. Uses redis, httpRequest, chatTrigger. Chat trigger; 26 nodes.

Redis, HTTP Request, Chat Trigger
Web Scraping

pfe-hunter-sophistique. Uses lmChatGroq, chatTrigger, chainLlm, httpRequest. Chat trigger; 24 nodes.

Groq Chat, Chat Trigger, Chain Llm +1
Web Scraping

o1 - groq. Uses redis, httpRequest, chatTrigger. Chat trigger; 22 nodes.

Redis, HTTP Request, Chat Trigger