All posts
n8nUGCAI videoautomationfal.ai

How I Automated UGC Ads With AI

Renato Dinis

UGC ads are expensive to produce. You need a creator, product samples, filming, editing, licensing. AI generates the same format for a few dollars per video. This workflow does it from a spreadsheet row.

You enter product info in a Google Sheet. The workflow generates the product image with Nano Banana Pro, builds a UGC-style prompt, generates the video with your choice of Kling 2.6, Veo 3.1, or Veo 3.1 Fast, and writes the results back to the sheet. You're done.

The Google Sheet structure

Each row is one video job:

Product Name Image URL Features Target Audience Video Description Model Status Image Result Video Result
Crossbody Bag [url] compact, lightweight... women 18-30 woman swings bag over shoulder... kling_2.6

The last three columns (Status, Image Result, Video Result) get filled in by the workflow. Everything else is your input.

The workflow nodes

flowchart TD
  GS[Google Sheet\nrow in_queue] --> AI1[Generate image\nprompt via GPT-4o mini]
  AI1 --> IMG[fal.ai\nNano Banana Pro\nproduct image]
  IMG --> RT{Model\nrouter}
  RT -->|kling_2.6| V1[Kling API]
  RT -->|veo_3.1| V2[Veo API]
  RT -->|veo_fast| V3[Veo Fast API]
  V1 & V2 & V3 --> POLL[Poll until\ncompleted]
  POLL --> SAVE[Write URLs\nback to Sheet]

1. Schedule trigger

Runs on a schedule. Swap this for a webhook or manual trigger if you prefer on-demand runs.

2. Config node

Constants that don't change per product:

  • Aspect ratio: 9:16
  • Kling video duration
  • Veo video duration
  • Negative prompt: "blur, distort, low quality"
  • Video resolution: 1080p

3. Get new product

Reads the first Google Sheets row where Status is "in_queue." This keeps the workflow from reprocessing finished jobs.

4. Generate image prompt

An AI agent (GPT-4o mini) receives the product name and video description and generates a detailed prompt for Nano Banana Pro. The system message specifies the UGC photography style. Structured output returns a single JSON key: prompt.

5. Generate product image with Nano Banana Pro

HTTP POST to the fal.ai API with:

  • The generated prompt
  • Aspect ratio from config (9:16)
  • Your product image URL
  • Resolution: 1k

To get your fal.ai API key: go to your fal.ai dashboard, Manage API Keys, Add Key. Select API scope. Copy the key. In n8n, use Header Auth type with the header name Authorization and value Key YOUR_KEY.

A wait loop polls fal.ai every few seconds until the image status becomes "completed," then returns the image URL.

6. Model router

A Switch node checks the model column from the Google Sheet row. Three paths:

  • Kling 2.6 → video prompt node A + Kling API
  • Veo 3.1 → video prompt node B + Veo API
  • Veo 3.1 Fast → video prompt node C + Veo Fast API

7. Generate video prompt

Another AI agent, same model (GPT-4o mini). This time the system prompt targets UGC video generation specifically: first-person voice, authentic delivery, lifestyle framing. Receives product name, features, target audience, and video description. Returns a JSON with one key: prompt.

8. Send video generation request

HTTP POST to fal.ai with the relevant endpoint per model. Common inputs across models:

  • prompt: the generated video prompt
  • image_url: the product image from Step 5
  • aspect_ratio: from config
  • duration: model-specific, from config
  • resolution: from config

The endpoints differ per model. Find them in the fal.ai API documentation under each model's section.

9. Wait for video completion

Same polling loop as the image step. Get status, route on result: if "completed" continue; if "in_progress" or "in_queue" wait 10 seconds and check again.

10. Save results to Google Sheet

Update the row: Status = "completed", Image Result = image URL, Video Result = video URL.

Real results comparison

Crossbody bag:

  • Kling 2.6: Natural delivery, slight hallucination on bag details
  • Veo 3.1: Cleaner product representation, more cinematic feel
  • Veo 3.1 Fast: Similar to Veo 3.1, generated 13 seconds faster

Vitamin C serum:

  • All three models produced authentic first-person UGC-style delivery
  • Product details (dropper, texture) rendered consistently

Cost per video

All three models use the same Nano Banana Pro image generation at $0.15 per image.

Video generation costs per model:

  • Veo 3.1: $3.20
  • Kling 2.6: $1.40
  • Veo 3.1 Fast: $1.20

Total cost per complete UGC ad video: $1.35 (Veo 3.1 Fast) to $3.35 (Veo 3.1).

For most products, Veo 3.1 Fast hits the best balance of quality and cost. The quality difference over Kling 2.6 is noticeable, and the price difference from Veo 3.1 is significant.

Getting the workflow

The full n8n workflow file and the Google Sheet template are linked in the video description. Import the workflow, update the config node, connect your credentials, and you're generating UGC ads in an afternoon.


If you want this kind of content automation built for your brand or agency, get in touch. We design and build AI UGC ad pipelines for production use.

Need this built for your business?

Atuals builds custom AI agents and workflows. Drop us a note — we reply within 24 hours with an honest take on whether we can help.


Atualsatuals
© 2026 Atuals · AI automation agency