Mindket

Selfie-style UGC product videos from a Google Sheets queue

Newversion 1 · updated

Overview

An n8n workflow that turns the next Ready row of a Google Sheet into a selfie-style product video once a day. An OpenAI model writes the prompt, Kie.ai renders it with Veo 3.1, and the link lands in the row.

Selfie-style UGC product videos from a Google Sheets queue is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file, the same steps
  • TikTok, Reels and Shorts: every branch asks for a vertical 9:16 clip
  • A drive or a chat app: add a node after each of the three update nodes to save the clip or send it on

Platform

Connects 3 apps

How it works

Trigger

Daily schedule

It starts once a day from Schedule Trigger and reads the first row of Sheet1 whose Status is Ready, with:

  • A product, its photo address and its features
  • The buyer it speaks to, in ICP, and a setting
  • A model: Veo 3.1, Nano + Veo 3.1 or Sora 2

Actions

  1. Reads the first Ready row, and Switch picks a branch from its Model column
  2. An agent on gpt-5-mini writes the video prompt from the product, buyer, features and setting
  3. On Nano + Veo 3.1, Kie.ai first edits the photo into a still of someone holding the product
  4. Kie.ai renders a vertical clip, and the workflow asks every few seconds until it is ready
  5. The row is set to Finished, with the video’s address

Result

A vertical selfie-style product video, its link written into the product’s row

Integrations

What you need before you start.

Google Sheets

Spreadsheet

Holds the product queue and takes back each finished video’s address and status.

NeedsA Google account to sign in with, and a sheet laid out as the setup shows

OpenAI

Language and vision models

Runs gpt-5-mini for the four prompt writers, and gpt-5.6-sol to describe the made picture.

NeedsOpenAI API key

Kie.ai

Image and video generation

Edits the product photo with Nano Banana and renders the clip with Veo 3.1 Fast, or with Sora 2 on rows that ask for it.

NeedsKie.ai API key, in a Header Auth credential

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
27 steps, starting on a schedule
AI
5 steps call an AI model: Veo Video Prompt1, Veo Image Prompt, Analyze image, Veo Video Prompt and Sora Video Prompt
Sign-ins
Signs in to: Google Sheets, Kie.ai and OpenAI
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 8 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow turns rows of a Google Sheet into short selfie-style product videos, the kind a happy customer might post. Once a day it takes the first row marked Ready. An OpenAI model writes a video prompt from the product, its buyer, its features and a setting. Kie.ai renders the clip, and its address goes back into the row. Thirty-one nodes run it, in three branches you pick row by row.

Who it suits

Online shops and small brands that want many short ad clips without hiring creators, and the agencies that make those clips for them. It fits a team that already keeps its products in a sheet. Skip it if you need a real customer on camera. Everyone in these clips is generated.

Who uses it, and how
IndustryWho uses itHow they use itExample
Beauty and skincareShop ownersQueue one row per product and let a clip arrive each morningA skincare shop lists ten serums and gets one selfie clip a day.
Consumer gadgetsBrand marketersTry one product with different buyers in ICPA marketer makes one row for students and one for commuters, both for the same earbuds.
Marketing agenciesContent producersKeep one sheet per client and review each clip before it goes outAn agency fills a client’s sheet on Monday and has drafts through the week.
Food and drinkSocial media managersPick Nano + Veo 3.1 when the product photo is a plain packshotA coffee brand turns a white-background bag photo into a kitchen scene first.

You need some n8n: three credentials, one of them a header for Kie.ai, and a sheet with nine columns. Its author puts setup at about 13 minutes.

Where to use it

Any n8n that can reach Google, OpenAI and Kie.ai will run it. The videos stay at Kie.ai’s addresses, and the sheet keeps the list.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file, the same steps
  • TikTok, Reels and Shorts: every branch asks for a vertical 9:16 clip
  • A drive or a chat app: add a node after each of the three update nodes to save the clip or send it on

Setup

Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Make the sheet first, since four nodes point at it.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
GoogleAn account that can edit the sheet, for a Google Sheets OAuth2 credential
OpenAIAn API key for the prompt writers and the picture description
Kie.aiAn account and its API key, for every picture and video
Product photosA public address for each one, since Kie.ai fetches them itself
The sheet’s columns, in a tab named Sheet1
ColumnWhat goes in it
NoA number unique to the row, which the update nodes match on
Product and Product PhotoThe name and the photo’s public address
ICP and Product FeaturesThe buyer the clip speaks to and the points to praise
Video SettingWhere it is filmed, such as a sunny kitchen
ModelVeo 3.1, Nano + Veo 3.1 or Sora 2, spelled exactly so
Status and Finished VideoReady for a row to make. The workflow writes Finished and the address
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Make the sheet, then copy its ID: the long part of its address between /d/ and /edit.
  3. Add a Google Sheets OAuth2 credential. In the four Google Sheets nodes, select it and replace YOUR_SHEET_ID with the ID.
  4. Add an OpenAI credential and select it in Analyze image and OpenAI Chat Model.
  5. Add a Header Auth credential for Kie.ai named Authorization, its value Bearer, a space and your key. Select it in the eight Kie.ai nodes.
  6. Set the hour in Schedule Trigger, add one row marked Ready and press Execute workflow.
  7. Press Publish once that row comes back Finished.

How to use it

Add a row for each video you want, choose its Model and set Status to Ready. Each run makes one video, from the first Ready row. A daily schedule gives you one clip a day. When it is done, the row says Finished and Finished Video holds the link to download it from.

What to change for a different result
To changeWhere
Who speaks and what they sayThe system message of the prompt writer for that branch
FrameaspectRatio in the Veo nodes, aspect_ratio in Sora Video, image_size in Nano Image
Video qualitymodel in Veo Video and Veo Video1, set to veo3_fast
How often it runsSchedule Trigger, once a day at midnight as imported
Chat modelOpenAI Chat Model, the gpt-5-mini that all four prompt writers share

Example

A row for a steel water bottle, sent down the branch that makes a picture first.

A row in Sheet1
ColumnValue
No7
ProductTrailhead steel bottle
Product Photohttps://shop.example/bottle.jpg
ICPHikers in their twenties who care about their gear
Product FeaturesKeeps water cold all day, fits a bike cage
Video SettingA rocky trail at sunrise
ModelNano + Veo 3.1
StatusReady

Nano Image first makes a still of a hiker holding the bottle on the trail. Analyze image describes that picture. From the row and the description, Veo Video Prompt writes an eight-second scene in which the hiker says a line or two about the bottle. When Veo is done, row 7 reads Finished, with the clip’s address beside it.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A Switch node sends each row down one of several paths, here one for each value of Model. Start with a Veo 3.1 row, the shortest path. Then open the run under Executions to read the prompt the agent wrote and what Kie.ai answered.

For experts. Each branch polls Kie.ai in its own loop, and the loops differ.

The three branches
BranchCallsWhat to know
Veo 3.1Veo Video1, then Get Veo Video1 every 10 secondsKie.ai’s older Veo endpoints. If3 waits until data.response exists
Nano + Veo 3.1Nano Image and Get Nano Image every 5 seconds, then Veo Video and Get Veo VideoThe only branch that runs Analyze image, now on gpt-5.6-sol
Sora 2Sora Video, then Get Sora Video every 10 secondsIf2 waits until data.state reads success

The four request bodies strip line breaks from the prompt before it goes into the JSON. The backslashes that do this had been lost from the original copy, and they are back.

Good to know

Sora 2 is gone, one model is close to shutdown, and a failed task never ends its loop.

  • Sora 2: OpenAI’s deprecations page, read on 2 November 2026, lists sora-2 as removed on 24 September 2026 with no replacement. Kie.ai’s documentation lists no Sora model, so expect Sora 2 rows to fail
  • `gpt-5-mini`: listed for shutdown on 11 December 2026, with gpt-5.6-terra as its replacement
  • A model already swapped: Analyze image named chatgpt-4o-latest, shut down on 17 February 2026, and now names gpt-5.6-sol
  • Failed tasks: no loop has a way out, so stop the run under Executions. The row stays Ready
  • A misspelled `Model`: nothing runs, and the row stays first in line, holding up the rows after it
  • Billing: OpenAI bills the prompts and the description, and Kie.ai takes credits for each picture and video
  • Your data: the product details go to OpenAI, and the photo’s address and the prompts to Kie.ai
  • Made-up speakers: check your ad platform’s rules on AI-made testimonials before you run a clip as an ad
  • Credentials: the JSON holds none, and nothing from its author’s sheet

README and files

README

Selfie-style UGC product videos from a Google Sheets queue

An n8n workflow that makes short selfie-style product videos, the kind a customer might film of something they bought.
Once a day it takes the next product marked Ready in a Google Sheet, has an OpenAI model write the video prompt, and sends
it to Kie.ai for a Veo or Sora video. The finished video's address goes back into the row.

What is inside

  • workflow.json: the workflow as n8n exports it, 31 nodes, three of them sticky notes that label the branches. It holds
    no credential and nothing from its author's sheet.
  • README.md: these notes.

What we changed from the original copy

  • The author's sheet is gone. The four Google Sheets nodes ask for YOUR_SHEET_ID and find the tab by its name,
    Sheet1.
  • The original copy had lost the backslashes in the four request bodies that clean up the prompt. They read
    .replace(/r?n|r/g, ' '), which would have turned every letter n and r of the prompt into a space. They are back to
    .replace(/\r?\n|\r/g, ' '), which turns line breaks into spaces as intended.
  • Analyze image named chatgpt-4o-latest. OpenAI's deprecations page, read on 2 November 2026, lists it as shut down
    on 17 February 2026, and its listed replacement, gpt-5.1-chat-latest, as shut down on 23 July 2026 in favour of
    gpt-5.6-sol. The node now names gpt-5.6-sol, which reads images.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • A Google account and a Google Sheet laid out as below.
  • An OpenAI API key.
  • A Kie.ai account and its API key.
  • A public address for each product photo, such as a link from your shop or an image host. Kie.ai fetches the photo
    itself.

The sheet

One tab, Sheet1, with these headers in row 1:

| Column | What goes in it |
|---|---|
| No | A number unique to the row. The update nodes find the row by it |
| Product | The product's name |
| Product Photo | The photo's public address |
| ICP | The buyer the video speaks to, such as busy parents in their thirties |
| Product Features | The points the speaker can praise |
| Video Setting | Where the clip is filmed, such as a sunny kitchen |
| Model | Veo 3.1, Nano + Veo 3.1 or Sora 2, spelled exactly so |
| Status | Ready for a row to make. The workflow writes Finished |
| Finished Video | Left empty. The workflow writes the video's address |

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Make the sheet, then copy its ID: the long part of its address between /d/ and /edit.
  3. Add a Google Sheets OAuth2 credential. In Get row(s) in sheet, Update row in sheet, Update row in sheet1 and
    Update row in sheet2, select it and replace YOUR_SHEET_ID with the ID.
  4. Add an OpenAI credential and select it in Analyze image and OpenAI Chat Model.
  5. Add a Header Auth credential for Kie.ai: name Authorization, value Bearer followed by a space and your key. Select it
    in the eight Kie.ai nodes: Nano Image, Get Nano Image, Veo Video, Get Veo Video, Veo Video1,
    Get Veo Video1, Sora Video and Get Sora Video.
  6. Open Schedule Trigger. The file leaves it on n8n's default, once a day at midnight in the workflow's time zone. Set
    the hour you want.
  7. Add one row with Status set to Ready, then press Execute workflow to try it.
  8. Press Publish when the test row comes back Finished.

How a run goes

  1. Schedule Trigger starts the run, and Get row(s) in sheet reads the first row whose Status is Ready. Only that
    one row is made in a run.
  2. Switch reads Model and picks one of three branches.
  3. Veo 3.1: Veo Video Prompt1 writes a prompt for an eight-second selfie video, and Veo Video1 sends it to Kie.ai's
    veo3_fast model with the product photo, in 9:16.
  4. Nano + Veo 3.1: Veo Image Prompt writes a prompt for a still of a person holding the product. With it, Nano Image
    has Kie.ai's google/nano-banana-edit make that picture from the product photo. Then Analyze image describes the
    picture, and Veo Video Prompt writes the video prompt from the row and the description. Last, Veo Video sends it to
    the same Veo model with the new picture.
  5. Sora 2: Sora Video Prompt writes a prompt for a ten-second video, and Sora Video sends it to Kie.ai's
    sora-2-image-to-video with the product photo, portrait, watermark removal on.
  6. Each branch asks Kie.ai for its task again and again until the result is there: every 5 seconds for the picture and
    every 10 seconds for a video.
  7. The branch's update node finds the row by No, sets Status to Finished and puts the video's address in
    Finished Video.

The four prompt writers share one model, gpt-5-mini in OpenAI Chat Model.

Change the look

  • The speaker, the tone and the length of the line: the system message of each prompt writer. The three video writers
    ask for a casual, handheld selfie clip in 9:16 with no phone in the shot and one or two spoken sentences. The image
    writer, Veo Image Prompt, asks for the product in someone's hand, left exactly as in the photo.
  • The frame: aspectRatio in Veo Video and Veo Video1, aspect_ratio in Sora Video, image_size in Nano Image.
  • Quality: model in the two Veo nodes. veo3_fast is Kie.ai's faster Veo 3.1 tier, and its full tier is veo3.
  • When it runs: Schedule Trigger.
  • More data in the prompts: add a column and put it in the text of the prompt writer that should read it.

Good to know

  • Sora 2: OpenAI's deprecations page also lists sora-2 and its Videos API as removed on 24 September 2026, with no
    replacement. Kie.ai's documentation index, read the same day, lists no Sora model. Expect a
    Sora 2 row to fail at Sora Video, and use one of the two Veo values.
  • gpt-5-mini: OpenAI's page lists it for shutdown on 11 December 2026, with gpt-5.6-terra as the replacement. Pick
    that in OpenAI Chat Model before then.
  • Kie.ai's current documentation describes a newer Veo call through
    /api/v1/jobs/createTask. The /api/v1/veo/generate and /api/v1/veo/record-info calls this file uses are filed under
    its older version, so check them if the Veo branches stop answering.
  • No loop has a way out for a failed task. A picture or video that fails is asked about every few seconds until you stop
    the run under Executions, and its row stays Ready.
  • A Model value that none of the three spellings matches leaves the run with nothing to do. That row stays Ready and
    first in line, so the rows after it wait until you fix it.
  • The status changes only at the end. If you schedule runs closer together than a video takes, a second run can pick the
    same row while the first is still rendering.
  • Sora Video adds two stray closing braces after its prompt expression, so the prompt it sends ends in }}.
  • OpenAI bills the prompt writers and the image description. Kie.ai takes credits for each picture and video.
  • The product name, buyer, features and setting go to OpenAI, and so does the made picture in the Nano branch. The
    photo's address and the prompts go to Kie.ai.
  • The person in each clip is generated and praises the product as if they used it. Check your ad platform's rules and the
    advertising law where you sell before you run one as an ad.
Files
README.md  7 KB
workflow.json  51 KB

2 files, 58 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Marketing & SEO

See all in Marketing & SEO

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New