Updated: Jun 6, 2026
How to migrate from Substack to beehiiv
Article Contents
- Free content migration
- Free and paid content migration
- Substack subscriber migration
- Optional: Structuring Advanced data fields
- Recommended fields to import from Substack
- Paid subscriber mapping
- How to migrate comped, gifted, and iOS paid subscriptions
- Migrating a podcast from Substack to beehiiv
- Known limitations and additional tips
In order to successfully migrate from Substack to beehiiv, you'll need to do a few things:
- Migrate your newsletter content.
- Migrate your subscribers.
- Migrate your podcast (if applicable).
Simply click the sections below to reveal the instructions for each.
Free content migration
- Copy your Substack publication URL. In Substack, go to Settings > Website to copy your publication URL. Alternatively, you can copy the URL directly from your browser's address bar while viewing your Substack homepage.
- Open the Content Import tool in beehiiv. From your beehiiv account, go to Settings > Content Import and click the Start Import button.
- Select your import source. Choose Substack and click Next in the top-right corner.
- Select Free content, then click Next.
- Paste your Substack publication URL into the field, then click Finish import.
- Wait for your posts to migrate. Migration usually takes 5-10 minutes, depending on the number of posts. During this time, your import status will display as Pending or Processing on your Historical Imports table.
- Refresh your browser to check progress. Once the import is complete, the status will show Complete, along with the number of posts successfully created.
How to migrate your free Substack content into beehiiv
Create your default template in beehiiv
Before migrating your content, it's best to create a newsletter template in beehiiv with your preferred styling. When setting up the template, select Set as default post style so those design choices automatically apply to all imported posts.
After migration, styling can only be adjusted on a post-by-post basis.
beehiiv offers several pre-built templates you can use as a starting point. For step-by-step instructions on creating templates and setting a default post style, see: Getting started with the Post Builder: Creating newsletter templates.
Import your free Substack content
Monitor your import progress
Free and paid content migration
- From your Substack account, go to Dashboard > Settings > Import/Export. Click the New export button.
-
Once the export file is ready, click the download icon to save it.
IMPORTANT NOTE FOR SAFARI USERS: By default, Safari may automatically unpack zipped files after download. To prevent this, go to Safari > Settings > General and make sure Open "safe" files after downloading is unchecked. This ensures your paid content remains in a zipped format, which is required for upload to beehiiv. - In beehiiv, go to Settings > Content Import. Click the Start Import button.
- Select Substack and click Next in the top-right corner.
- Select Free content and Paywalled content, then click Next again.
- Under Free content, paste your Substack publication URL into the field. Then, under Paywalled content, click Select File and upload your Substack export zip file.
- After your Substack URL is validated and your file uploads successfully, click Finish import in the top-right corner.
- When paid posts are imported from Substack, the exact paywall placement is not carried over. No portion of the post will be visible to free readers by default.
- To display a preview or partial content in beehiiv, you'll need to manually add a Paywall block to the post and click Update web in the top-right corner.
- Imported paywalls display without tier benefits and use default language ('Subscribe to Default') unless customized.
How to migrate both paid and free Substack content into beehiiv
Create your default template in beehiiv
Before migrating your content, it's best to create a newsletter template in beehiiv with your preferred styling. When setting up the template, select Set as default post style so those design choices automatically apply to all imported posts.
After migration, styling can only be adjusted on a post-by-post basis.
beehiiv offers several pre-built templates you can use as a starting point. For step-by-step instructions on creating templates and setting a default post style, see: Getting started with the Post Builder: Creating newsletter templates.
If you have not connected a Stripe account to beehiiv and created at least one paid tier yet to manage your paid subscription offering, this will need to be done before importing paid posts from Substack. Without doing this, all paywalled content will be fully visible on the imported posts to non paid subscribers.
Details on how to connect a Stripe account for a paid subscription offering and how to set up paid tiers are included in our guide, How to set up and use paid subscription tiers.
Export your content from Substack
Import your Substack content into beehiiv
Monitor your progress
Migration typically takes 5-10 minutes, depending on the number of posts. During this time, you'll see a Pending or Processing message in the Historical Imports table.
Refresh your browser to check progress. Once complete, the status will update to Complete with the total number of posts migrated.
Review your imported content
After migration, your imported posts will appear under Posts in your beehiiv dashboard. You can also view live versions of your posts on your beehiiv website.
Example: Below is a paid Substack post that's been migrated into beehiiv.
Notes on paywalls
To customize the copy and appearance of your paywall, follow the steps in: How to add and use paywalls for paid subscriptions.
Substack subscriber migration
- Log in to your Substack account and go to Subscribers. Access the dropdown menu on the right and select to Export a CSV list of all your subscribers.
- In beehiiv, go to Settings > Subscribers Import and click the New Subscribers Import button.
- You'll be prompted to choose an import method. Select Upload a CSV file, then choose your file. Once uploaded, click Next.
- Under Advanced Configuration (Optional), you can apply tags to all subscribers in the CSV. You'll also be able to map any tags from your CSV in the next step.
When ready, click Confirm subscribers import.
- A confirmation will appear asking you to verify that all contacts in the import have knowingly opted in to receive emails from you. Click the Import button to proceed.
- Next, you'll start mapping out the fields. Match the columns from your CSV file to fields in beehiiv. For any fields that don't already exist, you can create new ones under the Custom Field column by selecting Create new custom field.
- Review your results. After processing, you'll see how many subscribers were successfully imported.
If some were rejected, refer to the FAQs in this article for common reasons and troubleshooting steps.
- To view the subscribers from your newly imported list in your account, go to Audience > Subscribers.
To view custom fields for a specific subscriber, click their email address, then scroll to the Custom Fields section on the left side of the subscriber profile.
How to migrate free Substack subscribers
Optional: Structuring Advanced data fields
- Name
- Start date
- Subscriber country
- Subscriber source (free)
- Activity
- Open your downloaded CSV list of subscribers in Google Sheets or Microsoft Excel.
- Remove all unnecessary columns, keeping only the recommended fields listed above.
Then, rename the columns as follows: - In your spreadsheet, use formulas to split subscriber names into first and last names.
- This allows you to personalize emails using merge tags such as Hi {{subscriber.first_name}} instead of Hi Jennifer Smith.
- You can follow the methods outlined in this tutorial.
- Ensure the data is saved as values (not formulas).
- In Excel, copy and paste as values.
- In Google Sheets, use the Power Tools extension.
- Once your file is cleaned and formatted, follow the steps in Substack subscriber migration to import your list and map your custom fields.
- If you've included the Substack Activity Rating custom field, we recommend excluding subscribers with an activity rating of 0 for your first 2-4 weeks of sending.
- A rating of 0 means the subscriber hasn't opened previous emails sent from Substack.
- Excluding them initially helps protect deliverability while your audience transitions.
How to cleanup your list for import
In beehiiv, publishers are able to create custom segments using a wide range of unique data points and custom fields. Some of these fields exist in Substack but need to be reformatted in Microsoft Excel or Google Sheets to import properly.
Recommended fields to import from Substack
Prepare your file
| Substack Export Name | beehiiv Import Name |
| Start date | subscription_date |
| Subscriber country | subscriber_country |
| Subscription source (free) | utm_source |
| Activity | Substack Activity Rating |
Split subscriber names
After splitting names:
Import and map your subscribers
(Optional) Segment to exclude inactive subscribers
Create a segment with these conditions: Active subscribers with an Activity Rating of 0 in a Free tier.
To exclude that segment from one of your post sends, select it under Excluded segments on the Audience page of the post editor.
Paid subscriber mapping
- Connect your Stripe account to beehiiv: When setting up your account, Stripe should automatically detect your existing Substack-connected account and offer to pre-fill your business information. This new Stripe account will host the paid subscriptions recreated from your Substack-connected Stripe account.
- Step-by-step instructions for creating a new Stripe account through beehiiv are available here.
- Set up paid tiers in beehiiv: Your paid subscription tiers must already exist before migration. Follow this guide for details on creating pricing tiers, and be sure your beehiiv tiers mirror your Substack tiers.
- In beehiiv, go to Settings > Subscribers Import. Under Import paid subscriptions from Stripe, click Start a New Migration.
- On the next screen, click Start a New Migration again to confirm.
- In a separate browser tab, log in to your Stripe account. From the dropdown in the upper-left corner, select your Substack-connected Stripe account, then click Customers in the left-hand menu.
- On the Customers page, click Copy › Copy all customers.
- Navigate back to the beehiiv tab and copy the beehiiv Stripe account ID under step 2.
- Return back to Stripe, paste the beehiiv Stripe account ID into the Account ID field, and click Continue.
- Paste your beehiiv account ID into the Account ID field and click Continue.
- Click Confirm request to start the transfer.
- In your beehiiv-connected Stripe account (the recipient), navigate back to Customers and click Accept to approve the customer data transfer.
- A notification will appear confirming that the transfer has started. Although Stripe notes it may take up to three days, most transfers complete within 5-15 minutes, depending on the size of your customer list.
- Once the transfer is complete, refresh your Stripe window to view the migrated customers.
You'll now see the customer profiles and payment details successfully copied into your beehiiv-connected Stripe account. - Next, the paid subscriptions will need to be recreated. Navigate back to your beehiiv tab and click the I've completed these steps button.
- In Stripe, switch back to your Substack-connected Stripe account from the dropdown in the upper-left corner of the screen.
- Go to Settings > Business, then copy your Substack-connected Stripe account ID.
- Return to your beehiiv tab and paste the Substack account ID into the required field.
- Back in Stripe, navigate to Developers > API keys. Make sure that you're still in your Substack-connected Stripe account.
- Click Create restricted key.
- When prompted, select Providing this key to another website, then click Continue at the bottom of the screen.
- In the form that appears:
- Enter beehiiv in the Name field.
- Enter beehiiv.com in the URL field.
- Click Create restricted key.
- Complete the verification steps required by Stripe to finalize the API key creation.
- After creating the restricted API key, copy the key and click Done.
- Return to your beehiiv tab, paste the API key into the Restricted API key field, and click Continue in the bottom-right corner.
- On the Select products and map to beehiiv tiers page, map your existing paid subscription tiers from Substack to your tiers in beehiiv.
You can also map legacy price points to existing tiers or create new tiers to preserve older pricing for existing subscribers.- Select the checkbox for each tier or price point you want to migrate.
The dropdown list will show any paid subscription tiers you already have in beehiiv, choose the one you want to map to. - For any subscription products that don't yet have a beehiiv price point (such as legacy or discounted tiers):
- You can assign them to an existing beehiiv tier using the Map to beehiiv tier dropdown, or
- Click Create new tier to make a separate tier.
- In both cases, subscribers retain their current Substack pricing.
- When finished mapping, click Continue at the bottom of the screen.
- Depending on how many subscription products you have, generating the migration preview may take 2-10 minutes. If the page doesn't update, refresh your browser window.
- Once the preview is ready, you'll see a table listing all mapped paid subscriptions.
- We recommend clicking Download CSV for record-keeping and reviewing your mappings before proceeding.
- When ready, click Start import.
- A progress bar will appear while the migration is processing.
- When the migration completes, you'll see a confirmation page showing which subscription products were successfully mapped to beehiiv.
To view migrated subscribers with a paid tier, click View audience and select All tiers from the dropdown filter.
- Select the checkbox for each tier or price point you want to migrate.
- In Substack, go to Dashboard › Settings › Payments.
- Click Pause subscription billing.
- In the popup, select Pause indefinitely.
- In your Stripe dashboard, go to Revenue recovery > Emails.
- Toggle on Send emails when card payments fail.
- Toggle on Send emails about expiring cards.
Mirroring your paid Substack subscriber details
Before you begin mapping your paid subscribers from Substack to beehiiv, please note the following:
How to map your paid Substack subscribers
After migrating, you must either pause or cancel paid subscriptions in your Substack account to prevent double billing. If you don't, subscribers will be charged twice — once by Substack and once by beehiiv.
Most publishers choose to pause subscriptions indefinitely, since the change is immediate and doesn't require Substack's assistance.
If you prefer to fully cancel your Substack account or paid subscriptions instead of pausing them, contact Substack Support directly. Be sure to confirm that no refunds are issued during this process.
To pause subscriptions indefinitely:
To reduce payment failures after migrating, we recommend setting up revenue recovery notifications in Stripe:
Both toggles are off by default when a new Stripe account is created. Enabling them prompts Stripe to notify subscribers directly when their payment fails or their card is about to expire, giving them a chance to update their payment method.
Once your paid subscribers are fully migrated and billing is paused in Substack, your transition to beehiiv's paid tiers is complete. Your audience, payments, and subscriber data are now fully managed in one place — ready for you to grow, monetize, and engage your community on beehiiv.
How to migrate comped, gifted, and iOS paid subscriptions
- Include a message about the change in your regular newsletter send from Substack.
- Create a segment of iOS based subscribers in beehiiv and send them a targeted email via beehiiv.
How to migrate comped/gifted/iOS paid subscriptions
Because subscribers that have paid access via Complimentary Access, Gifted Subscriptions, and iOS subscriptions are not present in Stripe, they will need to be granted Complimentary access in beehiiv to continue to receive paid content.
After the Complimentary gift is created for the period you want to grant access for (ex: 14 days, 1 month, 1 year, lifetime, etc.) you can either apply the Complimentary access subscriber by subscriber from their subscriber profiles or in bulk using our Segments feature. Both approaches are detailed in our guide, How to create a complimentary gift.
To determine how much longer someone has paid access for, we recommend using the Expiration date column from your Substack subscriber export file. That export file can be downloaded under the Subscribers tab. Access the dropdown menu on the right and select to Export a CSV list of all your subscribers.
For iOS subscribers, you'll specifically need to do a separate export by filtering under Type > is > iOS Subscription.
When creating the Complimentary gift periods, you can get as specific as the exact amount of days someone has access remaining for, or group subscribers according to period to save time in applying the Complimentary access.
Informing iOS/Apple App Store paid subscribers of changes
Because iOS based paid subscriptions are hosted in the Apple App Store and not Stripe, and those subscriptions can't be cancelled on the admin side in Substack, iOS paid subscribers will need to be alerted to cancel their paid subscriptions in the App Store.
There are a few different ways to send an outreach to these subscribers:
To create a segment of iOS based subscribers in beehiiv, go to the Subscribers tab in Substack and filter for Type > is > iOS subscription and click the Save Changes button. After doing this, you can select the 3 dots menu next to Display and select Export.
If you go to Subscribers > Segments in beehiiv, you can create a Manual Segment using that iOS Subscribers CSV export. After the segment is created, you can create a post where the iOS segment is selected under the Audience tab for Email while the checkboxes for the other subscriber tiers are unchecked. This should be an 'Email only' post so there's not a version of it showing on your website.
In the communication, we recommend including a discount offer link to sign back up for a paid subscription in beehiiv. Because iOS based subscriptions take an additional 30% on top of the 10% Substack take rate, anywhere from a 20%–33% discount would be enticing to those subscribers to upgrade again.
A discount link for this purpose can be created under Monetize > Subscriptions > Paid Tiers as detailed in our guide, How to add a discount to a paid subscription.
Some sample language to use when reaching out to iOS based subscribers is included below for reference:
"You were an app-based subscriber on Substack, which means you were paying Apple for your subscription, which was taking a cut before paying me. Substack had automatically set these subscriptions at a higher price than my usual offering so that writers like me weren't losing money to Apple's fees. Unfortunately, this is not a Stripe based subscription that I can seamlessly migrate. However, your subscription will be comped for the period that you paid for, so you will receive the paid and free content as usual.
To ensure you don't continue to be billed via Apple, you will need to cancel your paid subscription through Apple (here's a guide) and sign up again for a paid subscription through my website. Apple/Substack does not allow publishers to manage these App Store based subscriptions unfortunately. To make the transition easier for you, I'm offering 30 percent off for app-based Substack subscribers with the discount link included below. I recommend redeeming this offer towards the end of the period you've most recently paid for via Apple, as doing so will immediately replace the existing subscription you have."
Migrating a podcast from Substack to beehiiv
- In beehiiv, go to Podcasts and click on your show. Click the Copy button next to your RSS feed URL under the "Redirect your previous host to beehiiv" section.
- In Substack, go to Dashboard > Settings > Podcasts.
- Scroll to the bottom of the page under the "Danger Zone" section and click the red "Redirect RSS feed" button.
- Paste your beehiiv RSS feed URL into the "New RSS feed URL" field and click the red "Redirect to this URL" button.
Importing your show to beehiiv
If you have an existing podcast on Substack, you can import your episode archive to beehiiv and publish future episodes through beehiiv. This should not be done until you are done publishing podcast episodes via Substack.
Details on how to import your episode archive to beehiiv are included in the below guide:
Importing your podcast to beehiiv
Redirect your RSS feed
After importing your show to beehiiv, you'll need to redirect your show RSS feed to your new beehiiv RSS feed in order for existing subscribers to your show to see new episode uploads in their podcast listening platform of choice and maintain their listen history for the show.
Known limitations and additional tips
- Video type posts will not be migrated.
- Podcast type posts will not be migrated.
- Previous paywall placements will not be migrated (paid posts will be totally gated to non-paid subscribers).
- Photo gallery elements will not be migrated.
- Comments will not be migrated.
- Category structures will not be migrated.
- Code blocks will migrate as plain text and will need to be recreated using the HTML Snippet option in the post editor.
- Because beehiiv uses the same "/p/" post URL structure as Substack (e.g., news.beehiiv.com/p/name-of-post), you don't need to configure redirects manually.
- We've partnered with Entri, a DNS management service, to make this process seamless, no manual DNS changes are required. Refer to this step-by-step guide: How to use a custom domain for your publication.
- If you previously used the Recommendations feature in Substack, we recommend Setting up your Top 4 Recommendations in beehiiv to help replicate that as a free subscriber growth channel.
- To help ensure your post content is visible in search results, we also recommend verifying your site ownership with Google Search Console. This improves SEO and web traffic for your beehiiv site. For instructions, refer to Google Search Console: Ownership verification and indexing setup for SEO.
Current list of limitations
While the migration tools are designed to make moving from Substack to beehiiv as smooth as possible, there are a few limitations to be aware of. These are mostly due to differences between the two platforms and how certain content types are structured.
Current limitations include:
Additional tips after migrating content and subscribers
Hire a beehiiv Expert
Was this article helpful?
Related Articles