Shopify product created or updated → one row per variant in Google Sheets
Your product sheet matches the Shopify store, one row per variant, minutes after an edit.
One row per variant in a Google Sheet, kept current by Shopify's own product webhooks. Each products/create or products/update event writes SKU, title, option values, price, compare-at price, inventory quantity, status and the time of the last change. Rows are matched on variant ID, so an edit updates the row it already has. Buyers, marketplaces and the accountant read the sheet instead of asking for exports.
How it works
- Sh
Trigger
products/create or products/update webhook
Shopify
- if
Step 1
Flatten the product into one row per variant
Takes the webhook payload and emits one row per variant. Each row carries product ID, variant ID, inventory item ID, SKU, title, the three option values, price, compare_at_price, inventory_quantity, product status and updated_at.
- GS
Step 2
Append or update the matching row
Uses the sheet's Variant ID column as the key in the Append or Update operation. An existing row is overwritten in place; a new variant gets a new row at the bottom.
- GS
Step 3
Stamp the sync time on the Status tab
Writes the product title, the webhook topic and the current time to a small Status tab. Anyone can see when the sheet last changed.
What changes once it runs
- Edits made in Shopify show in the sheet within a minute, in the same row the variant always had.
- Every variant is its own row, with SKU, price, compare-at price and quantity.
- Archived products stay in the sheet with their status set to archived, so the history of a discontinued line is kept rather than deleted.
- Buyers and the accountant read one sheet instead of asking for exports.
What you get
- The n8n workflow export with the products/create and products/update triggers already configured
- A separate one-off backfill workflow that writes every existing variant before you switch the webhooks on
- Google Sheets template with the header row, a Status tab and a Variant ID key column
- Setup guide for the Shopify custom app and the Google OAuth connection
- Recorded walkthrough of the first run and 30 days of email support
Before you start
- A Shopify store on any plan with a custom app that has the read_products scope and an Admin API access token
- Google account with edit rights to the sheet; the template sheet with the header row is included
- n8n Cloud, or a self-hosted n8n reachable from the internet, so Shopify can deliver webhooks
Built for
Questions before you buy
- What about products deleted in Shopify?
- Deletions are not part of this package. Shopify's products/delete webhook sends only the product ID, with no variants, so there is nothing to match rows against beyond that ID. The guide shows how to add a third trigger that marks every row for the product as deleted.
- Can it fill the sheet with the products I already have?
- The backfill workflow does that. It pages through the Admin API's product list and writes every variant; run it once, check the sheet, then turn the webhook workflow on.
- Does it track inventory levels?
- Only as of the last product webhook. Stock movements from a POS, a fulfilment app or a manual adjustment arrive on Shopify's inventory_levels/update topic, which this package does not subscribe to. The guide covers adding that topic as a third trigger, and the sheet already holds each variant's inventory item ID so the rows can be matched.
- Will Google Sheets keep up with a big catalogue?
- Google's Sheets API allows 60 write requests a minute per user, and the workflow makes one write per variant. A bulk edit that fires hundreds of webhooks at once takes a few minutes to work through. The Sheets step retries on a rate-limit response. Any execution that still fails stays in n8n's executions list for you to retry.
Nearby on the shelf
Whole catalog- JfDrGSMade to order
Jotform submission → its own Google Drive folder with every upload filed inside
Each application gets a Drive folder, the uploads inside it, and a row in the index sheet.
Data sync & backups$99 - HMcMade to order
HubSpot contact created or changed → Mailchimp audience member kept in step
Marketing sends to the list HubSpot holds, and unsubscribes never get re-added.
Data sync & backups$99 - QB{}In build
New QuickBooks Online customer → record created in any app with an API
Add a customer in QuickBooks once; the same record lands in your CRM by API.
Data sync & backups$49
