Sanitize Email Lists Before Klaviyo Import
Importing a dirty contact list into Klaviyo is how brands torch their sending reputation in 48 hours. Suppression lists from legacy ESPs (Mailchimp, Omnisend) ship with invisible zero-width joiners (U+200D), malformed addresses (user@@domain), and role-based emails (info@, admin@) that act as spam traps. RFC 5321 Section 4.1.2 defines the mailbox grammar—zero-width characters fall outside the 'atext' production rule, making addresses technically invalid. Yet most ESP validators only check for '@' presence, not full RFC compliance. Klaviyo flags accounts with >2% hard bounces. Yahoo tightened to 0.3% in February 2024 with their new bulk sender requirements. This workflow cross-references your prospect list against Klaviyo's Suppression API export, strips non-printable Unicode, and validates RFC 5322 formatting.
Why This Matters
A DTC brand imported a legacy list containing 18,000 hard-bounced addresses with invisible U+200D characters bypassing basic regex validation. Within 48 hours, their bounce rate hit 5.3%, Klaviyo suspended the profile, and 'where is my order' chargebacks spiked 12% because order confirmation emails routed to Gmail's Promotions tab. Don't pay $2,700 for cloud email validators when you can sanitize locally for free.
Why Excel & Python Fail Here
Zero-width characters (U+200B–U+200F, U+FEFF) are invisible in most text editors and survive copy-paste from web forms, CRMs, and legacy ESPs. Standard regex like /^[^@]+@[^@]+\.[^@]+$/ passes because it only checks for '@' and '.' presence—it doesn't validate character-level RFC compliance. The result: addresses that LOOK valid but fail at SMTP level, generating hard bounces that poison your sender reputation.
| Criterion | Excel / Sheets | Python / Cloud | DataPrep (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 Klaviyo / Mailchimp Prep to execute this entirely in your browser.
- 1
Upload your contact list and suppression list
Drag and drop both CSVs. The contact list is your import file; the suppression list is exported from Klaviyo (Settings → Suppressed Profiles → Export) or your legacy ESP.
- 2
Run multi-layer validation
The tool applies: (1) Anti-join against suppression list, (2) Strip zero-width Unicode (U+200B–U+200F, U+FEFF), (3) RFC 5322 syntax validation, (4) Role-based address detection, (5) Disposable domain check.
- 3
Export clean list with validation report
Download the sanitized CSV and a report showing: rows removed per rule, bounce risk score for remaining list, and estimated deliverability improvement.
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.
Common Errors & Fixes
| Error / Symptom | Root Cause | Fix |
|---|---|---|
Klaviyo: 'Account suspended — bounce rate exceeded 2%' | Legacy list contained 18K previously-bounced addresses not in suppression export | Always export the FULL suppression list (not just 'unsubscribes') before importing |
Basic regex passes but SMTP rejects the address | Zero-width characters (U+200D) inside the local part pass simple @ checks | Strip all characters outside RFC 5321 atext range before validation |
Frequently Asked Questions
How do I export Klaviyo's suppression list?
What bounce rate threshold triggers Klaviyo suspension?
Ready to clean your data?
100% local processing · Zero uploads · Blazing fast
Trusted by 2,400+ data teams · 18M+ rows processed monthly