π¬ Create UGC product ads from Google Sheets with Gemini, Nano Banana, Veo and PostWire
β‘ 1 views Β· π¬ Content Creation & Video
π‘ Pro Tip β Since TikTok doesnβt have a public API, getting data usually means fragile HTTP scraping. ScraperNode is a community node that gives you clean JSON for TikTok profiles, videos, and comments β drop it into your workflow and skip the parsing.
Description
Quick Overview
This workflow runs daily, pulls the next βreadyβ product from Google Sheets, uses Google Gemini (Nano Banana image edit and Veo 3.1 video generation) to create UGC-style ad assets and copy, publishes them to Instagram/Facebook/TikTok/Reels/Shorts via PostWire, and logs results back to the sheet.
How it works
- Runs every day at 10:00.
- Reads Google Sheets for the first row with status set to ready and a valid photo_url, then marks it as generating to claim it.
- Uses Google Gemini to analyze the product photo and return a JSON βad planβ containing a photo edit instruction, a Veo video prompt, and captions/titles for each platform.
- Downloads the product photo, uses Gemini (Nano Banana) to generate a creator-style selfie image edit, and publishes the image to Instagram and Facebook through PostWire.
- Uses Gemini (Veo 3.1) to generate an 8-second 9:16 selfie video and publishes it to TikTok, Instagram (Reels), and YouTube (Shorts) through PostWire.
- Checks whether all publishes succeeded and either writes the published links and posted status to Google Sheets or logs an error note and emails the fix instructions via Gmail.
Setup
- Create and connect a Google Sheets spreadsheet (with columns like product, photo_url, benefit, audience, status, posted_at, links, and note) and set the document ID and sheet name in all Google Sheets nodes.
- Add Google Gemini credentials for the Gemini analyze, image edit (gemini-2.5-flash-image), and Veo 3.1 video generation nodes.
- Install and configure the PostWire community node, create a PostWire API credential, and connect your Instagram, Facebook, TikTok, and YouTube accounts in PostWire.
- Add a Gmail credential and set the notification email address (and optionally creator/setting text) in the Ad settings values.
- Populate your sheet with rows marked ready and a publicly accessible photo_url that starts with http so the workflow can download the product image.
π Nodes Used
Google Sheets, HTTP Request, Gmail, Schedule Trigger, Filter, Google Gemini
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File