How to Make UGC Video Ads in n8n with the Google Flow API
7 min read • October 3, 2026
Table of contents
- Introduction
- What you need
- How to import the n8n UGC ad template
- The pages, one by one
- How long it takes
- How much does an AI UGC ad cost?
- How to keep the face and voice consistent across clips
- When something goes wrong
- Customize it
- Examples
- Frequently asked questions
- Conclusion
Introduction
A free n8n template makes AI UGC video ads through the useapi.net Google Flow API: one form, up to five products, a consistent Omni 1.1 Flash presenter and voice, and 140 Flow credits for the default ad with four takes of each clip. There is no code to write. You open one form URL and click through it, and every free step has a page to pick or re-roll before the clips spend any credits.
UGC ads are the one-person-talking-to-a-phone videos that fill TikTok, Reels and Shorts. Making them with AI is easy to start and hard to finish, because the presenter’s face drifts, the voice changes from clip to clip, and the product on the table turns into a different product. This workflow is built around those three problems. The face and the voice are saved together as one character, every product gets a four-view reference sheet or your real photo, and every clip is filmed in one scene you picked.
The video model is Omni 1.1 Flash, Google’s audio-native model, so the presenter speaks the lines you write, in the voice you picked, with lip sync, in one generation. If you would rather do it in code, the UGC product video tutorial builds a similar video with plain API calls in first-and-last-frame mode, which pins the set exactly but cannot carry a picked voice.
made with this n8n template, 1080p, 32 seconds
What you need
- An n8n instance. The workflow uses only core n8n nodes, with no community nodes. It was tested on self-hosted n8n 2.41.
- A useapi.net account with an API token. One $15/month subscription covers every useapi.net API, with no per-call surcharge.
- A Google account connected to useapi.net, on a paid Google AI plan. Omni 1.1 Flash video needs a paid plan and spends its Flow credits.
How to import the n8n UGC ad template
- Download
ugc-ad-factory.jsonfrom the example repo, and in n8n choose Workflows → Import from File. - Create a Header Auth credential whose Name is
Authorizationand Value isBearer <your API token>, then select it on every HTTP Request node. - Publish (activate) the workflow and open the URL of the Start form node.
The form is the whole interface. Nothing in the canvas needs editing to make an ad, and the defaults produce a working ad on the first run: a friendly presenter at a bathroom vanity showing a vitamin C serum, with a short intro and a call to action at the end.
The pages, one by one
Setup
The first page asks only for the shape of the ad: the Google account email, where the presenter comes from, how many products (1 to 5), whether to add an intro and a closing clip, vertical 9:16 or horizontal 16:9, and how many takes to film of each clip (1 to 4, default 4). The next page then asks for exactly that many details, with no empty fields.

Details
Here you describe the presenter, the voice, the scene and every clip. Each clip is one sentence of action plus the line in quotes, for example: The presenter picks up the serum, holds it up so the label faces the camera, and says: “This vitamin C serum goes on first every morning.”
Depending on what you chose on the setup page, this page can take photos or an ID instead of descriptions:
- Photos of the presenter. One clear photo is enough, and a second one in three-quarter view saves a step. Google screens real faces, so a photo of a real person may be refused when the video is made.
- A saved character ID from an earlier run on the same Google account. It brings the face and the voice, and skips the next three pages.
- A photo of each product. It is used as it is, or turned into a four-view sheet if you choose that option.

Presenter and second angle
Four presenters are generated from your description. Pick one, or re-roll four new ones with a note such as “older, shorter hair”. The next page makes four three-quarter views of the same face, because a second angle helps the face hold in video. A single uploaded photo starts the workflow at the second-angle page, and two photos skip straight to the voice.


Voice
Four of Google’s preset voices read your sample line, and you play them in the page. Pick one, or ask for four more, optionally with a new delivery note such as “calmer, British accent”. The picked voice and the two angles are saved as one character, and that character is used in every clip, which is what keeps the voice the same across the ad.

Product images
Each product gets four reference sheets, each showing the same product from four angles. Pick one per product, or re-roll any single product while the others keep their picks. An uploaded photo appears as it is, with nothing to choose.

Scene
Four candidates of the presenter with every product in one frame. Every clip is filmed in the scene you pick, so this is where you choose the set, the framing and where each product stands. This page is the last free step, and it shows what the clips will cost before you continue, for example “3 clips × 4 takes ≈ 140 credits”.

Takes
All the takes play in the page, one row per clip. Pick the best take of each clip, or re-roll only the clips you don’t like. If Google refuses a clip, the page shows why and puts the clip’s action in an editable box. In testing, a refused “lifts the shears in front of the chest” went through on the first try as “points at the shears on the table”. Choose 1080p or 720p for the final video.

Your ad
The last page plays the finished ad and links the MP4. The MP4 is joined on request by the workflow’s own download URL, so nothing is stored in n8n, and the clips stay in your Flow account. Your n8n URL must be reachable from the browser you use. If a join between two clips has a pause or clips a word, set how much is cut from the start or end of each clip and re-join, which is free and takes about half a minute. The page also shows the character ID, so the same presenter, with the same face and voice, can front your next ad.

How long it takes
The image pages are quick, and slower when captcha needs retries. The clips take 5 to 15 minutes, and the upscale and join a few more. While a step runs, the button turns into a status panel that says what is being made, how long it usually takes, and how long it has been working. Refreshing the page brings you to the next one when it is ready.

How much does an AI UGC ad cost?
Everything except the video clips is free: the presenters, angles, voices, character, product sheets, scenes, the 1080p upscale and the final join. Each Omni 1.1 Flash take spends Flow credits from your Google AI plan, the same as making it in Flow yourself: 7, 10, 12 or 15 credits for a 4, 6, 8 or 10 second clip at 720p.
The default ad is a 6-second intro, one 10-second product clip and a 6-second closing, which is 35 credits per round of takes and 140 credits with four takes of each clip.
The same ad on the official Gemini API is billed per second of video and per image. Omni 1.1 Flash costs about $0.10 per second of 720p video there, and a Nano Banana Pro image $0.134. The table compares one finished ad with four takes of every clip and one round of images, before any re-rolls, leaving out the flat useapi.net subscription:
| Ad (4 takes per clip) | Official Gemini API | useapi.net, Flow Pro | useapi.net, Flow Ultra |
|---|---|---|---|
| Default: intro 6 s, one product 10 s, closing 6 s | $11.06 | $2.80 | $1.40 |
| Parody above: intro 6 s, three products 10 s each | $17.81 | $4.40 | $2.20 |
| Largest: intro 6 s, five products 10 s each, closing 6 s | $29.43 | $7.60 | $3.80 |
The official column is the video seconds at $0.10 plus the images at $0.134 each (16, 24 and 32 images). The useapi.net columns are the Flow credits at about $0.02 each on Pro and $0.01 on Ultra, with images free. That is about 4 times cheaper on Pro and 8 times cheaper on Ultra, and every re-roll of an image costs nothing instead of $0.134. The per-plan figures come from the Google Flow price comparison.
Re-rolling a clip costs its takes again, and a refused clip costs nothing. The full credit table is on POST /videos.
How to keep the face and voice consistent across clips
- One character holds the face and the voice. It is made from two angles of the presenter plus the voice you picked, through POST /characters.
- Every clip is filmed in reference mode with up to four inputs: the character, the scene you picked, the product handled in that clip (if any), and the voice. In the test ads the voice stayed within the range a single speaker covers from line to line, across every clip.
- Each clip’s action ends with the presenter putting the product back where it was, so the table looks the same at every cut.
- Takes absorb the rest. Reference mode lets the model reinterpret the scene a little, so framing can shift slightly between clips and the occasional take is off. Several takes per clip give you a choice, and picking costs nothing extra.
When something goes wrong
Every API call’s result is sorted into one of three kinds, and each kind is handled differently.
| Kind | Examples | What the workflow does |
|---|---|---|
| Temporary | captcha failures, 429, Google 503 | Retries automatically, up to five times 5 seconds apart, then shows the failure with a re-roll, or a stop page if the character can’t be created. A clip that already went through is never submitted twice |
| Refused | Google’s content filters, such as PUBLIC_ERROR_DANGER_FILTER | Shows the reason and asks you to change the description or the action |
| Dead end | a wrong token, an account that isn’t connected, a plan that can’t use the model | Stops with a page that says what to fix |
The account, its plan and its Flow credits are checked right after the details page, and the credits again just before the clips, so a dead end stops the run before anything is spent.
If upscaling a clip fails, that clip stays 720p and the last page offers to retry just the failed ones, which is free.
Customize it
The Settings node holds the defaults for the details page, the image model (nano-banana-pro) and the number of captcha attempts per request. The clip prompt is in the Clip requests node. Everything the workflow calls is a documented endpoint, so any step can be changed with the Google Flow API reference at hand.
Examples
Both were made with this workflow and are Omni 1.1 Flash output, re-encoded to a smaller size for hosting.
made with this n8n template, 1080p, 32 seconds
coffee, two products, 16:9, 15 s
Frequently asked questions
Do I need to write any code?
No. You import one JSON file, add one credential and open a form. The workflow can be read and changed in n8n like any other, but making an ad never needs it.
Can I use my own product photos?
Yes. Upload a PNG, JPEG or WebP of up to 20 MB on the details page. It is used as it is, or turned into a four-view sheet if the product gets turned around on camera.
Can I use a real person as the presenter?
You can upload photos of a presenter, but Google screens identifiable people, so a real face may be refused when the clips are made. A generated presenter avoids that, and the saved character ID lets you reuse the same one in every ad on the same Google account.
Does the voice stay the same in every clip?
Yes, when the character has a voice, which every character this workflow creates does. The voice you pick is saved in the character together with the face, and every clip is made from that character. Picking from four previews also means you hear the voice before any clip is made.
Can it make square videos?
No. Omni 1.1 Flash makes vertical (9:16) and horizontal (16:9) video, and the form offers those two formats.
How many products can one ad show?
Up to five, each with its own clip, plus the optional intro and closing, so seven clips at most.
Does it work on n8n Cloud?
It uses only core n8n nodes, so it should, but it has only been tested on self-hosted n8n 2.41. The one requirement is that the browser can reach your n8n URL, because the last page plays the ad from the workflow’s own download URL.
How long does one ad take?
The free pages are quick, and every re-roll adds a little. The clips take 5 to 15 minutes, and the upscale and join a few more.
What does an ad cost?
The useapi.net subscription is a flat $15 a month, and the clips spend the Flow credits of your Google AI plan, 7 to 15 per take depending on length. The default ad with four takes per clip is 140 credits. See the cost section.
Conclusion
Visit our Discord Server or
Telegram Channel for any support questions and concerns.
Check our GitHub repo with code examples.