Migration field guide
Mailchimp to beehiiv: subscribers, content and checks
Move permission and subscription state with the audience. Keep sending disabled until records, billing and suppression checks pass.
Edited by Clinton Feyisitan · Documentation checked
Review scope: Official documentation and field mapping reviewed. The steps below are a proposed validation procedure, not a completed native migration or a measured completion-time claim.
What the documented route supports
beehiiv documents CSV subscriber import separately from newsletter-content import. Map fields explicitly and inspect rejected records; an imported email address is not evidence of permission to send. Mailchimp subscriber tags and custom fields can be mapped during import. Templates, automations and audience suppression rules require their own review.
Map before importing
| Source | Destination | Check |
|---|---|---|
| Email / subscription state | Subscriber and suppression records | Reconcile successful, rejected and excluded rows. |
| Tags / custom fields | Mapped destination fields | Use a reserved-field-safe name; Substack country can be subscriber_country. |
| Published archive | Separate content import | Check original dates, images and paid/free visibility. |
| Paid access / automations | Separate configuration | Do not infer billing or send eligibility from list size. |
A controlled migration
- Export the selected Mailchimp audience and save the original file. Separate subscribed contacts from unsubscribed, bounced, suppressed and unknown-permission records.
- Use beehiiv’s subscriber import controls to upload a small CSV pilot. Map email, names, tags and custom fields; confirm consent only when supported by the source records.
- Use Content Import separately for the archive. Inspect old posts, images, dates, links and access settings; do not send imported posts as new emails.
- Rebuild forms, domain authentication, segmentation and automations. Keep automations off while checking whether imported tags or fields could trigger old welcome sequences.
Acceptance checks
Record the result and evidence for each check. Stop the cutover if a required check fails.
- Count subscribed and suppressed contacts separately. Explain every rejected or excluded row.
- Use your own controlled test address to verify signup, confirmation and unsubscribe behaviour before sending to the audience.
- Check a paywalled post and a paid subscriber’s renewal status if paid access is in scope.
Budget for overlapping plans, required features, seats, storage or usage, and the time to reconcile exceptions. Check the current provider quote; this guide does not reuse historical subscription prices.
Keep a way back
Retain the source exports, suppression list and original publication. If validation fails, leave destination sending off and resume only one sender. For paid subscriptions, agree a billing recovery plan with the providers rather than independently reversing charges.
Official sources
Source availability and account UI can change. Native account execution remains untested in this guide.
Earlier editorial risk estimate
This historical rating has not been recalculated by this documentation review.