Generate bulk Veo 3 videos from Google Sheets via Vertex AI
š¬ What This Workflow Does
This workflow turns your Google Sheet into a fully automated AI video factory powered by Google Veo 3 via Vertex AI. Simply fill in your prompts, choose your video settings, tick a checkbox ā and walk away. The workflow handles everything: sending the prompt to Veo 3, waiting for the video to generate, downloading it, uploading it to Google Drive, and writing the link back to your sheet automatically.
No manual downloading. No checking APIs. No copy-pasting links. Just tick and go.
Whether you need 5 videos or 500, this workflow runs each one through the same reliable pipeline ā with full error handling so you always know what succeeded and what failed, and exactly why.
š§ Why This Workflow Exists
Google Veo 3 is one of the most powerful AI video generation models in the world ā but the Google Cloud console only lets you generate videos one at a time. If you have a client who needs 50 product videos, or a content team producing videos at scale, doing it manually through the UI is completely impractical.
This workflow solves that. It gives you a spreadsheet-driven production pipeline for Veo 3 ā where each row is one video job, fully configurable with its own prompt, resolution, aspect ratio, and duration.
ā What You Get
ā Checkbox trigger ā tick a row in Google Sheets to start generation ā Per-row settings ā each video can have its own resolution, aspect ratio, and duration ā Smart polling loop ā automatically checks every 60 seconds until the video is ready ā Google Drive upload ā finished videos land in your Drive folder automatically ā Sheet auto-update ā Drive link written back to the exact row when done ā Full error handling ā content blocks and API errors are logged to the sheet with the exact reason ā No wasted credits ā validation gate blocks empty or incomplete rows before any API call is made
šļø Google Sheet Template
Use this ready-made Google Sheet template to get started immediately: š Click here to open the Google Sheet Template (File ā Make a copy)
Your sheet must have these columns in this exact order:
| Column | Description | |---|---| | prompt | Your video description ā what Veo 3 should generate | | resolution | Video quality: 720p or 1080p | | aspectRatio | 16:9 for landscape, 9:16 for portrait/vertical | | durationSeconds | Video length: 4, 6, or 8 seconds only | | send_for_generation | Checkbox column ā tick this to trigger the workflow | | video_drive_link | Auto-filled ā Drive link on success, error reason on failure | | row_number | Auto-filled by Apps Script ā do not edit manually |
āļø Full Setup Guide ā Step by Step
STEP 1 ā Create a Google Cloud Project & Enable Vertex AI
Go to console.cloud.google.com Click the project dropdown at the top ā New Project Give it a name (e.g. veo-automation) ā click Create Once created, make sure this project is selected In the left menu go to APIs & Services ā Library Search for Vertex AI API ā click it ā click Enable Now go to Billing in the left menu Link a billing account to your project ā Vertex AI requires billing to be enabled even if you're within free tier limits
STEP 2 ā Get Your Vertex AI API Key
go on this url https://console.cloud.google.com/vertex-ai/studio in the vertex ai studio create the api key Save the key somewhere safe ā you will paste it into the Data Collection node in n8n
STEP 3 ā Get Your Project ID
In Google Cloud Console, look at the top bar ā your Project ID is shown next to the project name It looks like: project-xxxxxxx-xxxx-xxxx-ada or similar Copy this ā you will paste it into the Data Collection node in n8n
STEP 4 ā Set Up n8n Credentials
In n8n you need two Google credential connections:
Google Sheets OAuth2 In n8n go to Settings ā Credentials ā New Search for Google Sheets OAuth2 API Follow the OAuth flow to connect your Google account This credential is used by the Update video Link in sheet and Update Error in Sheet nodes
Google Drive OAuth2 Same process ā search for Google Drive OAuth2 API Connect the same or a different Google account This credential is used by the Upload Video to Drive node
STEP 5 ā Configure the Data Collection Node
Open the Data Collection node in n8n and update these values:
| Field | What to put | |---|---| | project_id | Your Google Cloud Project ID from Step 3 | | vertex_api | Your Vertex AI API Key from Step 2 | | veo_3_model | veo-3.0-generate-preview (or newer model if available) | | api_endpoint | Leave as us-central1-aiplatform.googleapis.com | | region | Leave as us-central1 |
STEP 6 ā Set Up the Google Drive Folder
Go to drive.google.com Create a new folder where your videos will be saved (e.g. Veo Generated Videos) Open the folder ā copy the folder ID from the URL: URL looks like: https://drive.google.com/drive/folders/xxxxxxxxxxxxxx-xxxxxxxxxxx The folder ID is the last part: xxxxxxxxx-xxxxxxxxx Paste this into the Upload Video to Drive node ā Folder ID field
STEP 7 ā Connect Your Google Sheet
Open the Update video Link in sheet node Click the Document field ā select your copy of the Google Sheet template Make sure the sheet tab selected is VEO_3 Do the same in the Update Error in Sheet node
Here is the full rewritten section in clean markdown without any code blocks around the URL:
STEP 8 ā Set Up the Apps Script Webhook Trigger
This is what connects your Google Sheet checkbox to n8n. Without this, ticking the checkbox does nothing.
š Download the Apps Script file here
How to install it:
Open your Google Sheet Click Extensions ā Apps Script Delete any existing code in the editor Paste the entire Apps Script code provided with this template Find the url field in the config block and replace YOUR_N8N_WEBHOOK_URL_HERE with your n8n webhook URL ā found in the Google Sheet Trigger node in n8n. Use the Production URL, not the test URL. Click Save (floppy disk icon at the top)
Now add the installable trigger ā this step is critical:
In Apps Script, click the clock icon on the left sidebar (Triggers) Click + Add Trigger in the bottom right corner Set these exact options: Choose which function to run: handleEdit Choose which deployment to run: Head Select event source: From spreadsheet Select event type: On edit Click Save Google will ask you to authorise the script ā click through and allow all permissions Go back to your sheet and tick a checkbox in column E to test ā open Apps Script Executions tab to confirm it fired successfully
ā ļø Why the installable trigger is required: The basic onEdit function that Google runs automatically does NOT have permission to make external HTTP requests. The installable trigger runs under your Google account permissions and can call external URLs like your n8n webhook. This is a Google limitation ā not an n8n one.
STEP 9 ā Activate the Workflow in n8n
In n8n open the workflow Toggle the workflow to Active using the switch in the top right corner Copy the Production webhook URL from the Google Sheet Trigger node Paste it into your Apps Script config in Step 8 where it says YOUR_N8N_WEBHOOK_URL_HERE
š How the Workflow Runs ā Full Flow Explained
š How the Workflow Runs ā Full Flow Explained
Google Sheet checkbox ticked ā Apps Script fires webhook ā n8n ā Validation Gate (If node) ā checks prompt, resolution, aspectRatio are all filled ā if anything missing ā workflow stops, no API call made ā Data Collection node ā bundles all settings into one clean item ā Vertex AI ā Send for Generation ā POST to predictLongRunning endpoint ā returns an operation name (like a tracking number) ā Wait 60 seconds ā Fetch / Check Video ā POST to fetchPredictOperation ā checks if done: true ā IF raiMediaFilteredCount === 0 ā TRUE: video exists ā Convert Base64 to MP4 file ā Upload to Google Drive ā Write Drive link to sheet ā ā FALSE: check for error ā IF raiMediaFilteredCount > 0 OR error exists ā Write error reason to sheet ā ā ELSE: still processing ā Wait 60 seconds ā check again ā³
āļø Video Settings Reference Resolution
720p ā standard quality, faster, lower cost 1080p ā high quality, uses more credits
Aspect Ratio
16:9 ā landscape (YouTube, ads, presentations) 9:16 ā vertical (Instagram Reels, TikTok, YouTube Shorts)
Duration
4, 6, or 8 seconds ā Veo 3 only accepts these exact values, no other numbers
ā Error Handling ā What Gets Logged
If a video fails, the exact reason is written to the video_drive_link column:
Prompt violates Veo safety policy,| Full AI reason from Google ||
This means your client can see exactly which rows failed and why ā without needing to check any logs.
š” Tips for Best Results
Keep prompts on a single line ā multi-line prompts are handled automatically by the workflow Use descriptive cinematic prompts: "Slow motion close-up of ocean waves at sunset, golden hour, 4K" Start with 720p to test ā switch to 1080p for final production runs Use 9:16 for Instagram Reels, TikTok, YouTube Shorts Use 16:9 for YouTube, presentations, ads
š§ Requirements
n8n (self-hosted or cloud) ā version 1.0+ Google Cloud account with billing enabled Vertex AI API enabled on your project Google Sheets + Google Drive OAuth credentials in n8n Google Apps Script access on your sheet
Related Templates
Automate Daily Keyword Research with Google Sheets, Suggest API & Custom Search
Who's it for This workflow is perfect for SEO specialists, marketers, bloggers, and content creators who want to automa...
USDT And TRC20 Wallet Tracker API Workflow for n8n
Overview This n8n workflow is specifically designed to monitor USDT TRC20 transactions within a specified wallet. It u...
Add product ideas to Google Sheets via a Slack
Use Case This workflow is a slight variation of a workflow we're using at n8n. In most companies, employees have a lot o...
š Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments