Sigmera.

Clean CSVs for Shopify imports

Shopify's customer importer is strict in ways that are easy to miss. It reads UTF-8 CSV and nothing else, it matches header names character for character, and it silently skips customers whose email address or phone number already appears in the file — keeping only the last one. Sigmera is not a Shopify app and asks for no permissions on your store: you export the CSV, clean it in a browser tab, and put it back through Shopify's own import screen. The customer list — names, addresses, order history attached to real people — never leaves your device, because there is no server to send it to.

How it works

  1. 1
    Export the customers from Shopify
    In the Shopify admin, open Customers, choose Export, and pick the CSV. Shopify states that a CSV file with UTF-8 encoding is the only file format that can be used to import to or export from Shopify, so the file you get back is already in the right encoding — keep it that way. Exports are capped at 15 MB, and Shopify recommends splitting anything larger into multiple files. If what you have is a workbook someone emailed you instead of a Shopify export, convert it to CSV first.
  2. 2
    Clean it in a browser tab
    Drop the CSV into Sigmera. It is parsed by JavaScript running on your own machine, so a file listing named customers, their phone numbers, and their delivery addresses is not transmitted anywhere. Deduplicate on email and phone, standardize the phone column to E.164, split or combine name columns, and rewrite the consent columns to the yes and no values Shopify accepts. Every change is previewed before you commit to it.
  3. 3
    Import it back through Shopify's own screen
    Download the cleaned CSV and go to Customers, then Import, in the Shopify admin. Because the duplicates are already collapsed and the headers already match, the import runs against a file Shopify has no reason to skip rows from. Shopify emails you when the import finishes; check the count against your row count before you send anything to the list.
  4. 4
    Nothing about your store is reachable from Sigmera
    There is no Shopify app to install, no OAuth grant, no API key, and no read scope on your customers. Sigmera never touches your store — it opens a file you already downloaded. That is the whole integration, and it is why a customer list, which is personal data under the GDPR, can be cleaned without a data-processing question ever arising: the bytes stay on your computer.

Common Shopify clean-ups

Collapse duplicate customers before Shopify drops them

Shopify documents that customers with duplicate email addresses or phone numbers are skipped during an import, and that only the last profile with the duplicated value is imported. It does not warn you row by row, and skipped rows are not tagged, so a file assembled from a POS export, a newsletter list, and last year's orders quietly loses whichever version of a customer came first — often the one with the complete address. Collapse the duplicates yourself, choosing which copy survives, before the file goes in.

  1. Stack your exports into one CSV and open it in the remove-duplicates tool
  2. Match on the email column, ignoring case and surrounding whitespace
  3. Decide whether to keep the first or the last copy of each match — Shopify would keep the last
  4. Check the phone column for the same problem, since a duplicate phone also causes a skip
  5. Download the deduplicated file and import it
Split one Name column into First Name and Last Name

Shopify's customer CSV has separate First Name and Last Name columns. Plenty of the lists merchants actually receive — a wholesale order form, an event sign-up sheet, an export from an older store — hold a single name field instead. Import that file as-is and either the name lands entirely in one column or the header fails to match at all, which breaks every '{{first_name}}' token in the emails you send afterwards.

  1. Open the file in the name splitter and pick the column holding whole names
  2. Choose the order the names are written in, including 'Last, First' if that is what you have
  3. Send middle names to their own column, or fold them into the first-name field
  4. Rename the two new columns to First Name and Last Name and export
Standardize the phone column so SMS marketing works

Shopify's customer CSV documentation lists a Phone column but states no format for it, which is exactly why the column arrives as a mixture of (415) 555-0142, 415.555.0142, and 0415 555 0142 with no country code at all. Two consequences follow. Shopify's duplicate check compares the values as written, so the same person in two formats survives as two rows rather than being caught. And SMS marketing needs a number a carrier can route — the international format defined by ITU-T Recommendation E.164, a plus sign, country code, and national number with no separators.

  1. Open the export in the phone cleaner and select the Phone column
  2. Set the default country for numbers written without a country code
  3. Convert the whole column to E.164 in one pass and review the rows it could not parse
  4. Re-run the duplicate check on the standardized column, since matches appear that were invisible before
Fix a header row that fails with an error before any row is read

The importer matches on header names, and Shopify's own migration guide warns that a header with a space on either side produces an 'Error found in CSV header' message. The consent columns are equally literal: Accepts Email Marketing, Accepts SMS Marketing, and Accepts WhatsApp Marketing take only 'yes' or 'no', so a file that says TRUE, Y, or Subscribed imports every customer as unsubscribed. Tags are a comma-separated list and are not case sensitive.

  1. Rename headers to the exact Shopify names — Email, First Name, Last Name, Phone — with no leading or trailing spaces
  2. Use find and replace on the consent columns to turn TRUE and Subscribed into yes, FALSE and Unsubscribed into no
  3. Confirm the Email column is present, since Shopify requires the column even when a value is blank
  4. Export and import — a header error costs you nothing but a re-upload, a silent consent error costs you deliverability
Move a Shopify export into an email or SMS tool

The traffic runs the other way as often as not: customers come out of Shopify and go into an email platform. The export is a Shopify-shaped file, not a Mailchimp- or Klaviyo-shaped one, and the receiving tool has its own required headers and its own opinion about what an email address looks like. Clean the file once, in the middle, rather than fixing the same column twice in two products.

  1. Export customers from Shopify and open the CSV in Sigmera
  2. Lowercase and trim the email column so the receiving tool's duplicate check works
  3. Combine or split name columns to match what the destination expects
  4. Convert to .xlsx if the tool you are feeding wants a workbook rather than plain text

Sources

  1. 1.Importing and exporting customer lists — Shopify Help Center
  2. 2.Customer CSV file reference — Shopify Help Center
  3. 3.Importing contact lists from Mailchimp manually — Shopify Help Center
  4. 4.ITU-T Recommendation E.164 — The international public telecommunication numbering plan

Frequently asked questions

Does Sigmera connect to my Shopify store?
No. There is no app to install from the Shopify App Store, no OAuth grant, and no API access to your customers or orders. You export the CSV yourself, clean it in your browser, and import it yourself through Shopify's import screen. Nothing about your store is exposed, because nothing about your store is reachable from Sigmera.
What happens if my file has duplicate customers?
Shopify skips them. Its documentation states that customers with duplicate email addresses or phone numbers are skipped during an import and are not tagged, and that only the last profile with the duplicated value is imported. Whichever copy of the customer came first in the file is discarded without a row-level warning, which is why it is worth deciding for yourself which copy survives before importing.
What format does Shopify need the file in?
A CSV with UTF-8 encoding — Shopify documents it as the only format that can be used to import to or export from the platform — with an Email column present even if some values are blank. Import files are capped at 15 MB, so a large customer base has to be split across several files. Header names have to match exactly, with no spaces around them, or the import stops with a header error.
Does Shopify require a particular phone number format?
Shopify's customer CSV reference lists a Phone column but does not state a required format for it. That does not mean the format is unimportant: the duplicate check compares the values as written, so one customer stored two ways survives as two rows, and SMS marketing needs a routable number. Converting the whole column to E.164 — the international numbering plan defined by ITU-T Recommendation E.164 — solves both at once.
How do I set marketing consent correctly in the CSV?
Use the exact values Shopify accepts. Accepts Email Marketing, Accepts SMS Marketing, and Accepts WhatsApp Marketing take only yes or no. A file exported from another system that writes TRUE, Y, or Subscribed will import without an error and mark those customers as not subscribed, which is a silent failure — find and replace the values before importing rather than after.
Is it safe to clean a customer list this way under the GDPR?
Cleaning the file in Sigmera involves no transfer at all: the CSV is read into your browser's memory and written back out as a download, so no third party receives the personal data in it. That removes the processor question for the cleaning step entirely. Your obligations as the controller of that customer list — lawful basis, retention, and what you do with the file afterwards — are unchanged, and Sigmera is not a substitute for them.