Klaviyo Master Subscriber List Sample CSV (Dirty + Clean)
A production-realistic Klaviyo profile export (9,400 rows) covering structural quirks that break ESP migrations and GDPR compliance audits. The Klaviyo quirk: the $consent column exports as a semicolon-delimited string (e.g., 'email; sms'), not a simple boolean. ESP migration tools expecting true/false will reject multi-channel consent. Additionally, $bounce_type requires careful null handling. The 'dirty' version includes 1,240 $consent cells with semicolon strings, 680 Hard bounce rows that must be excluded, duplicate emails with different Person IDs, and inconsistent First Name casing (JoHn) ruining personalization. Ideal for ESP migration dry runs (to Mailchimp/ActiveCampaign) and deliverability audits. All processing happens locally — your subscriber data never leaves your browser.
Live Interactive Preview
Live Data Preview
See how this messy klaviyo data looks before downloading. All processing happens locally in your browser.
💡 Pro Tip: Klaviyo exported $consent as 'email; sms' — your new ESP expects a boolean. Run this list through Klaviyo Prep to split consent into discrete columns and normalize dates.
⚡ Next Step: Same subscriber appearing 3 times with different Person IDs? Hit this list with CSV Deduplicator. Fuzzy-match on email, keep the most recent activity, discard the rest.
Data Schema Definition
| Column | Type | Description |
|---|---|---|
| Klaviyo ID | string | Internal Person ID (UUID format). Unique per profile; use as primary key. Changes on profile merge. |
| string | Subscriber email. May appear under multiple Person IDs pre-merge; dedup on email, not ID. | |
| First Name | string | Needs Title Case normalization for {{ first_name }} tags. Mixed casing (JoHn) is common from multi-source imports. |
| $consent | string | ⚠️ CRITICAL: Semicolon-delimited ('email; sms'). NOT boolean. Split into consent_email / consent_sms columns for target ESP. |
| $bounce_type | string | Enum: Hard | Soft | null. Hard bounces MUST be excluded from migration; sending to them risks ESP suspension. |
| Subscribe Date | timestamp | First opt-in timestamp. Blank for API-synced profiles without explicit form submission. Critical for GDPR audit. |
| Last Click | timestamp | Most recent link click. Used for RFM engagement segmentation. NULL = never clicked; treat as lowest tier. |
| Phone Number | string | SMS number in E.164 format. Only present if SMS consent granted; validate format before SMS platform import. |
| $source | string | Acquisition channel: form | api | integration | manual. 'manual' lacks consent proof; flag for GDPR review. |
| Properties | json | Custom profile properties as JSON blob. Keys vary per account; flatten selectively based on target schema. |
⚠️ Highlighted rows contain known data traps. Review descriptions before building ETL pipelines.