🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets to Google Drive, ad images ready fast

Lisa Granqvist Partner Workflow Automation Expert

Your ad creative process probably breaks in the most annoying place. Not in the “big idea” part, but in the endless middle: downloading images, renaming files, pasting links into a sheet, and trying to keep every product visual consistent.

This Sheets Drive automation hits performance marketers first, honestly. But ecommerce owners and agency teams feel it too when “we need 10 new creatives by tomorrow” turns into a messy scavenger hunt across Google Drive folders.

This workflow turns a simple Google Sheets row into an ad-ready product image in Google Drive, then updates your tracking sheet so you always know what’s ready to publish (and what isn’t).

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets to Google Drive, ad images ready fast

The Problem: Ad Creatives Get Stuck in Production

Making “one good ad image” is doable. Making 10 of them every day, across different products, models, and campaign angles is where things fall apart. You end up copying links from Google Drive into a spreadsheet, downloading images just to re-upload them, and trying to keep lighting and styling consistent with whatever your last winning creative looked like. Then someone asks, “Is this ready?” and you’re not even sure which version is the latest because the folder has three files called final_final_2.png. It’s exhausting, and it quietly slows down testing.

The friction compounds. Here’s where it usually breaks down.

  • You spend about 10 minutes per product just gathering the right product and influencer photos from Drive.
  • Creative consistency becomes guesswork, so you lose time in revisions and “make it match the last one” back-and-forth.
  • Status tracking lives in people’s heads, which means launches slip because nobody knows what’s publishable.
  • Manual file handling leads to wrong uploads, broken links, or missing assets right when a campaign needs speed.

The Solution: Turn Sheet Rows Into Ad-Ready Images

This workflow turns your Google Sheet into a production queue for ad creatives. On a schedule, it pulls the next row of product and model/influencer image URLs, downloads both images from Google Drive, and prepares them for AI processing. Then it uses OpenAI to analyze the product photo and generate a practical, ad-focused description (think lighting, mood, styling cues). With that guidance, it calls an OpenRouter image model to generate a polished composite that looks like a real campaign asset, not a rough mockup. Finally, the workflow saves the finished image back into a target Google Drive folder and updates the original Google Sheet row with the Drive link and a ready-to-publish status.

It starts with a scheduled trigger and a single source of truth (your sheet). AI handles the creative transformation in the middle. Google Drive and Google Sheets then get updated automatically, so your “production system” stays clean without extra admin work.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you create 8 ad images each morning for new product angles. Manually, you might spend about 10 minutes finding and downloading the right product shot, another 10 minutes locating a matching influencer image, then 5 minutes uploading and pasting links back into your sheet. That’s roughly 3 hours of handling files and tracking. With this workflow, you update (or add) 8 rows in Google Sheets, let the scheduled run generate the images, and come back to a sheet full of Drive links marked ready-to-publish. Most days, your “time spent” drops to about 15 minutes of review.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to hold your creative production queue.
  • Google Drive to store inputs and finished creatives.
  • OpenAI API key (get it from your OpenAI account dashboard).

Skill level: Intermediate. You’ll connect Google credentials, paste API keys, and map a few fields in the sheet.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A scheduled run kicks things off. The workflow starts on a timer so your creatives can be generated daily (or a few times a day) without anyone remembering to press a button.

Google Sheets becomes the source of truth. n8n fetches the relevant row(s) for “today’s” items, including the Google Drive URLs for the product photo and the influencer/model photo you want to combine.

Images are pulled from Google Drive and prepared for AI. The workflow downloads each image, converts the files into a base64 format (basically a way to send images through an API), and then uses OpenAI to analyze the product photo so the final output follows a consistent ad style.

An OpenRouter request generates the new ad visual. The workflow sends the inputs and styling guidance to an image model, cleans up the response, converts it back into a proper image file, and uploads it right where your team expects it in Google Drive.

You can easily modify the “ready-to-publish” status to match your naming (or add a review step) based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Scheduled Workflow Trigger

Set the schedule that kicks off the image creation process.

  1. Add and open Scheduled Workflow Trigger.
  2. Define your schedule under Rule so the workflow runs when new rows should be processed.
  3. Connect Scheduled Workflow Trigger to Fetch Sheet Row.
If you’re testing, set a short interval so you can verify data pulling without waiting a full day.

Step 2: Connect Google Sheets

Pull the scheduled row that contains the product and model image URLs.

  1. Open Fetch Sheet Row and select your spreadsheet in Document, e.g. [YOUR_ID].
  2. Set Sheet Name to Sheet1 (gid=0).
  3. In Filters, set Lookup Column to Date and Lookup Value to ={{ $json.Month }} {{ $json['Day of month'] }}, {{ $json.Year }}.
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials for Fetch Sheet Row.
⚠️ Common Pitfall: The lookup date must match your sheet’s exact format or no rows will be returned.

Step 3: Connect Google Drive and Prepare Images

Download the product and model images and convert them to base64 for AI processing.

  1. In Retrieve Product Photo, set File ID to ={{ $json['Product url'] }} and keep Operation as download.
  2. Credential Required: Connect your googleDriveOAuth2Api credentials for Retrieve Product Photo.
  3. In Convert Product Binary, set Operation to binaryToPropery.
  4. In Fetch Model Image, set File ID to ={{ $('Fetch Sheet Row').item.json['Model url'] }} and keep Operation as download.
  5. Credential Required: Connect your googleDriveOAuth2Api credentials for Fetch Model Image.
  6. In Convert Model Binary, set Operation to binaryToPropery.

Retrieve Product Photo outputs to both Convert Product Binary and Evaluate Product Photo in parallel.

Step 4: Set Up AI Processing and Image Generation

Analyze the product and generate an ad-ready composite image.

  1. Open Evaluate Product Photo and keep Resource as image, Input Type as base64, and Operation as analyze.
  2. Credential Required: Connect your openAiApi credentials for Evaluate Product Photo.
  3. In Generate Ad Visual, set URL to https://openrouter.ai/api/v1/chat/completions and Method to POST.
  4. Set JSON Body to:
    ={ "model": "google/gemini-2.5-flash-image-preview", "prompt": "{{ $json.content }}", "image_inputs": [ { "image": "{{ $json.data }}", "mime_type": "image/png" }, { "image": "{{ $('Convert Product Binary').item.json.data }}", "mime_type": "image/jpeg" } ] }
  5. In Generate Ad Visual headers, set Authorization to Bearer [CONFIGURE_YOUR_TOKEN] and Content-Type to application/json.
  6. In Clean Base64 Output, keep the provided JS Code to strip the data:image/png;base64, prefix.
  7. In Build Image File, set Operation to toBinary and Source Property to choices[0].images[0].image_url.url.
⚠️ Common Pitfall: If the OpenRouter token in Generate Ad Visual is missing or invalid, the workflow will fail before any file is created.

Step 5: Configure Output and Sheet Updates

Store the generated image in Drive and log the result back to the spreadsheet.

  1. In Store Ad Visual, set Name to =Ad Image {{ $runIndex + 1 }}.
  2. Select the target folder in Store Ad Visual using Folder ID (e.g. [YOUR_ID]).
  3. Credential Required: Connect your googleDriveOAuth2Api credentials for Store Ad Visual.
  4. Open Update Results Sheet and keep Operation as appendOrUpdate.
  5. Map Date to ={{ $('Fetch Sheet Row').item.json.Date }}, Publish to Publish, and Ad Image Ready To Post to ={{ $json.webContentLink }}.
  6. Credential Required: Connect your googleSheetsOAuth2Api credentials for Update Results Sheet.
The Flowpast Branding sticky note is optional and does not affect execution.

Step 6: Test and Activate Your Workflow

Run a controlled test to confirm images are generated and logged correctly.

  1. Click Execute Workflow to run a manual test with your current sheet row.
  2. Confirm that Store Ad Visual creates a file in your Drive folder and returns a webContentLink.
  3. Verify Update Results Sheet writes the image URL and status to the correct row.
  4. Turn on the workflow with the Active toggle to enable scheduled runs.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Drive credentials can expire or need specific permissions. If things break, check the connected Google account in n8n’s Credentials and confirm it can access the exact folder first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this Sheets Drive automation?

About 30 minutes if your Google accounts and API keys are ready.

Do I need coding skills to automate Google Sheets rows into ad images?

No. You’ll mostly connect accounts and map your sheet columns to the right fields in n8n.

Is n8n free to use for this Sheets Drive automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI and OpenRouter usage, which is usually a few cents per image depending on settings.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Sheets Drive automation workflow for a human review step before publish?

Yes, and it’s a smart tweak. Most teams add a “Needs review” status in the Update Results Sheet node, then only mark “Ready” after someone checks the Drive output. You can also split outputs into two folders by changing the Store Ad Visual upload destination, like /Review and /Approved. If you’re using HubSpot later for campaign logging, you can also branch after upload and create a record only when status equals Approved.

Why is my Google Drive connection failing in this workflow?

Usually it’s permission-related. Make sure the connected Google account can access the specific Drive folder and that the file URLs in your sheet point to files that aren’t restricted. If you recently changed passwords or security settings, re-authenticate the Google Drive credential in n8n. Also check that shared drive files are supported by your chosen Drive node settings.

How many ad images can this Sheets Drive automation handle?

On a typical n8n Cloud plan, teams run a few hundred to a few thousand executions a month, and self-hosting removes execution limits (your server is the limiter). In practice, most of the wait is the AI generation step, so throughput is usually “a few images at a time” unless you add batching and concurrency controls.

Is this Sheets Drive automation better than using Zapier or Make?

Often, yes. This workflow needs multi-step file handling (download, convert, send to AI, clean base64, rebuild a file, upload) and conditional logic, which n8n handles without feeling like you’re fighting the platform. Zapier or Make can work, but costs can climb once you’re doing lots of AI calls and file steps, and some “advanced” branching patterns are simply more awkward there. If you only generate a couple of creatives a week, you might not care. If you’re trying to scale daily production, n8n is usually the calmer choice. Talk to an automation expert if you want help deciding.

Once this is running, your spreadsheet stops being “admin” and starts being your creative engine. The workflow handles the repetitive parts so you can focus on what actually moves performance.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal