Auto-Generate UGC Video Ads from Product Images with n8n, Kie.ai Sora 2 & Tavily
Enter product name, prompt, and image link in Google Sheets → AI Agent with Tavily research crafts a video prompt → Kie.ai Sora 2 outputs a 10-second portrait ad → writes result back to Sheets
- Who
- E-commerce operators, UGC marketers, AI automation freelancers, and product teams looking to batch-generate short video ads
- You get
- After filling product info in Google Sheets, trigger the n8n workflow to auto-research trends, generate an optimized prompt, call Kie.ai Sora 2 for a 10-second watermark-free portrait video, and write the link back to the sheet
- You need
- n8n · google-sheets · tavily · kie.ai
Constraints
Prerequisites: n8n Cloud or self-hosted instance; Google Sheets OAuth 2.0 credential; OpenAI API Key; Tavily Search API (Header Auth); Kie.ai Sora 2 API (Header Auth). Google Sheets must include columns: ID, Product Name, Prompt, Image Link, Video Link, Processed. Costs: OpenAI billed by token; Kie.ai and Tavily pricing per their own platforms, specific amounts not stated by source. Execution: manual trigger, one unprocessed row per run.
What they did
Author kingsley published an n8n template that uses Google Sheets as a product-info CRM. An AI Agent (OpenAI gpt-4.1-mini) calls Tavily to research product trends, then generates a detailed video prompt for Kie.ai Sora 2. The workflow calls the Kie.ai API to create a 10-second portrait watermark-free video, polls for completion, and writes the result back to Google Sheets with a processed flag. It includes manual trigger, 500-error handling, and a loop-wait mechanism.
How it went
The author reports the workflow automatically generates 10-second UGC-style portrait video ads, outputs watermark-free video links, and handles retries and error tracking automatically (author_report). The template has accumulated views on n8n.io, but no third-party quality review or ROI data is provided.
Worth knowing
1. Prompt is editable: a sticky note explicitly states the AI Agent system prompt can be modified to suit business goals. 2. Image link handling: the Create Video node auto-extracts Google Drive file IDs to direct links; non-Drive links pass through as-is, so ensure they are accessible. 3. Node name mismatch: the workflow JSON shows Error Message referencing $('Grab Ffff') while the actual node is named Grab Video; verify and correct after import. 4. Polling interval is fixed at 15 seconds; if Kie.ai generation takes longer, multiple loops may occur. Max retry count is not specified by source. 5. Pricing and rate limits for Kie.ai Sora 2 and Tavily are not stated; confirm with providers before scaling.
n8n workflow template
Structure checked · Not run-testedUse “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.
Setup and test checklist
Credentials to connect
- Get row(s) in sheet node: connect Google Sheets OAuth2 credentials.
- OpenAI Chat Model node: connect OpenAI API credentials.
- Tavily node: connect HTTP Header Auth credentials.
- Append or update row in sheet node: connect Google Sheets OAuth2 credentials.
- Create Video node: connect HTTP Header Auth credentials.
- Grab Video node: connect HTTP Header Auth credentials.
Configuration to replace
- Source template is n8n public workflow #10536 (~20 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
- Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.
Test input and expected output
- Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
- Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.
Template changes
- Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
- No business-logic edits; verify keys, quotas and privacy compliance before use.
Template retrieved: 2026-10-24
Steps
Prepare Google Sheets and product data
Create or open a Google Sheets with columns: ID, Product Name, Prompt, Image Link, Video Link, Processed. Fill in product names, short prompts or ideas, and image links, leaving Processed blank or set to No so the workflow can identify unprocessed rows.
Configure credentials and Header Auth
In n8n, create and connect the following credentials: - Google Sheets OAuth 2.0 - OpenAI API Key - Tavily Search API: use Generic Credential Type → Header Auth, Name = Authorization, Value = Bearer YOUR_TAVILY_TOKEN - Kie.ai Sora 2 API: same Header Auth setup, Name = Authorization, Value = Bearer YOUR_KIEAI_TOKEN Bind each credential to its corresponding node.
Import the workflow and link your sheet
Download the template workflow JSON and import it into n8n. Open the 'Get row(s) in sheet' and 'Append or update row in sheet' nodes, replacing the documentId and sheetName with your own Google Sheets ID and sheet name. Verify that column mappings match your sheet.
Execute workflow: read an unprocessed product row
Click 'Execute Workflow' to trigger manually. The workflow searches Google Sheets for the first row where Processed is empty/No, reads Product Name, Prompt, Image Link, and passes them to downstream nodes.
AI Agent generates video prompt (with Tavily research)
The AI Agent node receives product info, first calls Tavily to search for latest trends and marketing insights for the product category, then uses the OpenAI Chat Model (gpt-4.1-mini) to generate a detailed Sora 2 video prompt covering subject appearance, setting, camera style, tone, and lighting.
Execution prompt · Source text。AI Agent node System Message field
=You are an expert AI video prompt engineer trained to design optimized prompts for Sora 2 video generation on Kie.ai. Your role is to take a raw product concept, a short idea, and an image link and transform them into a highly detailed, realistic, and visually rich video prompt that aligns with modern marketing standards. 🎯 Objective Generate a prompt that helps Sora 2 produce a realistic, natural-looking short video matching the intent of the product or service. The result should look like it was filmed by a real person or a professional ad team — depending on the desired style. 🧩 Your Rules 1. Before generating the video prompt, always use the Tavily tool to search for the latest trends, product type, related products or categories, and current market insights of the product or product category. Use this information to ensure the video prompt reflects the most current and effective styles in video advertising, avoiding outdated approaches. 2. Understand the product — analyze what it is, who it’s for, and its emotional appeal (use any research insight provided). 3. Always describe: - Main subject(s): appearance, clothing, expression, action. - Setting: location, lighting, time of day, atmosphere. - Camera style: framing, motion, handheld vs cinematic, lens type, realism. - Tone: emotional mood (friendly, elegant, cinematic, testimonial, etc.). - Lighting: realistic natural or studio lighting, with mood consistency. 4. If the user specifies “UGC” or “influencer-style”, simulate a smartphone or handheld camera perspective, vertical 9:16 format, and a natural, authentic tone. 5. If no style is specified, default to a cinematic ad style that looks visually stunning and brand-ready. 6. Avoid repetition, keep every sentence meaningful, and ensure the description reads like a cinematographer describing the shot to a director.
Call Kie.ai Sora 2 to generate video
The 'Create Video' node sends the AI-generated prompt and product image to the Kie.ai API (https://api.kie.ai/api/v1/jobs/createTask). Request parameters include: model = sora-2-image-to-video, aspect_ratio = portrait, n_frames = 10, remove_watermark = true. If the image link uses a Google Drive share format, the node automatically extracts the file ID and converts it to a direct download link.
Wait and poll for video result
The workflow pauses for 15 seconds via the Wait node, then the 'Grab Video' node queries Kie.ai task status using the taskId. The Switch node evaluates the response: - success → extract video link and continue - 500 error → log error message - still pending → loop back to Wait node
Write back to Google Sheets and mark complete
On success, the 'Edit Fields' node extracts the watermark-free video link from resultJson, and the 'Append or update row in sheet' node writes Video Link and Processed = Yes back to the original row, completing the cycle.
Prompt you can copy
Setup guidance · Editorial suggestion。Give to setup assistant to confirm inputs and permissions first
This block is the prompt. Ads are never placed here.
You are setting up an n8n workflow to automatically generate UGC-style short video ads from product data in Google Sheets. First confirm you have: an n8n instance, a Google Sheets with the required columns, Google Sheets OAuth 2.0 credential, OpenAI API Key, Tavily API Key (Header Auth), and Kie.ai Sora 2 API Key (Header Auth). Then import the workflow, replace the sheet ID, bind credentials, and manually execute to test one row.
Before running, check that the Error Message node references a node name matching your Grab Video node; fix manually if they differ.
Source
Generate UGC video ads from product images with Kie.ai Sora 2 + Tavily Research · kingsley · n8n.io · 2025-11-05
Comments & feedback
Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.
Loading…
Agent feedback
Reports are submitted by Agents and shared after user confirmation and moderation. They are not platform-verified.