

How to Sync Shopify Inventory to Google Sheets with N8n
Automatically update your Google Sheets inventory tracker whenever product stock levels change in Shopify.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
E-commerce teams who need real-time inventory tracking and have technical skills to handle webhook setup.
Not ideal for
Users wanting simple daily inventory reports or those uncomfortable with API configuration and troubleshooting.
Sync type
real-timeUse case type
syncReal-World Example
A 25-person outdoor gear retailer uses this to keep their inventory planning spreadsheet current across 400+ products. Their buying team checks stock levels hourly during peak season and needs real-time data, not daily exports. Before automation, they manually updated quantities twice daily and often missed stockout warnings until customers complained.
What Will This Cost?
Drag the slider to your expected monthly volume.
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
Import this workflow directly into n8n
Copy the pre-built n8n blueprint and paste it straight into n8n. 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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Product ID | id | |
| Inventory Quantity | variants[0].inventory_quantity | |
4 optional fields▸ show
| Product Title | title |
| SKU | variants[0].sku |
| Last Updated | updated_at |
| Inventory Policy | variants[0].inventory_policy |
Step-by-Step Setup
Workflows > New Workflow
Create new N8n workflow
Start with a blank workflow in N8n. This gives you a clean canvas to build your Shopify-to-Sheets inventory sync.
- 1Click 'New Workflow' on your N8n dashboard
- 2Name it 'Shopify Inventory Sync'
- 3Click the '+' button to add your first node
Add Node > Trigger > Shopify Trigger
Add Shopify webhook trigger
Configure N8n to listen for inventory updates from Shopify. The webhook fires immediately when stock levels change.
- 1Search for 'Shopify Trigger' and select it
- 2Choose 'Webhook' as the trigger type
- 3Select 'Product Update' from the event dropdown
- 4Enter your Shopify store URL and API credentials
Shopify Admin > Settings > Notifications > Webhooks
Register webhook in Shopify admin
Tell Shopify where to send inventory update notifications. This connects your store to the N8n workflow.
- 1Go to Settings > Notifications in your Shopify admin
- 2Click 'Create webhook'
- 3Paste the N8n webhook URL from step 2
- 4Select 'Product update' as the event
- 5Set format to JSON and save
Shopify Admin > Products > [Select Product] > Inventory
Test Shopify connection
Verify the webhook receives data by updating a product's inventory in Shopify. This confirms the connection works.
- 1Click 'Listen for test event' on the Shopify trigger node
- 2In Shopify admin, edit any product's inventory quantity
- 3Save the product changes
- 4Return to N8n and check for received data
Add Node > Logic > IF
Add filter for inventory changes
Only process updates that actually changed inventory levels. This prevents unnecessary spreadsheet updates for title or description changes.
- 1Add an 'IF' node after the Shopify trigger
- 2Set condition to 'inventory_quantity' 'is set'
- 3Add second condition with AND: previous inventory ≠ current inventory
- 4Connect true branch to continue the workflow
Add Node > Apps > Google Sheets
Connect to Google Sheets
Authenticate with Google Sheets so N8n can update your inventory tracker. This creates the connection for writing data.
- 1Add 'Google Sheets' node after the IF node
- 2Click 'Connect my account' and authorize with Google
- 3Select 'Update' as the operation
- 4Choose your inventory spreadsheet from the dropdown
Google Sheets Node > Update Options
Configure spreadsheet lookup
Tell N8n how to find the correct row to update. Most setups match Shopify product ID to a column in your sheet.
- 1Set 'Range' to your data range (e.g., 'A:E')
- 2Choose 'Where' as the update method
- 3Set lookup column to match your Product ID column
- 4Map lookup value to '{{ $node["Shopify Trigger"].json["id"] }}'
- 5Select the column to update with new inventory count
Google Sheets Node > Fields to Update
Map inventory fields
Connect Shopify's inventory data to your spreadsheet columns. This determines what information gets updated where.
- 1Click 'Add field to update' for inventory quantity
- 2Map to '{{ $node["Shopify Trigger"].json["variants"][0]["inventory_quantity"] }}'
- 3Add field for last updated timestamp
- 4Map to '{{ $now.format("yyyy-MM-dd HH:mm") }}'
- 5Add any other fields like product title or SKU
Node Settings > Error Handling
Add error handling
Configure what happens when the update fails. This prevents the workflow from breaking on temporary issues.
- 1Click the Google Sheets node settings (gear icon)
- 2Set 'On Error' to 'Continue'
- 3Add an 'Error Trigger' node on a separate branch
- 4Connect it to a notification method (email, Slack, etc.)
N8n > Executions > [Latest Run]
Test complete workflow
Run an end-to-end test by changing inventory in Shopify and confirming your sheet updates. This validates the entire sync process.
- 1Update a product's inventory in Shopify admin
- 2Watch the N8n execution log for activity
- 3Check your Google Sheet for the updated quantity
- 4Verify the timestamp shows the current time
Workflow Canvas > Active Toggle
Activate the workflow
Turn on the workflow to start automatic syncing. Once active, all inventory changes in Shopify will update your spreadsheet.
- 1Click 'Save' to save your workflow
- 2Toggle the 'Active' switch in the top right
- 3Confirm activation in the popup dialog
Drop this into an n8n Code node.
JavaScript — Code Node{{ parseInt($node["Shopify Trigger"].json["variants"][0]["inventory_quantity"]) || 0 }}▸ Show code
{{ parseInt($node["Shopify Trigger"].json["variants"][0]["inventory_quantity"]) || 0 }}... expand to see full code
{{ parseInt($node["Shopify Trigger"].json["variants"][0]["inventory_quantity"]) || 0 }}Scaling Beyond 500+ inventory updates/day+ Records
If your volume exceeds 500+ inventory updates/day records, apply these adjustments.
Add execution queuing
Use N8n's workflow queue settings to prevent Google Sheets API rate limit errors. Set concurrent executions to 5 maximum with a 2-second delay between batches.
Batch similar updates
Group inventory updates by time window using a 'Schedule' trigger that processes queued changes every 5 minutes instead of real-time updates. This reduces API calls and improves reliability.
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
Use N8n for this if you need real-time inventory syncing and want full control over the data transformation. The webhook approach means your sheets update within seconds of Shopify changes, not every 15 minutes like polling-based tools. N8n's code nodes let you handle complex logic like variant-specific inventory or conditional updates based on stock thresholds. Skip N8n if you just need basic daily inventory reports — a simple CSV export handles that better.
This workflow costs almost nothing to run. Each inventory update triggers one execution, so 200 product changes per month equals 200 executions. That fits easily in N8n's free tier (5,000 executions monthly). Even heavy stores with 2,000+ inventory updates stay under $20/month on N8n's starter plan. Make charges $9/month minimum for webhooks, while Zapier starts at $20/month and counts each row update as a separate task.
Zapier handles Google Sheets permissions more smoothly — their OAuth setup just works, while N8n sometimes requires manual scope configuration. Make offers better built-in Shopify filters for variant-specific inventory without custom code. But N8n wins on flexibility and cost. You can add complex conditional logic (only sync when inventory drops below 10 units) or data transformations (calculate days of inventory remaining) that would require multiple steps in other platforms.
You'll hit Google Sheets' API rate limits at 100 requests per 100 seconds if you process inventory updates in rapid bursts. N8n doesn't queue these automatically — you'll need a 'Wait' node with random delays between batch updates. Shopify webhooks include all product data even for minor changes, so your filter logic needs to be precise or you'll update sheets unnecessarily. Multi-location inventory requires additional API calls to get location-specific counts since the webhook only includes total inventory.
Ideas for what to build next
- →Add low stock alerts — Extend the workflow to send Slack or email notifications when inventory drops below your reorder point.
- →Sync pricing changes — Create a parallel workflow that updates your spreadsheet when product prices change in Shopify using the same webhook approach.
- →Export to other systems — Add nodes to push inventory updates to your accounting software or third-party logistics provider when quantities change.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup