🔓 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 + Shopify: product copy done for you

Lisa Granqvist Partner Workflow Automation Expert

Your product catalog grows. Your copy doesn’t. Suddenly you have half-finished listings, mismatched titles, missing attributes, and a backlog that never really goes away.

Shopify store owners feel it when new inventory lands. Marketing managers feel it when Google Merchant Center rejects items. Product teams feel it too, because “we’ll fix the descriptions later” turns into months. This Shopify copy automation turns a simple Google Sheet plus product images into ready-to-review product copy.

Below is the exact n8n workflow that reads your rows, analyzes images, writes Shopify + Google Shopping copy, and updates your sheet so you can approve and publish with confidence.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Shopify: product copy done for you

The Problem: Product copy becomes a never-ending backlog

Writing product descriptions sounds easy until you’re doing it at scale. You’re juggling images, SKUs, variants, materials, and whatever scattered notes your team has in a spreadsheet. Then comes the real time sink: rewriting the same ideas for different channels. Shopify wants persuasive, scannable copy. Google Merchant Center wants structured, compliant wording that matches what’s in the image. Miss a key attribute and you get disapprovals, which means lost traffic and a lot of head-scratching later.

It adds up fast. Here’s where it breaks down in real teams.

  • You end up copy-pasting between tabs, and one small tweak creates five inconsistent versions.
  • Image-based details get guessed because nobody has time to zoom in and verify materials, finishes, or closures.
  • Google Shopping fields feel “optional” until listings start getting rejected, and then the cleanup is brutal.
  • Even when you outsource copy, you still spend hours reviewing, formatting, and pushing it into the right columns.

The Solution: Generate Shopify + Google copy from a Sheet and images

This n8n workflow turns your Google Sheet into a copy pipeline. It starts by pulling product rows (name, image URL, and any optional context like brand voice or target market). For each row, it checks the image link, downloads the image, and resizes it so analysis is fast and consistent. Then an AI vision step extracts objective details you’d normally miss when you’re rushing, like materials, patterns, visible features, and construction. Two specialized AI agents take that analysis and write channel-specific output: one for Shopify titles and descriptions, and one that refines and formats additional copy for Google Merchant Center. Finally, the workflow writes everything back into your original sheet so you can review, approve, and publish without retyping.

The workflow can be triggered on a schedule (hands-off catalog refreshes) or when a sheet row changes. From there it batches items to avoid overload, processes images + copy, and updates the exact columns you choose for Shopify and Google Shopping.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you add 20 new products each week. Manually, a “good enough” pass often takes about 15 minutes per product to study the image, write Shopify copy, then rework it for Google Merchant Center, which is roughly 5 hours weekly. With this workflow, you drop the rows into Google Sheets and let it run: a couple minutes to check the image URLs, then automated processing in the background. You spend your time on review, which for many teams is closer to an hour for those 20 items.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for your product list and outputs
  • OpenAI API to analyze images and write copy
  • OpenAI API key (get it from your OpenAI dashboard)

Skill level: Intermediate. You’ll connect credentials, map a few columns, and test with a small batch first.

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

How It Works

A sheet update or scheduled run triggers the workflow. You can run it on a timer (nightly, weekly) or kick it off when rows change in Google Sheets, which is handy for teams that add products throughout the day.

Rows are pulled in and checked before any AI spend happens. The workflow fetches your sheet records, confirms the image URL is usable, and processes items in batches so you don’t slam rate limits or end up with partial runs.

Images are downloaded, resized, and analyzed. n8n grabs the image via HTTP request, uses an image edit step to standardize it, and then a vision model extracts concrete details (colors, materials, visible components) you can build copy from.

Two copy agents generate channel-specific text and write it back. One agent focuses on Shopify-style titles and descriptions, then another agent refines and produces Google Merchant Center-ready fields. The finished copy is pushed into your Google Sheet so review and approval stay simple.

You can easily modify the prompts and the destination columns to match your catalog structure and brand voice. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Scheduled and Sheet Row Triggers

Set up both triggers so the workflow can run on a schedule and when new rows are added to your sheet.

  1. Open Scheduled Start and set the Rule to your preferred interval (keep the default if you want the existing schedule).
  2. Open Sheet Row Trigger and set Event to rowAdded.
  3. In Sheet Row Trigger, set Poll Times to everyMinute (or your preferred interval).
  4. Select the target Google Sheet in Sheet Row Trigger by setting Document ID and Sheet Name.
  5. Credential Required: Connect your Google Sheets Trigger OAuth2 API credentials in Sheet Row Trigger.
Use both triggers if you want scheduled backfills and real-time processing for new rows.

Step 2: Connect Google Sheets

Configure your sheet read and update nodes to pull product data and write the generated copy back to the same rows.

  1. Open Fetch Sheet Records and select your spreadsheet in Document ID (currently [YOUR_ID]).
  2. In Fetch Sheet Records, set Sheet Name to Sheet1 (value gid=0).
  3. Open Update Sheet Rows and confirm Operation is set to update.
  4. In Update Sheet Rows > Columns, map the values exactly as follows: seo_name to {{ $json.output.seo_name }}, product name to {{ $('Resize Product Image').item.json['product name'] }}, seo_description to {{ $json.output.seo_description }}, shopify_description to {{ $json.output.shopify_description }}, and shopify_product_name to {{ $json.output.shopify_product_name }}.
  5. Set Matching Columns in Update Sheet Rows to product name.
  6. Credential Required: Connect your Google Sheets OAuth2 API credentials in Fetch Sheet Records and Update Sheet Rows.
⚠️ Common Pitfall: If the product name values are not unique, Update Sheet Rows may overwrite the wrong row.

Step 3: Validate and Prepare Image Inputs

This step checks for missing image URLs, batches items, downloads the image, and resizes it before analysis.

  1. Open Image Link Check and confirm the condition checks for empty image links using Left Value set to {{ $json['image link'] }} with the Operator empty.
  2. In Batch Through Items, keep default Options unless you want to change batch size.
  3. Open Download Image File and set URL to {{ $('Fetch Sheet Records').item.json["image link"] }}.
  4. In Download Image File, keep Response Format set to file.
  5. Open Resize Product Image and set Operation to resize, Resize Option to percent, Width to 40, and Height to 40.
⚠️ Common Pitfall: If Image Link Check routes items to the empty branch, those items will stop processing and no copy will be generated.

Step 4: Set Up Vision and Shopify Copy Generation

These nodes analyze the product image and generate Shopify-ready copy using the AI model and structured output.

  1. Open Vision Analysis and set Resource to image, Input Type to base64, and Operation to analyze.
  2. In Vision Analysis, set Text to the full system prompt provided in the workflow (starting with <system_prompt> YOU ARE A HIGH-PRECISION VISION MODEL... and ending with </system_prompt>).
  3. Open Shopify Chat Model and select the model gpt-4.1-mini.
  4. Open Shopify Output Parser and set JSON Schema Example to {"shopify_description":"FULL PARAGRAPH CONSUMER COPY","shopify_product_name":"Name"}.
  5. Open Shopify Copy Agent and set Text to **AI Generated Vision Description of Product:** {{ $json.content }} **Name of Product:** {{ $('Fetch Sheet Records').item.json['product name'] }} **User Provided Description (If available):** {{ $('Fetch Sheet Records').item.json['user generated description'] }} **Brand Voice:** {{ $('Fetch Sheet Records').item.json['brand voice'] }} **Target Market:** {{ $('Fetch Sheet Records').item.json['target market'] }}.
  6. Ensure Shopify Chat Model is connected as the language model for Shopify Copy Agent, and Shopify Output Parser is connected as the output parser for Shopify Copy Agent.
  7. Credential Required: Connect your OpenAI credentials in Vision Analysis and Shopify Chat Model.
The Shopify Output Parser is a sub-node; credentials should be added to Shopify Chat Model, not the parser.

Step 5: Set Up Merchant Copy Generation and Sheet Updates

This step refines copy with brand voice and writes the final outputs back to Google Sheets.

  1. Open Merchant Chat Model and select the model gpt-4.1-mini.
  2. Open Merchant Output Parser and set JSON Schema Example to {"shopify_description":"FULL PARAGRAPH CONSUMER COPY","seo_description":"SEO-OPTIMIZED DESCRIPTION, ≤700 CHARACTERS","seo_name":"SEARCHABLE, DESCRIPTIVE TITLE WITH KEYWORDS","shopify_product_name":"Name"}.
  3. Open Merchant Copy Agent and set Text to **AI Generated Vision Description of Product:** {{ $('Vision Analysis').item.json.content }} **Name of Product:** {{ $('Resize Product Image').item.json['product name'] }} **User Provided Description (If available):** {{ $('Resize Product Image').item.json['user generated description'] }} **USER PROVIDED BRAND VOICE:** {{ $('Resize Product Image').item.json['brand voice'] }} **PROVIDED SHOPIFY DESCRIPTION:** {{ $json.output.shopify_description }} **PROVIDED SHOPIFY PRODUCT TITLE:** {{ $json.output.shopify_product_name }}.
  4. Ensure Merchant Chat Model is connected as the language model for Merchant Copy Agent, and Merchant Output Parser is connected as the output parser for Merchant Copy Agent.
  5. Verify the execution flow: Vision AnalysisShopify Copy AgentMerchant Copy AgentUpdate Sheet RowsBatch Through Items to loop through items.
  6. Credential Required: Connect your OpenAI credentials in Merchant Chat Model.
The Merchant Output Parser is a sub-node; credentials should be added to Merchant Chat Model, not the parser.

Step 6: Test and Activate Your Workflow

Run a test to confirm the image processing, AI copy generation, and sheet updates work end-to-end.

  1. Click Execute Workflow and ensure a test row in your sheet contains product name, image link, and optional brand fields.
  2. Confirm that Download Image File fetches the image and Resize Product Image outputs a resized file.
  3. Verify that Shopify Copy Agent and Merchant Copy Agent return structured JSON through their output parsers.
  4. Check your sheet to confirm Update Sheet Rows writes to shopify_description, shopify_product_name, seo_description, and seo_name.
  5. Once validated, toggle the workflow to Active to enable scheduled and row-added processing.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection in n8n’s Credentials page and confirm the sheet is shared to the same Google account.
  • 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 Shopify copy automation?

About 30 minutes if your sheet and image URLs are ready.

Do I need coding skills to automate Shopify copy?

No. You’ll mainly connect accounts and map the right sheet columns. The hardest part is deciding what “good copy” looks like for your brand.

Is n8n free to use for this Shopify copy 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 API costs, which are usually a few cents per product depending on image and text length.

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 Shopify copy automation workflow for a stricter brand voice?

Yes, and you should. Update the system prompts used by the Shopify Copy Agent and Merchant Copy Agent so they follow your tone, vocabulary, and formatting rules. Common tweaks include forcing a fixed title pattern, adding banned phrases, and inserting your compliance notes for claims or materials.

Why is my Google Sheets connection failing in this workflow?

Usually it’s expired or changed Google permissions. Reconnect Google Sheets in n8n, then confirm the exact spreadsheet is shared with that same Google account. If it still fails, check that the sheet name and the column headers match what the workflow expects, because a renamed tab can look like an auth problem. Also keep an eye on Google API quota if you’re updating lots of rows in one run.

How many products can this Shopify copy automation handle?

If you self-host, it can handle as many as your server and API limits allow.

Is this Shopify copy automation better than using Zapier or Make?

Often, yes, because this workflow relies on branching logic, batching, and structured AI outputs, which is where n8n tends to feel more flexible. Zapier or Make can work, but complex flows can get expensive once you add loops and AI steps. n8n also gives you a clean self-hosting path when you want unlimited executions. The practical difference is control: you can adjust batch size, add review gates, and store intermediate outputs without fighting the platform. Talk to an automation expert if you want help choosing based on your catalog size and posting cadence.

Once this is running, your spreadsheet becomes the control panel for product copy. You get consistency back, and you stop paying the “rewrite tax” every time you add new items.

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