Intermediate

Updated · 9 min read

Switching ESP without losing your lifecycle programs

Two questions turn up in the inbox more than any others. "Does it only work with Braze?" and "so it doesn't work with other CRMs?". Both are really the same question wearing different clothes: if we commit to this, how much of it do we own, and how much are we renting from a vendor who can raise the price next renewal? That worry is well founded. It's also aimed at the wrong layer. The lock-in that hurts sits one layer above the tool you send from: it lives in where you decided to keep the thinking.

Justin Williames

By Justin Williames

Founder, Orbit · 10+ years in lifecycle marketing

SharePostPost

The question underneath the question

Picture the renewal meeting. Your ESP is up 40% on last year's price, procurement wants a competitive process, and someone asks how long a move would take. The honest answer in most teams is a shrug, because nobody knows how much of the program exists anywhere except inside the platform. Eighteen months of journey logic, audience rules, and templating sits in a builder with no meaningful export. The renewal gets signed. That's not a technology decision, it's a hostage negotiation.

The thing worth noticing is that the platform didn't trap you. The working practice did. Every time a decision got made in a dropdown instead of written down — why this audience, why 48 hours and not 24, why we suppress this cohort — the only record of that decision became a configuration screen you don't own.

The asset was never the journey builder. The asset is the decision that produced it — and that decision lives wherever you chose to write it down.

So the useful version of "does this work with other CRMs?" is a different question entirely: if we moved ESP next quarter, what percentage of our lifecycle program would we have to invent again from scratch? A team that can answer that with a number has already done the work in this guide. A team that can't is locked in regardless of which vendor they picked.

What actually survives the move

Sort a lifecycle stack into two buckets: things that are yours and happen to be stored in the ESP, and things that only exist as an artefact of the ESP. The first bucket travels. The second gets rebuilt by hand, every time, at whatever your team's day rate is.

AssetTravels?Why
Program specs and briefsPortableProse about triggers, audiences, timing, and exit criteria is platform-neutral by nature.
Segmentation logicPortable as a definition"Purchased in 90d AND no open in 30d" travels. A saved segment ID doesn't.
CopyPortableWords are words. Subject lines, body, preheaders, SMS — all portable.
Design systemPortable if it lives outside the ESPMJML or HTML components plus brand tokens in a repo. A drag-drop template in the vendor's editor is trapped.
Consent and suppression statePortable — and legally requiredUnsubscribes and complaints are a legal obligation, not a vendor feature.
Journey / Canvas graphsRebuild by handNo vendor exports a graph in a shape another vendor ingests. You rebuild it.
Proprietary templatingRewriteBraze Liquid, HubL, AMPscript. Every template with conditional logic gets rewritten.
Native reportingGoneMetrics are computed against the vendor's own event schema. Numbers never reconcile across a cutover.
Vendor-computed attributesGonePredictive scores and derived fields are calculated inside the platform and stop existing when you leave.

Read that table as a design brief rather than a warning. Nothing in the bottom four rows can be made portable — that's the deal you accept when you buy an orchestration platform, and it's a fair one. What you control is how much of your program sits in the top half.

The brain outside the tool

The architecture that fixes this has one rule: the ESP holds a build, not the original. The original — the specification your build was made from — lives somewhere you own outright. In practice that's a git repo, though a well-disciplined docs space works too. What matters is that it's outside the platform and version-controlled.

Four things belong in it.

  • One brief per program. Trigger, audience definition in plain language, message sequence, timing, exit and suppression rules, success metric. Written so someone could build it in a platform you've never used.
  • A design system as code. Components and brand tokens compiled to email-safe HTML, not assembled in the vendor's editor. The ESP receives the output.
  • An attribute and event dictionary. Every field and event you send, what it means, who writes it, and where it originates. Custom attribute design covers the shape of this.
  • A naming convention. Consistent names are what make a program legible a year later and mappable during a migration. The naming guide uses Braze as the example, but the discipline is vendor-neutral.

There's a single test for whether you have this. Hand a new starter your documentation, don't give them access to the ESP, and ask them to describe how the win-back program works. If they can't, the program lives in the tool and you don't own it. The Template Brain skill is Orbit's protocol for building exactly this layer, derived from the emails you already send rather than from a vendor's template gallery.

One caveat on the data layer, because it's where teams overspend in response to this anxiety. Keeping the brain outside the ESP does not require buying a CDP. It requires knowing where each attribute is authored. If your events originate in your warehouse or product and are pushed to the ESP, they're yours already. If they originate in the ESP's own computation, they aren't. The CRM vs CDP guide covers when the extra layer earns its licence fee.

Where each platform resists — the honest version

Content read APIs exist on every major platform. None of them ships an export that another vendor can import. The pattern is uniform enough to state as a rule: content comes out, structure doesn't, and history never does. The differences are in which specific things bite.

Braze. Template HTML is retrievable and Canvas structure is readable through the API, but what you get back is a description of the graph, not something you can feed into another builder. The bigger cost is templating: Braze Liquid is Shopify Liquid plus Braze-specific personalisation tags and Connected Content, so any template carrying conditional logic is a rewrite rather than a copy-paste. Historical event data is the other trap — Currents, the event stream, is licensed separately, so teams who never bought it have no raw event history to take with them. The Liquid reference shows how much platform-specific syntax accumulates in a mature program.

Klaviyo.Strong ecommerce defaults come at a portability cost, because the most useful fields are ones Klaviyo computes for you — predicted order timing, channel affinity, engagement tiers. Those are outputs of their model, not data you provided, and they don't leave. Flow definitions read out through the API and import nowhere.

HubSpot.Workflows sit on top of CRM objects, so the logic is entangled with an object model — deals, pipelines, lifecycle stages — that no consumer ESP has an equivalent of. Moving out isn't a message migration, it's a data model translation. HubL adds the usual templating rewrite on top.

Mailchimp.The audience-centric model is the sharp edge: the same human in two audiences is two contacts with two subscription states. Every user-centric platform you might move to assumes one person, one record. That reconciliation is manual and it's the step teams underestimate.

Salesforce Marketing Cloud.AMPscript and the Data Extension model are both proprietary. SQL query activities are the one genuinely portable artefact in the stack — the logic survives even though the tables it runs against don't.

The migration-readiness audit — run it while you're happy

The worst time to discover what you can't export is the week you've decided to leave. Run this while the current platform is working fine, because everything it surfaces is worth fixing whether or not you ever move.

  • Pick your three highest-value programs. For each one, can someone rebuild it from documentation alone, without opening the ESP? Anything that fails is the backlog.
  • List every audience the programs depend on and write each as a plain-language rule. If the rule can't be expressed without referencing a vendor-computed field, flag it — that's a genuine dependency, and it's better to know now.
  • Locate the design system. If the canonical version of your master template only exists in the ESP's editor, it isn't a design system, it's a file.
  • Trace the origin of every custom attribute. Which are pushed in by you, which are calculated by the platform? The second list is what you'd lose.
  • Confirm you can export suppression, consent, and complaint state on demand, and that you've actually run the export rather than read the documentation about it.
  • Check your sending identity. A dedicated IP and an authenticated domain you control are portable; a shared pool reputation is not. See SPF, DKIM and DMARC and IP warm-up.
  • Write down how each headline metric is defined, in your own words, before you need to explain a discontinuity to a CFO. Reporting definitions differ between platforms and the numbers will step at cutover.

Each item on that list improves the program you have today. That's the argument for doing it now: none of the work is speculative insurance, and all of it doubles as an exit route. The ESP Migration skill carries the phased execution plan — audit, parallel build, dual-send warm-up, cutover — for when the decision is already made.

What this costs you, stated plainly

Keeping the brain outside the tool has a real price and it's worth naming: you maintain a specification that partly duplicates a UI someone already built for you. Every program change is two edits instead of one. Left unchecked, the spec drifts from the build, and a spec that lies is worse than no spec, because people trust it.

The recommendation, with the trade-off attached: keep the spec layer deliberately thin. Briefs, audience definitions in plain language, the design system in code, the attribute dictionary. Do not mirror the journey graph — box-by-box documentation of a builder is the part that always rots first, and it's the part a competent operator can reconstruct from a good brief anyway. Then gate it: the spec gets updated as part of shipping the change, not afterwards, or it doesn't hold.

Done that way, the answer to "does it only work with Braze?" stops mattering. The programs are described in your own repo, the templates compile from your own components, the audiences are defined in language any platform can implement, and the ESP is the thing that sends. Which is what it was always meant to be. For choosing the next one, the ESP comparison is the honest read on what each platform suits; the lifecycle audit checklist is where to start if you inherited a stack you didn't build.

Read to the end

Scroll to the bottom of the guide — we'll tick it on your reading path automatically.

Frequently asked questions

Does lifecycle work like this only apply to Braze?
No. Braze appears often in worked examples because its Liquid dialect and Canvas model produce the most platform-specific detail, and detail is what makes an example useful. The underlying practice — stage, trigger, audience definition, sequence, measurement — is the same in Klaviyo, Iterable, Customer.io, HubSpot, or Mailchimp. If a guide can only be followed on one platform, that's a flaw in the guide, not a property of the field.
Should I avoid ESP-specific features to stay portable?
Refusing to use what you paid for is a permanent tax to insure against an event that may never happen — and it's the trap teams fall into after their first bad migration. Use the platform properly, and keep the decision record outside it. Portability comes from documenting why a thing was built, not from crippling how it was built.
Can I export my journeys or flows from my current ESP?
You can usually read the structure through an API, and it will not import anywhere. Journey graphs are the least portable asset in the stack across every major vendor. Budget for rebuilding them by hand and treat any read-out you get as a checklist for the rebuild rather than a migration artefact.
Do I need a warehouse or CDP before any of this makes sense?
A warehouse helps, but it is not the prerequisite. What matters is knowing where each attribute is authored. Fields you push into the ESP are yours already, wherever they come from — a product database, a warehouse, a spreadsheet sync. Fields the ESP computes for you are the ones that disappear at cutover. Auditing which is which costs an afternoon; a CDP costs a licence.
How long does an ESP migration take?
The build is rarely the constraint — sending reputation is. If you're moving to new sending infrastructure, the timeline is set by warm-up pace and by how long you're willing to dual-run both platforms while volume shifts. Plan the cutover around reputation gates rather than a calendar date, and never schedule the final switch into a peak trading period.
Is it worth running both platforms at once during a move?
Usually yes, for a bounded window. Dual-running lets you shift volume gradually, compare like-for-like on the same programs, and roll back if something breaks. It also means paying two vendors and running the risk of a user receiving both versions of a message, so the suppression sync between them has to be live rather than nightly.

This guide is backed by an Orbit skill

Related guides

Browse all
Strategy9 min

How much does lifecycle marketing cost? The honest breakdown

Almost nobody answers this plainly, so here it is: the four buckets your money actually lands in, how ESP pricing scales as your list grows, what in-house, agency and fractional really trade against each other, and the integration bill that never appears on a quote.

Strategy9 min

What is MCP? The Model Context Protocol, explained for marketers

MCP is the standard that lets an AI assistant stop describing your ESP and start reading it. What a tool is, what a skill is, what stays on your machine and what doesn't, and the questions to ask any vendor before you hand over a production API key.

Strategy8 min

Redacting PII before it reaches your AI tools

People paste API keys, customer emails and client-named file paths into marketing chat boxes without thinking about it. If your stack forwards that text to an analytics tool or stores it raw, you've collected data you never intended to hold. Here's the redaction discipline that stops it, and the questions to ask any AI vendor about what their telemetry carries.

Strategy14 min

Building a personal chief-of-staff AI on Claude Routines

A real chief of staff used to mean a salary line on an exec's budget. Anthropic's Routines feature — Claude running on a schedule with access to your work tools — pulls the job inside reach of one operator. This is the architecture: morning brief, hourly interactive layer, midday drift check, evening debrief with end-of-day reconciliation, Sunday weekly review. Plus the draft-react protocol that lets the assistant act without auto-sending, calendar work blocks that double as the task tracker, and memory files the system writes into. Brain in a GitHub repo, runtime in claude.ai, no servers.

Strategy11 min

The lifecycle audit — a 30-point checklist

Lifecycle programs — the automated email, push and SMS journeys that move customers from signup to repeat purchase — decay quietly. A recurring audit is the cheapest discipline that catches drift before it turns up in the revenue deck. Here's the 30-point list, grouped by severity, that takes three hours the first time and ninety minutes after that.

Strategy10 min

What is lifecycle marketing? A field guide for operators starting from zero

If you're new to CRM and lifecycle, the field reads like a pile of acronyms and vendor demos. It's actually one simple idea executed across five canonical programs. Here's the frame that makes the rest of the library make sense.

Found this useful? Share it with your team.

SharePostPost

You finished the playbook. Get the next.

New guides and product updates land in your inbox when they ship. One list, real lifecycle work, unsubscribe the second it stops being useful.

Guides and Orbit updates only. No sequences, no selling your address.

Use this in Claude

Claude can run this playbook for you.

Orbit is a free extension for Claude Desktop — no licence key, no card — that runs the lifecycle work you just read about. You've read how it works; Orbit hands Claude the same playbook as a skill it can execute: discovery, build, QA, push, on your own ESP.

Download Orbit — free