How it works

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

google sheets logo icon

Row Created

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.
Time to complete: 5 minutes

Filter (Title Check)

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.
Time to complete: Auto-configured (0 minutes)
Shopify logo icon

Create Product

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.
Time to complete: Auto-configured (0 minutes)

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.

Frequently asked questions

Can I create products with multiple variants from the spreadsheet?
This template creates products with a single variant. To support multiple variants per product, you'd need to modify the workflow to recognize multiple rows belonging to the same product (perhaps by matching product titles) and aggregate variant data before creating the product with all variants at once.
What happens if a row has invalid data (like non-numeric price)?
The product creation will fail and the workflow will log an error. The on_error setting is "default," meaning the workflow stops for that row. Consider adding validation filters or data transformation steps to clean and validate data before product creation.
Will this detect updates to existing rows or only new rows?
This trigger only detects new rows added to the spreadsheet. Changes to existing rows won't trigger the workflow. If you want to support updates, you'd need to add additional logic that checks for modified rows and updates corresponding Shopify products.
What is a template?
Templates are pre-made workflows by our team of experts. Instead of building a workflow from scratch, these have all the steps needed to complete the task.
Can I personalize a template?
Yes! Every step can be customized to meet your exact requirements. Additionally, you can even add more steps and make it more sophisticated.
Are templates free?
Yes! Our entire library containing hundreds of templates are free to use and customize to your exact needs.

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

Join thousands who've automated their work and saved an average of 3.5 hours every week.

Use this template — It's free
7-day free trial • 7 min setup • Cancel anytime