Agent skill · marketing growth · jeremylongshore

klaviyo-migration-deep-dive

Use when you are moving an email/CDP stack onto Klaviyo — off the

Why this skill is useful

Adds detailed migration scripts and workflows for transitioning to Klaviyo that are not publicly available.

What it needs

Requires klaviyo-api installed locally. Requires klaviyo account access. About 3k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.

What this skill does

Klaviyo Migration Deep Dive Overview Comprehensive guide for migrating to Klaviyo from legacy APIs (v1/v2), competing ESPs (Mailchimp, SendGrid, etc.), or re-platforming with the strangler fig pattern. Covers data migration, API mapping, batch import, and post-migration validation. This SKILL.md is the high-level workflow. The full, copy-paste code for every step lives in references/implementation.md; worked end-to-end scenarios live in references/examples.md. Prerequisites Target Klaviyo account configured klaviyo-api SDK installed (npm install klaviyo-api) Source system access for data export Feature flag infrastructure (for gradual rollout) Auth: a Klaviyo private API key (pk) exported as KLAVIYOPRIVATEKEY — used by the SDK's ApiKeySession. Legacy v1/v2 calls used a public token in the request body; the current REST API uses the private key in the session header. See references/implementation.md. Migration Types Migration Complexity Duration Risk ----------- ----------- ---------- ------ Klaviyo v1/v2 to current API Low-Medium 1-2 weeks Low Mailchimp/SendGrid to Klaviyo Medium 2-4 weeks Medium Custom ESP to Klaviyo High 4-8 weeks High Full re-platform High 2-3 months High Instructions Pick your migration type from the table above, then work the five steps. Each step has full code in references/implementation.md. 1. Legacy v1/v2 to current API — replace deprecated track / identify / v2 subscribe HTTP calls with the klaviyo-api SDK (createOrUpdateProfile, createEvent, subscribeProfiles). The session skeleton every step builds on: 2. API field mapping — rename v1/v2 fields to the current schema: drop the $ prefix, camelCase everything ($firstname → firstName), and nest address fields under location. Full mapping table in references/implementation.md. 3. Competitor migration — write a transform adapter that maps the competitor's contact shape to a Klaviyo profile, then batch-import (50 per batch) with Promise.allSettled, progress logging, and rate-limit delays. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills jeremylongshore/klaviyo-migration-deep-dive

View the source on GitHub

Browse the @skills marketplace