← All playbooks
Newsletters migration

Substack → Beehiiv

Move Substack content, free and paid subscribers, podcast feeds, domains, and sending operations into Beehiiv without exposing paywalled posts or charging readers twice.

Typical timeline7–15 business days28–48 hours active work
Statusneeds review
Source testedSubstack documentation reviewed 2026-07-19
Destination testedBeehiiv documentation reviewed 2026-07-19
Last reviewed2026-07-19
Sources3
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Substack

Reasons to stay
  • Publishing, email, recommendations, network discovery, and paid subscriptions work out of the box
  • Audience, campaigns, automations, and reporting live in one publishing system
Reasons to leave
  • Brand control, automation, data depth, and platform independence are limited
  • Automation logic, analytics history, and deliverability settings are not very portable
New platform

Beehiiv

What gets better
  • Newsletter publishing, growth, referrals, and monetization are tightly integrated
  • Audience, campaigns, automations, and reporting live in one publishing system
What gets worse
  • Complex lifecycle automation and broader marketing workflows are comparatively limited
  • Automation logic, analytics history, and deliverability settings are not very portable
Best of the move

Beehiiv: Newsletter publishing, growth, referrals, and monetization are tightly integrated. This removes a major source-side concern: Brand control, automation, data depth, and platform independence are limited.

Worst of the move

What you lose: Publishing, email, recommendations, network discovery, and paid subscriptions work out of the box. What you inherit: Complex lifecycle automation and broader marketing workflows are comparatively limited.

01At a glance

Know the shape of the move.

Transfer outcome12 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 7, Manual rebuild: 3, Not transferred: 2.
Clean0
Partial7
Manual3
Lost2
Mapping route9 of 9 fields have a destination path

This timeline assumes

  • Up to 100,000 subscribers, 1,000 posts, one podcast, and five paid tiers
  • Only subscribers with valid consent enter the active import.
  • The source remains read-only through two successful destination sends.
  • A representative pilot cohort is imported before the full audience.
  • The migration team records evidence for every blocking verification check.
02Loss matrix

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Comments and category structureslostmediumBeehiiv lists Substack comments and category structures as unsupported.Archive comments and redesign navigation using Beehiiv tags or sections.
Video, podcast-type posts, and photo gallerieslosthighThese post types do not move through the Substack content importer.Migrate the podcast through RSS and recreate unsupported posts manually.
Code blocks and paywall placementpartialhighCode becomes plain text and prior paywall positions are not preserved.Rebuild code with HTML snippets and review every paid post’s access boundary.
Paid billing ownershippartialcriticalSubscriptions are recreated through a Beehiiv-connected Stripe account and source billing must then stop.Reconcile every tier and pause Substack billing only after destination subscriptions pass.
Eligible email addressespartialcriticalActive subscribers can move, but acceptance and duplicate handling depend on destination import rules.Reconcile unique eligible rows against accepted and rejected imports.
Unsubscribes, complaints, and cleaned addressespartialcriticalSuppression evidence does not become an identical native ledger.Export every inactive class separately and never import it as active.
Custom fieldspartialhighField names, types, reserved keys, and blank handling differ.Create a field dictionary and test representative values.
Tags, groups, and dynamic segmentspartialhighLabels may move, but calculated audience rules require redesign.Document each segment’s business rule and rebuild only active ones.
Past newsletters and web archivepartialhighContent import can change layout, embeds, URLs, and access boundaries.Review a stratified issue sample and crawl the archive.
Templates and brand settingsmanualhighSource email templates do not run as destination templates.Build one approved email and web template before importing content.
Forms and landing pagesmanualcriticalHosted URLs, embeds, consent text, incentives, and redirects are platform-specific.Replace and test every acquisition path before source forms stop.
Automations and in-flight subscribersmanualcriticalTriggers, branches, waits, goals, and current enrollment state do not continue automatically.Rebuild each live automation and disposition every enrolled subscriber.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Email addressEmail addressautomaticRequired unique identifier.
First and last nameName fieldstransformNormalize blanks and full-name values.
Custom or merge fieldCustom fieldtransformCreate the destination field and type first.
Audience, tag, or groupTag, segment, or custom fieldtransformKeep provenance without multiplying duplicates.
Marketing statusImport eligibility or suppression archivetransformNever reactivate an inactive address.
Campaign or issueDestination post or broadcasttransformReview layout, links, images, and access.
Automation enrollmentDestination automation statemanualContinue, restart, exit, or follow up explicitly.
Signup formDestination formmanualReplace fields, consent, incentives, and redirect behavior.
Paid plan and billing stateDestination tier and subscriptionmanualReconcile customer, currency, renewal, and access.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Preserve Substack data, configuration, and operating evidence before any destination write.

  1. Export Substack subscribers separately by active, unsubscribed, complained, cleaned, paid, and complimentary state.
  2. Export fields, tags, segments, content, reports, forms, automations, integrations, and domain settings.
  3. Record totals by status, segment, tier, and active automation.
  4. Hash raw exports and transform copies only.

Proof to capture: A signed manifest reconciles every scoped record class, runtime dependency, export file, count, and hash.

Transformation · Spreadsheet or SQL

Eligibility ledger

Prevent inactive or unproven contacts from becoming sendable.

  1. Inventory source values and exceptions.
  2. Define explicit destination mappings.
  3. Reject unmapped critical records.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · CSV validator

Destination audience file

Create deterministic fields, tags, tiers, and provenance.

  1. Normalize encoding, dates, identifiers, and blanks.
  2. Run a representative pilot.
  3. Reconcile accepted, rejected, and transformed rows.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Import

Suppressed contacts become active

criticalpossible likelihood

Destination active count exceeds signed eligibility.

Consequence
Complaints and compliance exposure increase.
Mitigation
Import only the approved active file.

Stop if: Any inactive seed becomes sendable.

Cutover

Both platforms send or bill

criticalpossible likelihood

Source automations or subscriptions remain active after destination activation.

Consequence
Readers receive duplicates or duplicate charges.
Mitigation
Freeze source triggers and reconcile billing ownership.

Stop if: A seed receives two messages or charges.

Sending

Authentication or reputation regresses

criticalpossible likelihood

DMARC alignment fails or bounces and complaints exceed baseline.

Consequence
Messages are rejected or placed in spam.
Mitigation
Verify DNS and send in controlled cohorts.

Stop if: Authentication fails or thresholds breach the approved baseline.

06Precise timeline

Do the work in this order.

Estimate forUp to 100,000 subscribers, 1,000 posts, one podcast, and five paid tiers
Total elapsed7–15 business days
Active work28–48 hours
BufferAdd 5–10 days for paid tiers, Stripe review, podcasts, large archives, or sender warm-up.
01
Days 1–3Inventory and decisions2–3 days
02
Days 3–5Backup and reconcile1–3 days
03
Days 5–12Map and pilot3–8 days
04
Days 10–20Final delta and switch1–5 days
05
Days 12–40Observe and close3–10 days
  1. Days 1–3 · inventory

    Inventory and decisions

    6–12 hours active2–3 days elapsedOwner review waiting
    • Inventory Substack data, features, users, domains, and integrations.
    • Approve scope, owners, mappings, and exclusions.

    Depends on: Substack and Beehiiv administrator access

    Stop / go checkpoint

    Export?

    Go when: Every critical item has an owner and disposition.

    Stop when: Consent, billing, access, or system ownership is unclear.

  2. Days 3–5 · backup

    Backup and reconcile

    5–10 hours active1–3 days elapsedExport processing waiting
    • Create immutable exports and configuration evidence.
    • Reconcile counts, totals, and hashes.

    Depends on: Approved inventory

    Stop / go checkpoint

    Transform?

    Go when: Source totals and export manifests agree.

    Stop when: Any critical dataset or configuration is absent.

  3. Days 5–12 · pilot

    Map and pilot

    10–35 hours active3–8 days elapsedDestination processing and review waiting
    • Configure Beehiiv and transform representative data.
    • Run a pilot containing normal records and every critical edge case.

    Depends on: Verified backup

    Stop / go checkpoint

    Scale?

    Go when: Pilot mappings, behavior, access, and evidence pass.

    Stop when: Any critical check fails or produces unexplained variance.

  4. Days 10–20 · cutover

    Final delta and switch

    5–25 hours active1–5 days elapsedDNS, import, or sync propagation waiting
    • Freeze production writes in Substack.
    • Apply the final delta, switch ownership, and run blocking checks.

    Depends on: Passed pilot and approved rollback

    Stop / go checkpoint

    Open production?

    Go when: Counts reconcile and one destination system owns production.

    Stop when: A source writer remains active or a blocking check fails.

  5. Days 12–40 · observe

    Observe and close

    3–18 hours active3–10 days elapsedOperating-cycle evidence waiting
    • Monitor one complete operating cycle.
    • Sign the verification report and close rollback only after stability.

    Depends on: Verified cutover

    Stop / go checkpoint

    Close rollback?

    Go when: No trigger occurs during the agreed observation period.

    Stop when: Data, access, delivery, routing, or business results regress.

07The point of change

Cut over with a way back.

Go live

Cutover

Make Beehiiv the only production system without losing the final Substack delta.

Recommended window: A low-volume weekday morning with platform, data, DNS, and business owners available.

  1. Freeze production writes and scheduled actions in Substack.
  2. Export, transform, and reconcile the final delta.
  3. Apply the approved delta to Beehiiv.
  4. Switch domains, forms, integrations, sending, or sync ownership as applicable.
  5. Run every blocking verification check and keep the source intact.

Proof to capture: Beehiiv owns production, totals reconcile, and every blocking check has durable evidence.

Return to safety

Rollback

Return production ownership to Substack without losing destination-era changes.

Deadline: Within seven days and before source data, plans, credentials, domains, or billing are changed.

  1. Stop new writes and scheduled actions in Beehiiv.
  2. Restore the prior Substack routing, forms, integrations, sending, or sync ownership.
  3. Export the Beehiiv post-cutover delta.
  4. Review and apply safe destination-era changes to Substack.
  5. Run the same blocking checks against the restored source.

Proof to capture: Substack again owns production with current data and no duplicate destination action.

Rollback immediately when
  • Unexplained critical count or value variance
  • Missing or exposed critical data
  • Duplicate production action
  • Failed access, routing, delivery, or integration check
  • A critical feature has no safe destination replacement
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingEligible countReconcile unique eligible emails.100% accepted, rejected, or investigated.Count sheet.
V-02BlockingInactive protectionTest inactive seed addresses.No inactive seed is sendable.Seed log.
V-03BlockingValues and segmentationCompare 30 stratified subscribers.All approved mappings match.Record comparison.
V-04BlockingAcquisition pathsSubmit every form.Correct consent, field, tag, redirect, and welcome behavior.Form matrix.
V-05BlockingBranches and timingRun seed accounts through each path.One correct sequence per seed.Automation log.
V-06Archive and accessReview representative free and paid issues.Approved layout, links, images, canonical, and access.Content review.
V-07BlockingAuthentication and cohortsInspect headers and send reports.SPF and DKIM pass; DMARC aligns; thresholds hold.Headers and reports.
V-08BlockingSingle sending and billing ownerInspect triggers, integrations, and subscriptions in both systems.Beehiiv alone owns approved production actions.Ownership checklist.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: One complete operating cycle, at least seven stable days, and owner sign-off on every blocking check.

  1. Create final Substack exports and archive verification evidence.
  2. Revoke temporary credentials, API keys, webhooks, and elevated roles.
  3. Remove obsolete embeds, forms, jobs, integrations, and DNS records.
  4. Keep the source intact through the approved retention window.
  5. Cancel paid plans only after billing, legal, and recovery review.
  6. Schedule the next Beehiiv backup, access, and migration-playbook review.
10Experiences from the field

When the plan met reality.

First-hand accounts are preferred. Vendor case studies are labeled, and every note below is an editorial paraphrase—follow the link for the full context.

First-person accountDave Infante · Fingers

Fingers has moved platforms. Here's why.

Dave Infante moved a four-year newsletter archive and most of roughly 7,000 subscribers from Substack to Beehiiv in about 90 minutes with Beehiiv engineering support. All approximately 600 paid subscribers moved, while more than 2,000 inactive or suspicious free addresses were intentionally left behind. Comments were lost, some image galleries broke, and Stripe-backed paid subscriptions largely continued unchanged.

What they recommend
  • Use the migration to clean inactive and suspicious free subscribers instead of copying every address automatically.
  • Confirm paid Stripe subscriptions separately and capture or accept the loss of comments before closing the source publication.
Worth noticing
  • Subscriber quality mattered more than headline list size, and the cleanup improved the usefulness of the destination list.
  • The transfer was fast with vendor help, but comments and some archive presentation did not survive.
Sources and maintenance

Built to be reviewed.

Tested 2026-07-19. Next scheduled review: 2026-10-19.

  1. Beehiiv: migrate from SubstackAccessed 2026-07-19
  2. Beehiiv: import a podcastAccessed 2026-07-19
  3. Beehiiv: paid subscription tiersAccessed 2026-07-19