GUIDESyncNest guide

Sync Shopify orders to Google Sheets.

A scheduled export is a copy of your store from whenever it last ran. This is the difference between that and a sheet that changes as the order does.

Updated 25 September 2026 · 4 min read · Verified against SyncNest's own code

Most Shopify-to-Sheets setups are a scheduled export: once an hour, or once a night, something dumps the current state of your orders into a tab. It works until someone acts on the sheet between runs, refunds an order that is already marked shipped in row 214, or picks stock that sold out forty minutes ago.

A sync is a different shape. The sheet is not a copy taken at a moment; it is a view that changes when the record changes.

What drives a row

Shopify sends a webhook when an order is created or edited, when stock moves, when a product changes, when a customer record updates, and when a refund is issued. SyncNest listens to those and updates the matching row.

That means two things worth being precise about:

  • There is no polling interval to tune. A row updates when the change arrives, not on the next tick of a schedule.
  • An edit updates the row that record already owns, rather than appending a second one. SyncNest remembers which row belongs to which Shopify record.

One thing that memory cannot survive: re-sorting the tab. What it stores is a row number, so if you sort the sheet the data moves and the number does not. Subsequent writes land on the row that number now points at, the wrong record. Nothing re-locates it afterwards.

So treat the synced tab as append-only output. If you need a different order, use a Google Sheets filter view (which does not move the data) or a second sheet that reads from it with formulas. Sorting in place is the one edit to avoid.

SyncNest's dashboard listing five active syncs, customers, inventory, products, orders and order line items, each showing its direction, row count and last run, with sync health showing all healthy and Google connected
Each sync is its own connection: one resource, one tab, one direction. The dashboard is where you see them all still running.

What you can sync

Five resources, on every plan including Free:

Resource What lands in the sheet
Orders One row per order, with totals, status, customer and address fields
Order line items One row per line, see below
Inventory Available quantity per item, per location
Products Title, status, vendor, type, handle, tags
Customers The customer record, with a consent step described below
Refunds Refunds against orders

What changes by plan is not which resources but how many syncs run at once and how many rows a month they may write: one sync and 500 rows on Free, five syncs and 10,000 rows on Starter, unlimited on Pro.

A Google Sheet tab of Shopify orders with a green header row: order number, date, processed date, customer, email, total, subtotal, tax, currency, payment and fulfillment status, item count, tags, note, country and city
An orders tab, live. The header row is yours to rename; the columns are yours to choose.

One row per order, or one per line item

An orders sync gives you one row per order, which is what you want for revenue and fulfilment status. It is the wrong shape for anything about products, an order with three different items is still one row, and the items are a count.

Line-item mode gives you one row per line instead, so the same order appears as many rows as it has items, each with its own SKU, quantity and line price:

A Google Sheet in line-item mode: orders 1024, 1025, 1028 and 1030 each appear on two rows, one per line item, with line item, line SKU, quantity and line price columns alongside the order-level fields
Order #1024 twice, #1025 twice, #1030 twice, one row per line. This is the shape you need for anything grouped by product or SKU.

Line-item mode is a per-sync setting on the Pro plan. A practical pattern is to run both: an orders sync for the finance view, and a line-item sync for the product view, into two tabs of the same workbook.

How far back the history goes

A new sync backfills, and for orders the window is the last 60 days. That is not a SyncNest limit. It is the order history Shopify grants apps by default. The connect form says so on the run, and the History page notes it on the backfill record.

The form has an Order history to include option whose All orders setting stays locked until Shopify approves extended order access for your store. It is locked rather than merely hidden, so it cannot half-work if you pick it.

Inventory, products and customers have no such window.

Customer data is a decision, not a default

A customers sync writes personal data into a Google Sheet, which is your spreadsheet in your Drive, governed by your own sharing settings. SyncNest makes you say so: the sync form carries a consent checkbox reading "This sync writes customer personal data into your Google Sheet. I understand and consent to storing customer PII there."

It is worth treating that as a real decision rather than a click. A sheet shared with a link is a different privacy posture from a Shopify admin behind staff accounts.

Setting one up

SyncNest's sync form: name, what to sync, direction, conflict policy, line-item mode, mark rows as deleted, the customer PII consent box, and tab name with an option to add a tab to the connected workbook
One form: what, which way, into which tab. The direction field is the one to slow down on, see the two-way guide.
  1. Connect Google. The consent screen opens in a new tab, because Google does not allow it inside an iframe. SyncNest asks for Sheets access and Drive access limited to files it creates or you pick. It cannot see the rest of your Drive.
  2. Choose the resource and whether SyncNest should create a sheet for you or add a tab to a workbook you already have.
  3. Pick the direction. Shopify → Sheet is the read-only one. Two-way and write-back apply sheet edits back to your store, which is a different commitment, see two-way sync.
  4. Let the backfill finish, then open the sheet and check the columns before you build anything on top of it.

Then leave it alone. The point of a sync is that step five does not exist.

See what SyncNest does, the free plan runs one sync and 500 rows a month, which is enough to check the shape of your data before committing to it.

FAQCommon questions

How quickly does a row update after an order changes?
Rows are driven by Shopify webhooks rather than a schedule, so a new order or an edit updates its row within seconds of the change reaching the app. An hourly reconcile and a one-click backfill catch anything a webhook missed.
How far back does the order history go?
Sixty days on a backfill, which is the window Shopify grants apps by default. The connect form has an "Order history to include" option whose "All orders" setting unlocks once Shopify approves the extended orders scope for your store.
Which Shopify records can be synced?
Orders, inventory, products, customers and refunds, on every plan including Free. What changes by plan is how many syncs you can run at once and how many rows a month they may write.
Does SyncNest keep a copy of my store data?
No. Row values live in your Google Sheet. SyncNest keeps Shopify record IDs and content hashes so a sync is idempotent, and your Google token encrypted, deleted the moment you disconnect or uninstall.

NEXTKeep reading

INBOXStill stuck?

If something here doesn't match what you see in the app, tell us. The guides are written from SyncNest's own behaviour and we fix them when it changes. support@appnest.studio.

About SyncNest