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

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

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

Use cases are many: Compare costs across different models, plan your AI budget, optimize prompts for cost efficiency, or track expenses for client billing! OpenRouter charges a platform fee on top of

Chat Trigger, Execute Workflow Trigger, Form +4
Web Scraping

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Chat Trigger, HTTP Request, N8N Nodes Aimlapi +1
Web Scraping

This workflow integrates a chatbot frontend with a backend powered by Langflow, a visual low-code AI development tool. The flow is triggered whenever a chat message is received via the n8n chatbot wid

Chat Trigger, HTTP Request
Web Scraping

This n8n workflow enables you to chat with the uncensored Dolphin Mixtral 8x22B large language model through the Novita AI inference. It provides a streamlined process for sending user messages to the

Chat Trigger, HTTP Request