Beginner~12 min setupProductivity & E-commerceVerified April 2026
Google Sheets logo
Shopify logo

How to Sync Shopify Inventory to Google Sheets with Make

Automatically update your inventory tracking spreadsheet whenever product stock levels change in your Shopify store.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

E-commerce stores with 50-500 products that need automated inventory tracking

Not ideal for

Simple stores with under 20 products or those needing real-time second-by-second updates

Sync type

polling

Use case type

sync

Real-World Example

💡

A 25-person fashion retailer uses this to track inventory across 300 products with multiple size/color variants. Before automation, their inventory manager manually updated the tracking spreadsheet twice daily, often missing stockouts that lasted hours. Now inventory levels sync automatically every 15 minutes, and they've eliminated 90% of overselling incidents.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Make

Copy the pre-built Make blueprint and paste it straight into Make. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

A Shopify store with products that track inventory
Google Sheets spreadsheet with existing inventory data and column headers
Products in your sheet that match Shopify products by SKU or title
Make account with available operations in your plan
Admin access to install apps in your Shopify store

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Product SKUhandle
Current Stockinventory_quantity
5 optional fields▸ show
Product Titletitle
Inventory Policyinventory_policy
Inventory Trackinginventory_management
Variant SKUvariants[].sku
Last Modifiedupdated_at

Step-by-Step Setup

1

Scenarios > Create new scenario > +

Create a New Scenario

Start by setting up a new Make scenario to connect Shopify inventory changes to your Google Sheet. This creates the foundation for your automated inventory sync.

  1. 1Log into Make and click 'Create a new scenario'
  2. 2Click the large '+' button in the center of the canvas
  3. 3Search for 'Shopify' in the app search box
  4. 4Select 'Shopify' from the results list
What you should see: You should see the Shopify app icon appear on your canvas with a list of available triggers.
2

Shopify module > Watch Products

Configure Shopify Trigger

Set up the 'Watch Products' trigger to monitor inventory changes. This trigger fires whenever a product's inventory level updates in your store.

  1. 1Select 'Watch Products' from the Shopify trigger options
  2. 2Click 'Create a connection' and enter your Shopify store URL
  3. 3Install the Make app in your Shopify admin when prompted
  4. 4Set the trigger to run 'Every 15 minutes'
What you should see: The connection should show 'Verified' with a green checkmark, and you'll see trigger configuration options.
Common mistake — Don't use 'Watch Inventory Levels' — it only tracks quantity changes, not product updates that include inventory data
Make
+
click +
search apps
Google Sheets
GO
Google Sheets
Configure Shopify Trigger
Google Sheets
GO
module added
3

Shopify module > Advanced settings

Set Product Filters

Configure the trigger to only fire for products with actual inventory changes. This prevents unnecessary runs when other product fields update.

  1. 1Click 'Show advanced settings' in the Shopify module
  2. 2Toggle on 'Only updated products'
  3. 3Set 'Fields to watch' to 'inventory_quantity'
  4. 4Click 'OK' to save the trigger settings
What you should see: The advanced settings panel should show your inventory_quantity filter is active.
Common mistake — Skip the 'Created after' date filter — it blocks updates to existing products and you'll miss inventory changes
Google Sheets
GO
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Shopify
SH
notified
4

Scenario canvas > Run once

Test Shopify Connection

Run a test to pull sample product data from your store. This verifies the connection works and shows you the data structure you'll map to Google Sheets.

  1. 1Click 'Run once' at the bottom of the scenario
  2. 2Wait for the test to complete (usually 10-30 seconds)
  3. 3Click on the Shopify module to view the returned data
  4. 4Verify you can see product titles, SKUs, and inventory_quantity fields
What you should see: You should see at least one product record with fields like title, handle, inventory_quantity, and variants data.
Make
▶ Run once
executed
Google Sheets
Shopify
Shopify
🔔 notification
received
5

+ > Google Sheets > Update a Row

Add Google Sheets Module

Connect your Google Sheets account and select the spreadsheet where you track inventory. This module will update rows when Shopify inventory changes.

  1. 1Click the '+' button to the right of the Shopify module
  2. 2Search for 'Google Sheets' and select it
  3. 3Choose 'Update a Row' from the action list
  4. 4Click 'Create a connection' and authenticate with Google
What you should see: Google Sheets should show 'Connected' status and display a list of your available spreadsheets.
Common mistake — Use 'Update a Row' not 'Add a Row' — you want to modify existing inventory records, not create duplicates
6

Google Sheets module > Spreadsheet selection

Select Your Inventory Spreadsheet

Choose the specific spreadsheet and worksheet where you maintain your inventory data. Make needs to know exactly which sheet to update.

  1. 1Select your inventory tracking spreadsheet from the dropdown
  2. 2Choose the correct worksheet tab (usually 'Sheet1' or 'Inventory')
  3. 3Set 'Table contains headers' to 'Yes'
  4. 4Click 'Choose' to confirm your selection
What you should see: The module should display your spreadsheet name and show the available column headers for mapping.
Common mistake — If your sheet has merged cells in the header row, Google's API will fail — keep headers in single cells only
7

Google Sheets module > Row selection

Configure Row Search Method

Set up how Make will find the correct row to update in your spreadsheet. Usually this matches by SKU or product title.

  1. 1Set 'Row number' to 'Select by filter'
  2. 2Choose your identifier column (typically 'SKU' or 'Product Name')
  3. 3Click in the value field and map it to Shopify's corresponding field
  4. 4Select 'handle' for SKU or 'title' for product name from the Shopify data
What you should see: The search configuration should show your chosen column mapped to the corresponding Shopify field.
Common mistake — Don't use Shopify's product ID as the search key — your spreadsheet likely tracks SKUs or names, not internal Shopify IDs
8

Google Sheets module > Field mapping

Map Inventory Fields

Connect the Shopify inventory data to your spreadsheet columns. This determines which inventory information gets updated and where.

  1. 1Find your 'Quantity' or 'Stock' column in the field list
  2. 2Click in the value box next to it
  3. 3Select 'inventory_quantity' from the Shopify data dropdown
  4. 4Map any other relevant fields like 'Last Updated' or 'Product Title'
What you should see: Your quantity column should show the mapped Shopify inventory_quantity value, typically displaying as a blue pill.
Common mistake — Shopify's inventory_quantity can be null for products not tracking inventory — add a fallback value or filter these out
Google Sheets fields
Column A
Column B
Email
Status
Notes
available as variables:
1.props.Column A
1.props.Column B
1.props.Email
1.props.Status
1.props.Notes
9

+ > Flow Control > Iterator

Handle Variant Products

Configure how to handle products with multiple variants since each variant has its own inventory level. Most stores need to sum variants or pick the main one.

  1. 1Add an 'Iterator' module between Shopify and Google Sheets if you have variants
  2. 2Connect it to the 'variants' array from Shopify
  3. 3Update your Google Sheets mapping to use the iterator's inventory_quantity
  4. 4Set up a filter to skip variants with zero inventory if needed
What you should see: The iterator should show it will process each variant separately, and your field mapping reflects variant-level data.
Common mistake — Without the iterator, you'll only update based on the first variant — other variant inventory changes won't sync
10

Right-click module > Add error handler

Add Error Handling

Set up what happens when a product exists in Shopify but not in your spreadsheet, or when the Google Sheets API fails.

  1. 1Right-click the Google Sheets module and select 'Add error handler'
  2. 2Choose 'Ignore' for the error handler route
  3. 3Add a 'Create Row' module to the error handler
  4. 4Map the same fields to create new inventory entries for missing products
What you should see: You should see a dotted line from Google Sheets to an error handler with a Create Row module attached.
Common mistake — Test the error handler with a product that doesn't exist in your sheet — if it fails, check that your Create Row module includes all required columns
11

Scenario canvas > Run once

Test the Complete Flow

Run the full scenario to verify inventory data flows correctly from Shopify to your spreadsheet and updates the right rows.

  1. 1Click 'Run once' to test the complete scenario
  2. 2Check your Google Sheet to confirm a row was updated
  3. 3Verify the inventory quantity matches what's shown in Shopify admin
  4. 4Look for any error messages or failed modules
What you should see: Your spreadsheet should show updated inventory numbers, and all modules in Make should have green checkmarks.
Common mistake — If nothing updates, check that your search column values exactly match between Shopify and Sheets — case sensitivity and extra spaces will break the match
12

Scenario controls > Scheduling

Schedule and Activate

Turn on the scenario to run automatically and set how frequently it checks for inventory changes. Most stores check every 15-30 minutes.

  1. 1Click the 'Scheduling' toggle at the bottom left
  2. 2Set interval to 'Every 15 minutes' for active stores
  3. 3Click 'OK' to save the schedule
  4. 4Toggle the scenario to 'ON' to activate it
What you should see: The scenario should show 'ON' status with a green indicator and display your chosen schedule interval.
Common mistake — Don't set it to run every minute — Shopify's API has rate limits and you'll hit them quickly with frequent polling

Drop this into a Make custom function.

JavaScript — Custom Function{{if(1.inventory_quantity > 0; 1.inventory_quantity; "Out of Stock")}}
▸ Show code
{{if(1.inventory_quantity > 0; 1.inventory_quantity; "Out of Stock")}}

... expand to see full code

{{if(1.inventory_quantity > 0; 1.inventory_quantity; "Out of Stock")}}

Scaling Beyond 500+ products or 50+ updates per hour+ Records

If your volume exceeds 500+ products or 50+ updates per hour records, apply these adjustments.

1

Batch Updates with Aggregator

Use Make's aggregator module to collect multiple inventory changes and update your sheet in batches of 10-20 rows. This reduces API calls and avoids rate limits.

2

Implement Smart Filtering

Add filters to only sync products with inventory changes above a threshold (like 5+ unit changes) or focus on high-value items. This cuts unnecessary operations by 60-70%.

3

Use Data Store for Caching

Store previous inventory levels in Make's data store and only update Google Sheets when values actually change. Prevents redundant spreadsheet writes that eat your quota.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy Make for this workflow

Use Make for this if you need real-time inventory sync and have products with variants or complex inventory rules. Make's iterator handles variant-level inventory better than other platforms, and its visual interface makes it easy to add filters for low stock alerts or inventory value calculations. Pick Zapier instead if you have under 50 products and want the simplest setup — their Shopify integration is more plug-and-play for basic inventory tracking.

Cost

This workflow uses 2 operations per product update — one for the Shopify trigger and one for the Google Sheets update. At 200 inventory changes per month, that's 400 operations total. That fits Make's free tier of 1,000 ops/month. Zapier's free tier only gives you 100 tasks, so you'd need their $20/month Starter plan. N8N self-hosted is free but requires server management. Make wins on cost until you hit 500+ inventory changes monthly.

Tradeoffs

Zapier's Shopify trigger includes a built-in 'Inventory Level Changed' option that's more precise than Make's generic product watcher. N8N has better bulk operations for initial spreadsheet setup if you're syncing 500+ existing products. But Make's error handling is superior — when a product exists in Shopify but not your sheet, Make can automatically create new rows while Zapier just fails. Make's iterator also processes variant inventory correctly without complex filters.

Google Sheets API rate limits hit hard with frequent updates — you'll get 429 errors if you sync more than 100 products within a few minutes. Make's scenario queue helps but doesn't eliminate the bottleneck. Shopify's webhook system is inconsistent for inventory changes, so polling every 15 minutes often catches updates that webhooks miss. Product variants complicate everything — you need the iterator or you'll only sync the first variant's inventory, missing size/color-specific stock levels.

Ideas for what to build next

  • Add Low Stock NotificationsConnect a Slack or email module to alert your team when inventory drops below specified thresholds during the sync process.
  • Create Purchase Order AutomationSet up a follow-up scenario that generates purchase orders in Google Docs or emails suppliers when specific products hit reorder points.
  • Build Inventory Value TrackingExtend the sync to include product costs and calculate total inventory value, updating a separate dashboard sheet with financial metrics.

Related guides

Was this guide helpful?
Google Sheets + Shopify overviewMake profile →