See llms.txt for all machine-readable content.

Back to Templates

Create UGC product ads from Google Sheets with Gemini, Nano Banana, Veo and PostWire

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

  1. Runs every day at 10:00.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

  1. 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.
  2. Add Google Gemini credentials for the Gemini analyze, image edit (gemini-2.5-flash-image), and Veo 3.1 video generation nodes.
  3. Install and configure the PostWire community node, create a PostWire API credential, and connect your Instagram, Facebook, TikTok, and YouTube accounts in PostWire.
  4. Add a Gmail credential and set the notification email address (and optionally creator/setting text) in the Ad settings values.
  5. 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.