π What this workflow does
This workflow turns your n8n into an automated product-video generator powered by Google Sheets. When a new row is added with status = run, it:
- Downloads the product image from Google Drive.
- Converts the image to base64 and sends it to Gemini, which creates a branded ad-style variant.
- Saves the generated image back into a designated Google Drive folder.
- Sends the image to FAL (image-to-video) to generate a short promotional video clip.
- Polls FALβs response_url until the video is ready.
- Uploads the video to Google Drive (videos folder).
- Updates the original Google Sheet row with the video link and sets status = finished.
- Handles API latency via wait/polling and logs failures into the sheet if needed.
π€ Who is this for
- Marketing teams automating creative asset production.
- E-commerce businesses needing quick product promo videos.
- Agencies creating branded ad content at scale.
β
Requirements
- An n8n instance.
- A Google Sheet with at least these columns: STT, link_image, note, status, link_video.
- Google Sheets & Google Drive OAuth2 credentials connected in n8n.
- Gemini API key (for ad-style image generation).
- FAL API key (for image-to-video).
βοΈ How to set up
- Import the provided workflow JSON into n8n.
- Connect Google Sheets credentials and point to your sheet (documentId + gid).
- Connect Google Drive credentials and update folder IDs in the two Upload File nodes (images/videos).
- Add Gemini and FAL API keys in the respective HTTP Request headers (via Credentials).
- Test: add a row with link_image, note, and status = run. The workflow should generate and save a video, then update the sheet with the link.
π How it works
- Trigger β Google Sheets Trigger fires on rowAdded where status = run.
- Pre-processing β Download the product image from Google Drive β extract base64.
- LLM Image Generation β Gemini generates an ad-style variant based on note.
- Storage β Upload the generated image into the βimagesβ Drive folder.
- Video Creation β FAL converts the branded image into a short video.
- Polling β Wait node + HTTP Request check job status until video is completed.
- Write-back β Upload final video into the βvideosβ Drive folder, update the sheet with the link_video, and set status = finished.