Create Shopify Products from Google Sheets Rows

7 min setup
No coding required
Runs automatically

Streamline product creation in Shopify by adding new products directly from Google Sheets. This MESA workflow template automatically generates a new product in Shopify whenever a row is added to your Google Sheets document. Perfect for bulk product uploads or managing inventory from a spreadsheet, this automation saves time and ensures data accuracy across platforms.

google sheets logo icon
Row Created
Filter (Title Check)
Shopify logo icon
Create Product

You're in good company

"MESA has been a game changer for us. And, if you ever get stuck, their support team is always super helpful."

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
PetFriendly

"It's like Zapier but exactly designed for Shopify. I have been able to complete all the workflows that I've needed."

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
Zailys

"The MESA team has been amazing at helping us set up our automations. We would highly recommend this app!"

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
Rothy's

How it works

3 steps to start creating Shopify products from Google Sheets rows automatically

google sheets logo icon

Row Created

App connector: Google Sheets • Time to complete: 5 minutes
Why this matters: This trigger monitors your Google Sheets spreadsheet for new product rows, enabling collaborative product creation where team members, vendors, or systems can add products via spreadsheet without Shopify admin access.

This polling trigger checks your spreadsheet hourly for new rows that weren't present during the previous check.

Setup: During initial setup, you'll:
(1) Name your spreadsheet (it will be created automatically in your Google Drive), and
(2) Select which columns to include from options like Title, Description (Body HTML), Vendor, Product Type, Tags, Variant Title, Variant Price, Variant Compare At Price, Variant Barcode, Variant Sku, and Variant Inventory Item ID.

The selected columns become the spreadsheet headers, and data from each row is accessible as {{googlesheets.data.ColumnName}}. The template automatically creates the spreadsheet with these columns ready for data entry.

Timing: You can adjust the polling frequency by modifying the poll schedule if hourly checks are too frequent or not frequent enough.

Filter (Title Check)

App connector: Filter • Time to complete: 0 minutes (Auto-configured)
Why this matters: Ensures only rows with product titles are processed, preventing product creation errors from incomplete data and allowing the spreadsheet to be used for notes or draft products that aren't yet ready for creation.

This filter checks if {{googlesheets.data.Title}} is not empty. If a title exists, the workflow proceeds to create the product. If the title column is blank, the workflow skips that row. Since title is required for Shopify products, this validation prevents API errors. You can add rows to the spreadsheet with partial information, and they won't be processed until you add a title.

Shopify logo icon

Create Product

App connector: Shopify • Time to complete: 0 minutes (Auto-configured)
Why this matters: Transforms spreadsheet row data into a complete Shopify product with all specified attributes, eliminating manual product entry and enabling bulk creation through familiar spreadsheet interfaces.

This step creates a Shopify product using data from the spreadsheet row. It maps columns to product fields:

{{googlesheets.data.Title}} to title,
{{googlesheets.data["Description (Body HTML)"]}} to body_html (supports HTML formatting),
{{googlesheets.data.Vendor}} to vendor,
{{googlesheets.data["Product Type"]}} to product_type,
{{googlesheets.data.Tags}} to tags (comma-separated list), and creates a variant with {{googlesheets.data["Variant Title"]}} as option1,
{{googlesheets.data["Variant Price"]}} as price,
{{googlesheets.data["Variant Compare At Price"]}} as compare_at_price,
{{googlesheets.data["Variant Sku"]}} as sku,
{{googlesheets.data["Variant Barcode"]}} as barcode, and
{{googlesheets.data["Variant Inventory Item ID"]}} as inventory_item_id.

Column format guidelines:

Title: Required, plain text
Description (Body HTML): Accepts HTML tags for formatting
Tags: Comma-separated (e.g., "Summer, Sale, Featured")
Variant Price: Decimal number without currency symbol (e.g., "29.99")
Variant Compare At Price: Decimal number for strike-through pricing
Variant Sku: Alphanumeric identifier
Variant Barcode: Numeric barcode/UPC/EAN

Note: This template creates products with a single variant. For multi-variant products, you'll need to modify the workflow to support multiple variant rows or different data structures.

Ready to set this up? It only takes 7 minutes.

Our support team will even help you personalize this workflow for free.

Get started →

Make it your own!

Customize this workflow even further:

Add images from URLs
Enhance the spreadsheet with an "Image URL" column and modify the product creation to include an images array that pulls product photos from URLs, enabling complete product setup including visuals.
Support multiple variants per product
Modify the workflow to group rows by product title and create products with multiple variants (sizes, colors) by processing consecutive rows with the same product name as variant data.
Set inventory quantities
Add an "Inventory Quantity" column and include a step after product creation that uses the Shopify "Set Inventory Level" action to establish initial stock levels for new products.
Add products to collections
Include a "Collections" column and add steps after product creation that parse the collection names, find collection IDs, and add the new products to those collections automatically.

Common questions

Can I create products with multiple variants from the spreadsheet?

What happens if a row has invalid data (like non-numeric price)?

Will this detect updates to existing rows or only new rows?

Ready to start creating Shopify products from Google Sheets rows automatically?

7-day free trial • 7 min setup • Cancel anytime

Need help? Our automation experts will help you personalize this workflow for free. Contact support