AdvancedAction GuideShopify Ecommerce

Extract and Clean Customer Lists from Shopify for Meta Lookalike Audiences

Shopify's order export is a transaction log, not a customer list. A loyal customer who bought six times appears as six separate rows—potentially with conflicting shipping addresses across orders. Meta's Conversions API (CAPI) requires identifiers hashed with SHA-256: 'em' (email, lowercase), 'ph' (phone, E.164 digits only), 'fn'/'ln' (first/last name, lowercase trimmed). Meta requires a >60% match rate for effective Lookalike Audiences. Uploading raw Shopify exports means hashing the same email six times with conflicting metadata, causing Meta to reject the record. This workflow deduplicates by Email, selects the most recent transaction's shipping details, strips apartment numbers, and formats phones to the strict E.164 international standard.

DataPrep Engineering TeamPublished: 2025-05-08Last verified: 2026-07-153 min read

Why This Matters

A fashion brand uploaded a raw 94,000-order Shopify export directly to Meta. Because repeat buyers had conflicting metadata across orders, Meta's match rate plummeted to 23%. Their Lookalike Audience was built on only 21,600 profiles instead of the expected 78,000 unique customers, causing ad performance to underperform by 40%. They wasted $18,000 in ad spend over 3 weeks testing corrupted audiences. Meta's interface provides no upfront warning when match rates are catastrophically low. Clean your seed list locally before you burn your budget.

Why Excel & Python Fail Here

Meta's CAPI hashing is violently case- and whitespace-sensitive: ' [email protected] ' produces a completely different SHA-256 hash than '[email protected]'. Shopify exports preserve whatever the customer typed—including leading spaces, mixed case, and phone formats like '(415) 555-0123' instead of '+14155550123'. Excel's TRIM() and LOWER() miss zero-width characters. The only reliable fix is programmatic normalization before hashing.

CriterionExcel / SheetsPython / CloudDataPrep (This Page)
Max Rows ~150K (crashes) RAM-limited 1M+ via Wasm
Setup Time Manual formulas 30–60 min env setup 0 seconds
Data Privacy Local but fragile Uploads to cloud 100% in-browser
Cost License fees EC2 / SaaS $49+/mo Free forever

Step-by-Step Solution

We will use the CSV Deduplicator to execute this entirely in your browser.

  1. 1

    Upload Shopify order or customer export

    Drag and drop your CSV. The tool detects whether it's an order export (transaction log) or customer export (profile list) and adjusts deduplication logic accordingly. For order exports, it groups by Email and keeps the most recent transaction's details.

  2. 2

    Normalize identifiers for Meta CAPI

    The tool lowercases all emails, strips leading/trailing whitespace and invisible Unicode (U+200B–U+200F), reformats phones to E.164 (+1XXXXXXXXXX), and splits Full Name into fn/ln using regex that handles compound surnames (van der Berg, de la Cruz).

  3. 3

    Export Meta-ready CSV with match rate estimate

    Download the cleaned file. A pre-export report estimates your expected match rate based on identifier completeness (email-only = ~45%, email+phone+name = ~72%). Rows missing critical identifiers are flagged.

Privacy Guarantee: Zero Bytes Uploaded

All processing happens in your browser via WebAssembly. Your data never touches a server. Try it: disconnect your Wi-Fi right now—the tool will still work.

Works fully offline · No cookies · No tracking pixels

Common Errors & Fixes

Error / SymptomRoot CauseFix
Meta match rate < 30% after uploadEmails hashed with original casing/whitespace don't match Meta's normalized profilesNormalize to lowercase + trim before hashing. Meta's own hashing spec requires pre-normalization.
Duplicate customer records rejected by MetaSame email appearing 6× with different phone/address metadata creates hash conflictsDeduplicate by Email first, keeping only the most recent transaction's contact details

Frequently Asked Questions

Does this tool hash the emails with SHA-256?
No—this tool normalizes and cleans the data. Hashing should be done at upload time via Meta's CAPI SDK or Events Manager. Pre-hashing in a CSV risks exposing hashes in transit. We output clean, unhashed identifiers ready for Meta's hashing pipeline.
What's the minimum match rate for effective Lookalikes?
Meta recommends >60% for 1% Lookalikes. Below 40%, the algorithm lacks sufficient signal to model high-intent behavior. At 23% (the case study above), the Lookalike is essentially random.

Ready to clean your data?

100% local processing · Zero uploads · Blazing fast

Trusted by 2,400+ data teams · 18M+ rows processed monthly

DP

DataPrep Engineering Team

We build privacy-first data preparation tools that run entirely in your browser. Every workflow on this page has been tested against production datasets exceeding 500K rows. We verify each guide against real platform exports quarterly.

Last reviewed by the engineering team on 2026-07-15.