Klaviyo CSV Normalizer

Klaviyo list and segment exports vary depending on whether you export a profile list, a segment, or a suppressions view. The list/segment column is sometimes 'List Name' and sometimes 'Segment', and consent values show up as 'SUBSCRIBED', 'true', 'opted_in', or 'yes' depending on the export type and API version. This tool auto-detects those header variants and remaps everything onto one stable schema (Email, Name, List, ConsentStatus), normalizing every consent value into subscribed, unsubscribed, or unknown, and combining First Name and Last Name into Name when no single Name column exists. Everything runs locally in your browser; your Klaviyo data is never uploaded.

PrivateFreeWorks offline

Reviewed by Vincenzo Manto, Founder & Lead Developer · Last updated September 27, 2026

How it works

  1. 1

    Paste your Klaviyo list or segment CSV export, or upload the .csv file.

  2. 2

    Review the auto-detected column mapping; each source column is matched to a target field like Email, List, or ConsentStatus.

  3. 3

    Override any guess with the dropdown, including custom properties the tool didn't recognize (map them to a field or leave as 'ignore').

  4. 4

    Copy or download the normalized CSV. Consent values are standardized to subscribed / unsubscribed / unknown and First/Last Name are combined automatically when there's no dedicated Name column.

Why Klaviyo exports don't line up

Klaviyo lets you export profiles from a list, a segment, or a suppressions view, and each export type can surface a combined Name property or separate First/Last Name properties, plus a consent column whose values differ by API version and export path. That inconsistency makes it hard to reliably script an import of a Klaviyo export into another ESP or CRM.

One schema for every export

This tool auto-matches known Klaviyo header variants to a fixed schema (Email, Name, List, ConsentStatus), normalizes every consent value to subscribed / unsubscribed / unknown, and reconstructs a full Name from First Name and Last Name when needed, so a list export and a segment export both land in the exact same shape.

Frequently asked questions

Which consent status values does this recognize?

Common Klaviyo and general ESP variants like 'SUBSCRIBED', 'opted_in', 'true', 'yes', and 'double_opted_in' are normalized to 'subscribed'; 'UNSUBSCRIBED', 'opted_out', 'false', 'no', and 'suppressed' are normalized to 'unsubscribed'. Anything unrecognized is marked 'unknown' rather than guessed.

Does this combine First Name and Last Name into one column?

Yes. If your export doesn't include a single 'Name' property, but does include First Name and Last Name columns, this tool joins them into one Name field automatically. If a Name column is present, it's used as-is instead.

Why is my list column sometimes called 'List Name' and sometimes 'Segment'?

Klaviyo profile exports label this column differently depending on whether you exported a static list, a dynamic segment, or a suppressions view. Both 'List Name' and 'Segment' variants map to the same output List field.

What happens to custom Klaviyo properties it doesn't recognize?

They stay listed in the mapping table with a dropdown defaulted to 'ignore'. You can manually assign any of them to a target field if needed.

Is my Klaviyo profile data uploaded anywhere?

No. Parsing and remapping happen entirely in your browser using JavaScript. Your CSV never leaves your device.

Related tools