Updating Existing Shopify Customers with a CSV Import

By The Twinfold teamPublished 8 min read
Short answer

Shopify updates existing customers from a CSV only when you check Overwrite existing customers that have the same email or phone number. Rows are matched by exact email or phone, and Shopify says all of that customer's data is replaced, so blank cells and missing addresses can wipe real data. Use bulk editing for names, tags, consent and metafields, and keep CSV updates for fields bulk editing can't reach.

Key takeaways
  • Shopify's customer import only updates existing profiles when Overwrite existing customers that have the same email or phone number is checked.
  • The importer matches existing customers by exact email address or phone number, so a row with a changed email and no matching phone creates a new customer.
  • Shopify's help page says overwriting replaces all of the customer's data, including import tags, and merchants report blank cells wiping addresses, phones and tags.
  • Bulk editing in the Shopify admin changes names, tags, marketing consent and metafields on many customers without touching other fields.
  • Before overwriting customers with a CSV, export them first as a backup and test the file on one or two profiles.

To update existing Shopify customers with a CSV, you import the file with Overwrite existing customers that have the same email or phone number checked. Shopify then finds each customer by exact email or phone and replaces that customer's data with your row. That replacement is the catch: Shopify's own help page says all of the customer's data is replaced, so an empty cell or a missing second address can erase real information. For names, tags, marketing consent and metafields, bulk editing in the admin is safer, and the CSV route is best kept for fields bulk editing can't change.

This guide explains what the overwrite option does, which tool fits each field, and a step-by-step routine for the cases where a CSV really is the right tool.

Can you update existing customers with a CSV in Shopify?

Yes, but only through the overwrite option, and only for customers your file can match. Shopify's import has no "update only these columns" mode.

When you import a customer CSV from Customers > Import, Shopify offers one checkbox that controls existing customers: Overwrite existing customers that have the same email or phone number. The help page describes it as the way to update existing customer profiles. Here is how the two settings behave for a row that matches a customer you already have:

Your rowOverwrite uncheckedOverwrite checked
Matches an existing customer's exact email or phoneThe existing profile isn't updatedThe existing profile's data is replaced by the row
Matches nobodyA new customer is createdA new customer is created
Repeats an email or phone used earlier in the same fileSkipped; only the last such row is importedSkipped; only the last such row is imported

Two details from Shopify's help page matter here. First, rows with a repeated email or phone inside the file are skipped and aren't tagged, and only the last one is imported. Second, if you overwrite customers, all of their data is replaced, "including the import tags," so even the tag the importer adds for its own segment isn't a reliable record of who was updated.

Merchants in the Shopify Community describe the unchecked case the same way: a file of existing customers with new tags did nothing to those customers, and the only way to apply it was to overwrite them.

What does Overwrite existing customers replace?

Treat it as replacing the whole profile with your row. Shopify's documentation says all of the customer's data is replaced, and merchant reports show what that means in practice.

  • Blank cells can blank fields. A merchant who imported a file with only email and tag columns, with overwrite checked, reported that the customers' addresses, phone numbers and existing tags were overwritten with empty values.
  • Extra addresses can disappear. The customer CSV has columns for the default address only. Another merchant exported customers, changed only the tags column, and reimported two customers as a test. Afterward, each profile kept only its default address; the other saved addresses were gone.
  • Tags are replaced, not added. The Tags column holds the full, comma-separated tag list. Whatever is in that cell becomes the customer's tags.

Not every report agrees. One Community reply says only the columns present in the file are overwritten, so a file with just an email column and one metafield column would leave everything else alone. Shopify's help page doesn't promise that, and other merchants lost data doing something similar. Because the behavior isn't documented column by column, plan for the worst case: every field you can see in the CSV should be filled with the value you want to keep, and anything the CSV can't hold (extra addresses, for example) should be considered at risk until you've tested it.

Should you use bulk editing or a CSV?

Use bulk editing whenever it covers the fields you need. It edits only what you change and never creates new customers.

Shopify's help page on managing customers says bulk editing can change first name, last name, tags, email, SMS and WhatsApp marketing consent, and metafield values on many customers at once. The import page's version of that list also includes the Email field, so check Columns in your own admin to see what's offered. Address lines, phone number and tax exempt status can't be bulk edited; those need the CSV or an edit to each profile.

FieldBulk editingCSV with OverwriteOne profile at a time
First and last nameYesYesYes
Tags (add or remove)Yes, with Add tags or Remove tagsReplaces the whole tag listYes
EmailYes (per the import help page)Risky, see belowYes
Email, SMS and WhatsApp marketing consentYesYes (yes or no)Yes
Supported metafieldsYesYes, if the definition existsYes
PhoneNoYesYes
Default addressNoYesYes
Additional addressesNoNo columns for themYes
NoteNoYesYes
Tax exemptNoYes (yes or no)Yes
Order history, total spentNoNo (those columns aren't imported)No

To bulk edit, go to Customers, select the customers (or select all in a segment or search with Select all 50+ customers in this segment), and either use Add tags or Remove tags, or click Edit customers, choose fields under Columns, make the changes and click Save.

A typical case: you want to tag 300 customers from a spreadsheet as "wholesale-2026". If they share something you can search or segment on, select them that way and use Add tags. If they don't, a CSV with overwrite would replace each customer's existing tags and risk the blanking described above, so it's usually faster overall to add a temporary tag by hand in batches than to repair 300 damaged profiles.

How do you update customers with a CSV safely?

Start from Shopify's own export of the exact customers you're changing, change only the cells you mean to change, and test on one or two profiles first.

  1. Export a backup. Go to Customers > Export. Choose Selected customer, a segment (the # customers matching your filters option) or All customers. Under Fields included, check Customer tags and, if you use them, Customer metafields. Choose CSV for Excel, Numbers, and other spreadsheet programs and click Export customers. Exports of more than 50 customers are emailed to you. Keep this file untouched.
  2. Make a working copy. Do all edits in a copy, so you can reimport the backup if something goes wrong.
  3. Change only what you mean to change. Leave every other column exactly as exported, including the full Tags list and the default address columns. Don't delete columns to "keep it simple"; a missing column is the case where merchants report fields being wiped.
  4. Don't change Email or Phone in the same pass. Those are how Shopify finds the customer. Keep them identical to the export.
  5. Write tags as the full list. To add a tag, append it to the existing value, for example change vip,newsletter to vip,newsletter,wholesale-2026. Tags aren't case sensitive.
  6. Save as UTF-8 CSV, 15 MB or smaller. Split larger files.
  7. Test on one or two customers. Pick at least one customer with several saved addresses and a note. Import the test file with Overwrite existing customers that have the same email or phone number checked, then open each profile and compare it field by field with the backup.
  8. Import the rest only if the test profiles look right, then spot-check a handful more.

For metafields, the column header has to match the definition, in the form customer.metafields.namespace.key (Shopify's example for the standard birth date is customer.metafields.facts.birth_date). Only boolean, date, date and time, integer, decimal and single line text metafields work in the CSV, and the definition must already exist in your admin. Exporting with Customer metafields checked gives you correctly named headers to copy.

Why can a CSV update create duplicate customers?

Because a row that doesn't match an existing customer is imported as a new one. Shopify matches on exact email or phone only, and the help page says a profile is created for each email address in the file.

That makes three kinds of edits risky:

  • Changing an email. If you replace jane@oldmail.com with jane@newmail.com in the file, the row no longer matches Jane by email. If her phone in the row is blank or different, Shopify creates a second Jane with the new email and leaves the original untouched.
  • Retyping emails or phones. The importer compares them exactly, and Shopify doesn't document how strictly it compares formatting. Copy them straight from the export instead of retyping or reformatting them, so you never have to find out.
  • Mixing new and existing people. A file that adds new customers and updates old ones in one import makes it hard to tell afterward which rows created profiles. Run updates and additions as separate imports, and follow our guide to importing customers into Shopify without creating duplicates for the new ones.

One merchant in the Shopify Community reported that keeping the customer ID column from an export in the file made Shopify identify customers by ID rather than by email or phone, which let them correct a wrong email. Shopify's help page doesn't document an ID column for customer imports, so don't rely on it without testing on a single profile first.

If an import has already created duplicates, find them by comparing a fresh export, as described in how to find duplicate customers in Shopify, and combine confirmed pairs with Customers > [customer] > More actions > Merge customer. Our guide on what happens to orders, emails and addresses when you merge explains which profile's details survive.

How Twinfold helps

Twinfold is a Shopify app by NewClick (independent, not made by Shopify). It doesn't import or edit customer fields, so it won't replace the CSV or bulk editing for updates. It helps afterward, if an update pass created second profiles.

Scan for duplicates reads your whole customer list through Shopify's bulk export, and scanning is free on every plan. Each group shows Why they match: Email variant, Same phone (one profile's phone found on another profile's address, with matching names) or Same name and address. A customer duplicated by a changed email usually still shares a name and address with the original, so it shows up as a Same name and address group. Every merge is previewed with Shopify before you confirm it, the merged profile keeps the main profile's email, and merges can't be undone, so pick the profile with the email you want as Keep as main profile.

Frequently asked questions

Does a Shopify customer import update existing customers?

Only if you check Overwrite existing customers that have the same email or phone number during the import. Without it, rows that match an existing customer's email or phone aren't applied to that profile. With it, Shopify replaces the matching customer's data with the row in your file.

Can I add tags to existing Shopify customers with a CSV without overwriting them?

Not with Shopify's own importer. Leaving Overwrite unchecked doesn't add the tags, and checking it replaces the existing tags and can blank other fields. Select the customers in the admin instead, for example by a segment or search, and use Add tags from the bulk actions.

Why did my customer import delete customers' addresses?

The customer CSV only has columns for the default address, and Shopify replaces the customer's data when you overwrite. A merchant in the Shopify Community reported that after overwriting two customers from an export, only the default address remained on each profile. Test on one customer with several addresses before importing a full file.

Can I change customers' email addresses with a CSV import?

It's risky. The importer finds existing customers by exact email or phone, so a row with a new email only matches if its phone number matches the old profile. If it doesn't, Shopify creates a new customer and you end up with a duplicate. Change emails individually or with bulk editing instead.

Sources

  1. Shopify Help Center: Importing and exporting customer lists
  2. Shopify Help Center: Managing customer profiles
  3. Shopify Community: Update customers with import deleting their addresses
  4. Shopify Community: Import customer tags without overwriting existing data
  5. Shopify Community: Overwriting existing customers that have the same customer number