Back to Klaviyo in Excel
SheetXAI logo
Klaviyo logo
Klaviyo · Excel Guide

Import CRM Contacts Into Klaviyo Profiles From a Excel

2026-05-15
5 min read

The Scenario

The migration from Mailchimp to Klaviyo has been on the checklist for six weeks. The 8,000 contacts are in an Excel workbook — the CRM export — with email, first name, last name, city, lifetime value, and a VIP flag across six columns. Klaviyo is live. The welcome flow is configured. The audience is the only missing piece.

The bad version:

  • Check Klaviyo's bulk import docs to confirm which fields are standard and which require the custom properties format, then save the workbook as a CSV with corrected headers.
  • Upload the file, wait for the job to run, and find that 340 rows failed because the LTV column contained dollar signs the API parser could not read.
  • Clean the CSV, re-upload, wait again — and repeat until all 8,000 contacts land without errors.

The migration keeps getting pushed not because it is hard but because every attempt takes more preparation time than you have available in a given afternoon.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Excel workbook. It reads the CRM export, understands the columns, and calls Klaviyo's bulk profile import endpoint — handling data cleaning and batching as part of the same operation.

Bulk import all rows from this workbook into Klaviyo profiles — email in column A, first name in column B, last name in column C, and LTV in column D as a custom property named "lifetime_value"

What You Get

  • Profiles are submitted to Klaviyo's bulk import endpoint in batches of up to 10,000 per job.
  • Standard fields map to Klaviyo native profile fields. LTV lands as a custom property for segmentation and flow conditions.
  • A summary row is written at the bottom of the workbook: total submitted, total succeeded, and row-level errors with the row number and reason.

What If the Data Is Not Quite Ready

Currency symbols in the LTV column will break the import

Bulk import all rows into Klaviyo profiles using email (A), first name (B), last name (C), and LTV (D) — strip dollar signs and commas from column D before setting it as the "lifetime_value" custom property

Phone numbers need E.164 normalization before import

Create Klaviyo profiles for every row in the "Migration" worksheet using email (column A), phone (column B) — normalize column B to E.164 format first — and custom properties from columns C through F

The VIP flag should drive profile tagging

Bulk import all rows into Klaviyo profiles; for rows where column F is "VIP", set a custom property "vip_status" to true; for all other rows set it to false

Full cleanup and import in one pass

Clean and import all 8000 rows into Klaviyo: normalize emails in column A to lowercase, remove duplicate emails keeping the row with the higher LTV in column D, strip formatting from the LTV value, then create profiles with email, first_name, last_name, and lifetime_value — write IMPORTED or FAILED into column G for each row

Six weeks of putting it off, resolved in one prompt.

Try It

Get the 7-day free trial of SheetXAI and open the migration workbook your team exported from Mailchimp, then ask it to push all 8,000 contacts into Klaviyo profiles. Also see how to update profiles with RFM scores once the initial import is done.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more