Intermediate~20 min setupProductivity & E-commerceVerified April 2026
Google Sheets logo
Shopify logo

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-time

Use case type

sync

Real-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.

/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 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.

Shopify store with admin access and API permissions enabled
Google Sheets spreadsheet with Product ID column matching Shopify product IDs
N8n account (cloud or self-hosted instance)
Basic understanding of your current inventory tracking process

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Product IDid
Inventory Quantityvariants[0].inventory_quantity
4 optional fields▸ show
Product Titletitle
SKUvariants[0].sku
Last Updatedupdated_at
Inventory Policyvariants[0].inventory_policy

Step-by-Step Setup

1

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.

  1. 1Click 'New Workflow' on your N8n dashboard
  2. 2Name it 'Shopify Inventory Sync'
  3. 3Click the '+' button to add your first node
What you should see: Empty workflow canvas with a single '+' node ready for configuration.
2

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.

  1. 1Search for 'Shopify Trigger' and select it
  2. 2Choose 'Webhook' as the trigger type
  3. 3Select 'Product Update' from the event dropdown
  4. 4Enter your Shopify store URL and API credentials
What you should see: Shopify webhook URL appears in the node. Copy this URL for the next step.
Common mistake — Don't select 'Product Create' — you only want inventory changes, not new products
n8n
+
click +
search apps
Google Sheets
GO
Google Sheets
Add Shopify webhook trigger
Google Sheets
GO
module added
3

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.

  1. 1Go to Settings > Notifications in your Shopify admin
  2. 2Click 'Create webhook'
  3. 3Paste the N8n webhook URL from step 2
  4. 4Select 'Product update' as the event
  5. 5Set format to JSON and save
What you should see: Webhook appears in your Shopify notifications list with 'Active' status.
Common mistake — Webhook must use HTTPS — N8n cloud provides this automatically but self-hosted needs SSL
4

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.

  1. 1Click 'Listen for test event' on the Shopify trigger node
  2. 2In Shopify admin, edit any product's inventory quantity
  3. 3Save the product changes
  4. 4Return to N8n and check for received data
What you should see: Sample product data appears showing inventory_quantity, id, title, and other fields.
n8n
▶ Run once
executed
Google Sheets
Shopify
Shopify
🔔 notification
received
5

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.

  1. 1Add an 'IF' node after the Shopify trigger
  2. 2Set condition to 'inventory_quantity' 'is set'
  3. 3Add second condition with AND: previous inventory ≠ current inventory
  4. 4Connect true branch to continue the workflow
What you should see: IF node shows green checkmark and passes only inventory-related updates.
Common mistake — Skip the previous inventory comparison if you want all inventory updates, not just changes
Google Sheets
GO
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Shopify
SH
notified
6

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.

  1. 1Add 'Google Sheets' node after the IF node
  2. 2Click 'Connect my account' and authorize with Google
  3. 3Select 'Update' as the operation
  4. 4Choose your inventory spreadsheet from the dropdown
What you should see: Google Sheets node shows 'Connected' status and lists your available spreadsheets.
7

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.

  1. 1Set 'Range' to your data range (e.g., 'A:E')
  2. 2Choose 'Where' as the update method
  3. 3Set lookup column to match your Product ID column
  4. 4Map lookup value to '{{ $node["Shopify Trigger"].json["id"] }}'
  5. 5Select the column to update with new inventory count
What you should see: Preview shows how N8n will find and update the matching product row.
Common mistake — Your sheet needs a Product ID column that matches Shopify IDs — not SKU or product title
8

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.

  1. 1Click 'Add field to update' for inventory quantity
  2. 2Map to '{{ $node["Shopify Trigger"].json["variants"][0]["inventory_quantity"] }}'
  3. 3Add field for last updated timestamp
  4. 4Map to '{{ $now.format("yyyy-MM-dd HH:mm") }}'
  5. 5Add any other fields like product title or SKU
What you should see: Field mapping shows Shopify data flowing to specific spreadsheet columns.
Common mistake — Shopify products can have multiple variants — this maps the first variant's inventory only
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

Node Settings > Error Handling

Add error handling

Configure what happens when the update fails. This prevents the workflow from breaking on temporary issues.

  1. 1Click the Google Sheets node settings (gear icon)
  2. 2Set 'On Error' to 'Continue'
  3. 3Add an 'Error Trigger' node on a separate branch
  4. 4Connect it to a notification method (email, Slack, etc.)
What you should see: Workflow shows error handling path that activates when updates fail.
10

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.

  1. 1Update a product's inventory in Shopify admin
  2. 2Watch the N8n execution log for activity
  3. 3Check your Google Sheet for the updated quantity
  4. 4Verify the timestamp shows the current time
What you should see: Spreadsheet shows updated inventory count and timestamp within 30 seconds of the Shopify change.
Common mistake — Google Sheets may take 10-15 seconds to refresh in your browser after N8n updates it
11

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.

  1. 1Click 'Save' to save your workflow
  2. 2Toggle the 'Active' switch in the top right
  3. 3Confirm activation in the popup dialog
What you should see: Workflow shows 'Active' status and begins processing real inventory updates.
Common mistake — Deactivate during inventory imports or bulk changes to avoid flooding your sheet with updates

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.

1

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.

2

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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 alertsExtend the workflow to send Slack or email notifications when inventory drops below your reorder point.
  • Sync pricing changesCreate a parallel workflow that updates your spreadsheet when product prices change in Shopify using the same webhook approach.
  • Export to other systemsAdd nodes to push inventory updates to your accounting software or third-party logistics provider when quantities change.

Related guides

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