Import & export

Bring members across from another loyalty app with a CSV, or export your current members as a backup. Both live in Settings, under Member Import & Export.

GB GibbondDev

Member Import & Export

Export members
Export members CSV
Import members
⚠️ Full replace — overwrites matching members
Add CSV file or drop a .csv here
I understand this overwrites existing balances
Start import
Export and import live side by side in Settings. Imports run in the background with live progress.

Exporting members

Click Export members CSV to download every enrolled member as a CSV file. Use it as a backup, to review balances in a spreadsheet, or as a starting template for an import — the export columns are a superset of what the importer reads, so an exported file can be edited and re-imported as-is.

CSV format

The importer needs only three columns. Any extra columns from an export are ignored. The header row is required and column names are case-insensitive.

ColumnRequiredWhat it is
emailYesThe member's email. Used to find the matching Shopify customer.
pointsYesA whole number ≥ 0. Becomes the member's points balance (and lifetime baseline).
tierNoA tier slug (e.g. gold). Leave blank to let the points decide the tier.
💡

The tier value must be a tier slug, not its display name — for example vip-member, not "VIP Member". An export already uses slugs, so round-trips are safe.

A minimal import file looks like this:

email,points,tier
alice@example.com,1200,gold
bob@example.com,350,silver
carol@example.com,0,

What an import does

For every row whose email matches an existing Shopify customer, the import:

  • Enrols the member — with no sign-up bonus, regardless of your enrollment bonus setting.
  • Sets their points to the CSV value (this is a set, not an add).
  • Assigns the tier from the tier column, or works it out from the points if the column is blank.
  • Dates the points to the import day — so if you use rolling (FIFO) expiry, the clock starts fresh from the day you import.
⚠️

Import is a full replace. For any email that matches an existing member, the import overwrites their current balance and clears their previous points history (kept only as cancelled rows for audit). Already-issued discount codes are not affected. This cannot be undone — so for a one-time migration, import before members start earning.

How matching works

Members are matched to Shopify customers by email. If an email has no matching Shopify customer, that row is skipped and listed in the result — the import never creates new Shopify customers. The skipped emails are shown when the import finishes, so you can create those customers in Shopify and re-run if needed.

Tiers after import

A tier from the CSV is applied immediately. Gibbond also re-checks every member's tier once a day against your tier thresholds, so a tier is ultimately driven by the member's points. If you import a tier that the points don't qualify for, it will be reconciled to the points-based tier on the next daily run. To keep imported tiers stable, make sure your tier thresholds line up with the points you import.

Running an import

Imports run in the background, so you can leave the page while one is in progress. A status banner shows live progress and a summary when it finishes (imported, skipped and any errors). After the data is written, Gibbond automatically refreshes each member's storefront points balance and tier.

LimitValue
Maximum file size5 MB
Maximum rows per import10,000
Duplicate emails in a fileThe last row for an email wins
💡

Re-running the same file is safe: because each import is a full replace, re-importing simply re-settles members to the file's values rather than stacking points.