home/migrations/to EmailOctopus
// migrate to

move to EmailOctopus without rebuilding by hand.

mailexodus normalizes your current platform into one portable schema, then checks what EmailOctopus can actually import. You get a route report before your agent writes anything.

agentUse mailexodus skill: your source → EmailOctopus playbook
// try it

bring your data into EmailOctopus.

Pick the platform you're leaving and generate a route playbook. The report shows what maps cleanly into EmailOctopus's model and what needs review — before you approve writes.

analyzing Klaviyo
source modeAutomated adapter
source exports8
EmailOctopus imports5
destination gapssegments, campaigns, templates, automations
data leaves machineno · dry-run
$npx mailexodus@latest migrate --from klaviyo --to emailoctopus --dry-run
agentUse mailexodus skill: KlaviyoEmailOctopus playbook
// fit

when EmailOctopus is the right move.

EmailOctopus is a strong fit for teams that want emailoctopus teams moving lists, contacts, list tags, contact fields, unsubscribed state, and campaign inventory into a cleaner operating model. The migration risk is rarely the CSV — it is the automation graph: triggers, delays, branches, template references, and consent state. mailexodus puts a portable schema in the middle so those objects are inspected before they become EmailOctopus objects.

// inbound

what EmailOctopus receives.

can import
  • +
    subscribers
  • +
    lists
  • +
    tags
  • +
    custom fields
  • +
    suppressions
needs review
  • ?
    destination mappings still need final operator review
not exposed for import
  • x
    segments
  • x
    campaigns
  • x
    templates
  • x
    automations
destination adapter

Partial automated adapter

List contacts map to subscribers. Fields map to custom attributes. Tags map to tags. Campaigns map to campaign content

EmailOctopus can receive lists, list contacts, list tags, list fields, and unsubscribed contact state. The official API exposes campaign reads and reports but not a clean campaign-create/import surface. Dry-run the report first, then approve writes when the counts and destination gaps look right.

// before you switch

plan the move to EmailOctopus.

  1. Authenticate your sending domain in EmailOctopus (SPF, DKIM, DMARC) and plan a warmup window — sender reputation is earned here, it does not transfer.
  2. Bring consent and suppression state across first, so unsubscribes and bounces are honored from the first send in EmailOctopus.
  3. QA migrated templates and segments inside EmailOctopus, and send seed tests before any live campaign.
  4. Keep your current platform active until in-flight automations finish and EmailOctopus is warmed and trusted.
// migrate it

start with the route playbook.

The agent prompt returns a route report with source exports, destination imports, skipped objects, and manual-review tasks. When it looks right, wire credentials and approve writes from a controlled machine.

inspect

destination coverage

npx mailexodus@latest info emailoctopus

playbook

agent playbook

Ask mailexodus for a migration_playbook with to=emailoctopus

agentUse mailexodus skill: your source → EmailOctopus playbook