Platform Guides
Fix Common Shopify Customer Export Data Problems
Shopify customer exports are full of duplicates, inconsistent phone numbers, and formatting quirks that break imports into Mailchimp, Klaviyo, and Facebook Ads. Learn how to identify and fix every common issue before it ruins your campaigns.
Why Shopify Customer Exports Are Always Messy
Shopify is built to sell products, not to manage clean customer data. Its customer export feature reflects this priority. When you export customers from Shopify's admin panel (Customers → Export), you get a CSV file that accurately represents Shopify's internal data model but is poorly suited for use in external marketing tools, CRM systems, or advertising platforms.
The problems are consistent and predictable. Every Shopify store owner who has tried to import their customer list into Mailchimp, Klaviyo, Facebook Custom Audiences, or a CRM like HubSpot has encountered the same issues. Understanding these problems and having a systematic fix for each one will save you hours of frustration every time you need to use your Shopify data outside of Shopify.
Problem 1: Duplicate Customers from Multiple Orders
The most common and most damaging issue in Shopify customer exports is duplicate records. Shopify creates duplicate customer entries in several ways. When a customer checks out as a guest multiple times, each checkout can create a separate customer record if the email address has any variation (different casing, a typo, or using a plus-address like user+shop@gmail.com). When a customer uses different email addresses for different orders (personal email for one, work email for another), Shopify treats them as separate people.
The duplication gets worse when Shopify's data includes both the billing address customer and the shipping address recipient. If a customer orders a gift, the recipient's information may be stored as a separate customer record. In stores with significant gift-giving volume (holidays, baby products, wedding registries), this can inflate the customer count by 20-30%.
The consequence of importing these duplicates into your email marketing platform is immediate: customers receive duplicate emails, your list metrics are inflated, and your cost per subscriber is artificially high. Worse, platforms like Mailchimp charge based on subscriber count, so duplicates directly increase your bill.
// Common Shopify duplicate patterns:
john@gmail.com | John Smith | 123 Main St
John@gmail.com | John Smith | 123 Main St (casing diff)
john@gmail.com | John Smith | 456 Oak Ave (gift order shipping)
john+shop@gmail.com| John Smith | 123 Main St (plus address)
4 records for 1 real customer
How to Fix It
Deduplication on Shopify data requires normalizing email addresses before matching. Lowercase all emails first. Then strip plus-address tags (everything between + and @). After normalization, deduplicate on email, keeping the most recent record (or the record with the most complete data). Our CSV deduplication guide covers these strategies in detail.
For customers who used entirely different email addresses, you need to match on other fields. Name plus phone number, or name plus shipping address, can catch duplicates that email-only matching misses. Fuzzy matching on names (to catch "Rob Smith" vs "Robert Smith") improves the catch rate further.
Problem 2: Inconsistent Phone Number Formats
Shopify stores phone numbers exactly as the customer entered them. There is no validation or formatting at the checkout level. The result is a phone column that contains every conceivable format: (555) 123-4567, 555-123-4567, 5551234567, +15551234567, 555.123.4567, 1-555-123-4567, and more. Some entries include country codes, some do not. Some have extensions. Some have dashes in the wrong places because the customer fat-fingered the input.
This inconsistency causes problems everywhere. SMS marketing platforms like Klaviyo, Postscript, and Attentive require E.164 format (+15551234567) and will reject any phone number that does not match. Facebook Custom Audiences requires phone numbers with country codes for matching. CRM imports may reject non-standard formats or, worse, import them as-is and create data quality problems downstream.
How to Fix It
Standardize all phone numbers to E.164 format before importing into any external system. This means stripping all non-digit characters, adding the country code if missing (defaulting to +1 for US/CA stores), and validating the resulting number has the correct digit count. Our guide on converting phone numbers to E.164 covers the complete process. For a deeper look at how phone number formatting goes wrong in spreadsheets, see our article on how Excel changes phone numbers.
Problem 3: Missing and Incomplete Fields
Shopify only requires an email address at checkout (and even that can be optional for some configurations). Every other field, including name, phone, and address, is optional for digital products or when only a billing email is needed. The result is a customer export where significant portions of records are missing key fields.
The pattern of missing data depends on your store type. Physical product stores tend to have complete shipping addresses but may be missing phone numbers. Digital product stores often have only email addresses with everything else blank. Stores that use Shopify POS for in-person sales may have phone numbers but missing email addresses.
Common missing fields and their frequency in typical Shopify exports:
Email: ~95-100% complete (required at checkout)
First Name: ~80-90% complete
Last Name: ~75-85% complete
Phone: ~40-60% complete
Address: ~60-80% complete (higher for physical products)
City/State: ~60-80% complete
Zip: ~60-80% complete
Country: ~60-80% complete
How to Fix It
You cannot invent data that does not exist, but you can clean up the partial data you have. Standardize null representations (Shopify uses empty strings, but some rows may have "N/A" or whitespace-only values from imported data). Filter your export based on your target platform's requirements: if you need phone numbers for an SMS campaign, filter to only records with phone data rather than importing incomplete records.
Problem 4: Address Formatting Inconsistencies
Shopify address data is entered by customers and stored as-is with minimal normalization. You will see "Street" vs "St" vs "St.", "Avenue" vs "Ave" vs "Ave.", "Apartment 4B" vs "Apt 4B" vs "Apt. 4B" vs "#4B." State names may be full ("California") or abbreviated ("CA" or "Ca"). Country names may be "United States," "US," "USA," or "United States of America."
This inconsistency is particularly damaging for Facebook Custom Audiences and Google Customer Match, which use address data for matching. Facebook's algorithm does its own normalization, but feeding it clean, consistently formatted data significantly improves match rates. Our guide on increasing Facebook audience match rates covers the specific formatting requirements.
How to Fix It
Standardize state abbreviations to two-letter codes (CA, not California). Normalize country names to ISO 3166-1 alpha-2 codes (US, not United States). Abbreviate street suffixes consistently (St, Ave, Blvd, Dr). Remove periods after abbreviations. These transformations are tedious to do with formulas but straightforward with a dedicated cleaning tool.
Problem 5: Marketing Consent and Tags
Shopify exports include an "Accepts Marketing" column that indicates email opt-in status. However, the values are not always what external platforms expect. Shopify uses "yes" and "no," while Mailchimp expects "subscribed" and "unsubscribed," Klaviyo uses its own consent model, and HubSpot uses boolean true/false.
More critically, Shopify's consent data does not distinguish between explicit opt-in (customer checked a box) and implicit consent (customer was added before consent requirements were enforced). Importing all "yes" records into a platform that requires explicit consent can create compliance issues under GDPR or CAN-SPAM.
Shopify customer tags also export as a single comma-separated string within one CSV column. If you need to filter or segment by tags, this format requires parsing. A value like "VIP, wholesale, holiday-2025" is one cell that needs to be split for any meaningful filtering.
How to Fix It
Map Shopify's "Accepts Marketing" values to your target platform's expected format. Always filter out customers where Accepts Marketing is "no" before importing to email platforms. If compliance is a concern, further filter by the "Marketing Opt In Level" column (available in newer exports) to include only single_opt_in or confirmed_opt_in records.
Cleaning Shopify Data for Specific Platforms
For Mailchimp
Mailchimp requires email, and optionally first name (FNAME), last name (LNAME), and phone. Deduplicate on email first. Map Shopify's "Accepts Marketing" to Mailchimp's MEMBER_STATUS (subscribed or unsubscribed). Remove any records without email addresses. Mailchimp charges by subscriber count, so cleaning out duplicates and unsubscribed contacts directly saves money. See our Mailchimp CSV cleaning guide for the complete field mapping.
For Klaviyo
Klaviyo accepts a broader range of fields and handles some deduplication internally, but feeding it clean data still improves segment accuracy and campaign performance. Standardize phone numbers to E.164 format, which Klaviyo requires for SMS. Map Shopify's consent fields to Klaviyo's email_consent and sms_consent properties. Include order count and total spent if available, as Klaviyo uses these for segmentation. Our Klaviyo cleaning guide covers the detailed requirements.
For Facebook Custom Audiences
Facebook matches customer data using email, phone, first name, last name, city, state, zip, and country. The more fields you provide and the cleaner they are, the higher your match rate. Lowercase all emails. Format phone numbers with country codes. Use two-letter state and country codes. Remove special characters from names. Facebook's matching algorithm is fuzzy but rewards clean, consistently formatted data. See our guide on cleaning CSV data for Facebook Ads.
For Google Ads Customer Match
Google Customer Match requires data in a specific format with specific column headers. Email must be lowercase and trimmed. Phone numbers need country codes. Names must be lowercase. The formatting requirements are stricter than Facebook's, and misformatted data is silently dropped rather than fuzzy-matched. Our Google Ads CSV guide provides the exact format specifications.
A Complete Shopify Export Cleaning Workflow
Here is the step-by-step process for turning a raw Shopify customer export into a clean, import-ready dataset:
Step 1: Export customers from Shopify Admin (Customers → Export → All customers → CSV for Excel). Choose "CSV for Excel" to get UTF-8 BOM encoding that preserves special characters.
Step 2: Normalize email addresses. Lowercase all emails. Remove plus-address tags. Trim whitespace.
Step 3: Deduplicate on normalized email. Keep the most recent record or the record with the most complete data.
Step 4: Standardize phone numbers to E.164 format. Remove records with invalid phone numbers if the target platform requires phone data.
Step 5: Normalize addresses. Standardize state abbreviations, country codes, and street suffixes.
Step 6: Filter by consent status. Remove records where Accepts Marketing is "no" for email campaigns. Remove records without phone consent for SMS campaigns.
Step 7: Map columns to the target platform's expected headers and format. Remove columns the target platform does not accept.
For a broader view of how to prepare Shopify data for import into any platform, see our comprehensive guide on cleaning CSV data for Shopify.
How NoSheet Cleans Shopify Exports Automatically
NoSheet recognizes Shopify's export format automatically and applies the complete cleaning workflow in seconds. Upload your Shopify customer CSV and NoSheet will normalize emails, deduplicate records, standardize phone numbers to E.164, fix address formatting, and filter by consent status. Every change is shown for your review before you download the clean file.
The deduplication tool handles Shopify's specific duplicate patterns, including plus-address normalization and case-insensitive email matching. The phone formatter converts every phone format variation to E.164 for SMS platform compatibility. And the CSV Cleaner handles whitespace, encoding, and empty row issues in the same pass.
If you need to clean data across your entire marketing stack, not just Shopify, our data cleaning guide for marketers covers the complete workflow from source to campaign launch.
Clean Your Shopify Export in 30 Seconds
Upload your Shopify customer CSV and get clean, deduplicated, import-ready data for Mailchimp, Klaviyo, Facebook Ads, or any platform.
Clean Shopify Data Now