Insights

How Sleep Reset migrated 21 automated journeys from Klaviyo to Customer.io — without dropping a single send

Written by Vishal Rewari | May 23, 2026 11:49:40 PM

 

 

The challenge: outgrowing a platform

Sleep Reset is a digital sleep improvement platform serving tens of thousands of subscribers across the US. Over time, their engagement stack — built on Klaviyo — had evolved into a complex web of automated email journeys, A/B-tested campaigns, SMS broadcasts, and daily push notification sequences inherited from a prior Braze setup.

As the product scaled, the team needed something more event-driven and API-first — a platform that could unify their multi-channel messaging under one roof. Customer.io was the answer. But migrating a live, revenue-critical system is never as simple as copying and pasting.

Optiblack was brought in to plan and execute the full migration.

"Sleep Reset runs one of the more sophisticated consumer engagement programmes we've migrated — 65–70% open rates on broadcast emails, A/B-tested journeys with 10+ message variants, and a legacy push stack inherited from Braze. The challenge wasn't just moving assets; it was recreating complex audience filter logic in a fundamentally different data model."

 

Scope: three parallel tracks

The migration was broken into three independent workstreams, each running in parallel to avoid cross-channel delays.

 

Key journeys migrated included the free trial drop-off re-engagement flow (24 messages, A/B tested), subscription cancellation confirmation, post sign-up onboarding drip, renewal reminder sequences (3-day, 7-day, 14-day), a 7-day new user push sequence, daily morning and bedtime reminders, an abandoned cart SMS flow, and transactional emails such as magic login links.

How time estimates went from 12 hours to 1 hour

Initial scoping assumed a near 1:1 rebuild of each journey. After completing Stage 01, the team identified repeatable build patterns — and slashed per-journey time by 80–90% on simpler automations.

 

Technical challenges — and how they were resolved

  • Challenge

    Klaviyo filters users by subscription end date using profile attributes — a method that doesn't translate directly to Customer.io's data model, requiring audience-based workarounds.


    Resolution

    Subscription expiry logic was rebuilt using Customer.io audience segments with event-based entry conditions. Behaviour was confirmed to match before any journey went live.

  • Challenge

    Email templates export cleanly from Klaviyo as HTML — but Customer.io doesn't support direct HTML template imports. This platform gap was discovered mid-migration.


    Resolution

    All HTML was exported and archived from Klaviyo and handed to the client for manual import at their convenience. Template hours were excluded from the migration timeline.

  • Challenge

    The trial drop-off journey contained 24 individual messages — significantly more than estimated — each requiring separate setup in Customer.io.


    Resolution

    After completing the first three messages, the team templated the structure and created a repeatable build pattern, cutting per-message time significantly for the remainder of the journey.

  • Challenge

    Early journeys were uploaded to the wrong Customer.io workspace — 40 hours of work had to be validated and re-uploaded to the correct account.


    Resolution

    A workspace verification step was added at project kick-off. All subsequent uploads were confirmed against client-provided workspace IDs before any build work began.

The process that made it work

 

1. Audit & inventory

Full catalogue of existing journeys, campaigns, user lists, and segments. Every asset is tagged with channel, status, and complexity before a single line is rebuilt.

 
2. Priority triage

Assets sorted into Stage 01 (revenue-critical, live journeys) and Stage 02 (recurring, simpler automations). Deprecated assets flagged upfront — not migrated unnecessarily.

3. Parallel build tracks

Email, SMS, and push are handled as separate workstreams with independent timelines. No cross-channel dependency blocks a channel from going live.

4. Logic translation

Audience filters, segment criteria, and A/B structures are re-engineered for the target platform — not copy-pasted. Platform gaps flagged and resolved with the client before build.

5. QA & event validation

User events are verified live in Customer.io before journeys activate. All audience filters are tested against real user profiles before going live.

6. Handoff & documentation

Migration tracker delivered alongside the live workspace. Any asset requiring client action is flagged clearly, with pre-prepared assets ready to use.

The result

In approximately two weeks, Sleep Reset's full engagement stack was live in Customer.io — 21 automated journeys across email, push, and SMS, rebuilt without a missed send. The structured approach turned a project initially scoped at 200+ hours into a 54-hour execution, saving roughly 73% of the estimated effort.

The migration also surfaced and resolved four significant technical issues before they could affect subscribers — including a workspace error that could have derailed weeks of work.