Guide

How to backfill existing Shopify data into Baserow

A new sync starts capturing changes from the moment you enable it — backfill loads everything that came before. Here's how to populate Baserow with your existing Shopify records, safely and in the right order.

Backfill re-uses the live sync pipeline, so the rows it writes are indistinguishable from real-time ones — same transforms, same relationships, same idempotent upserts.

Step by step

Backfill in five steps

1

Create and enable your sync first

Backfill runs against an existing sync, so set up the sync and enable it before backfilling. New syncs only receive future webhook changes — backfill is what loads everything that already exists in your store.

2

Open the sync and run Backfill

Open the sync’s detail page and click Backfill. Baseify enumerates your records with Shopify Bulk Operations and runs each one through the same pipeline a live webhook would, so backfilled rows are identical to synced ones.

3

For templates, use Backfill all

If you provisioned a template, use Backfill all instead. It processes tables in dependency order — customers and products before orders and line items — so relationships resolve on the first pass instead of needing a second run.

4

Watch progress in the event log

Track the run in the event log. Each record becomes an event with a status; filter by sync or status to spot anything that failed — for example a mapping into a read-only column — then fix it and retry just those events.

5

Re-run any time — it's idempotent

Backfill upserts by your external key, so re-running never creates duplicates. It’s safe to run again after adding a field mapping, fixing a column type, or expanding a date range.

Why dependency order matters

Relationships are link-row fields that resolve only once both rows exist. If you backfill orders before customers, the customer links fill in on a later pass rather than immediately. Backfill all avoids this by loading parents before children. Building syncs by hand? Backfill the referenced resource (e.g. Customers, Products) first. See relationships in the docs.

Troubleshooting

Some events failed during backfill

Open the event log, filter to failed or dead-lettered events, fix the cause (a permission, a read-only column, a mapping), then retry — only the affected events re-run.

Numbers came in as text

Use Fix number columns in the sync’s Maintenance section, then backfill again — it’s idempotent.

Related: Sync orders · Sync products · Backfill (docs)