--- title: "How to migrate from Substack to beehiiv" updated: 2026-04-21 --- # How to migrate from Substack to beehiiv In order to successfully migrate from Substack to beehiiv, you’ll need to do two things: - Migrate your newsletter content. - Migrate your subscribers. The steps you’ll need to take to do this vary based on whether you have only free content, paid content, or a mix of both in Substack. Refer to the chart to determine which parts are relevant to your needs, then click the sections below to reveal the instructions for each. | Migration Type | Subscriber Migration | Paid Subscriber Mapping | Free Content Migration | Paid & Combo Content Migration | | -------------------------------------- | -------------------- | ----------------------- | ---------------------- | ------------------------------ | | Only Free Subscribers & Content | X | | X | | | Only Paid Subscribers & Content | X | X | | X | | Both Free & Paid Subscribers & Content | X | X | | X | ## Free content migration **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](https://www.beehiiv.com/support/article/30974963947031-getting-started-with-the-post-builder-creating-newsletter-templates). ### Import your free Substack content 1. 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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235600355351) 2. Open the Content Import tool in beehiiv. From your beehiiv account, go to [**Settings > Content Import**](https://app.beehiiv.com/settings/publication/content_import) and click the **Start Import** button. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235613286935) 3. Select your import source. Choose **Substack** and click **Next** in the top-right corner. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235600362647) 4. Select **Free content**, then click **Next.** ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235613293719) 5. Paste your Substack publication URL into the field, then click **Finish import.** ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235600365719) ### Monitor your import progress 6. 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](https://app.beehiiv.com/settings/publication/content_import). ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235613298455) 7. Refresh your browser to check progress. Once the import is complete, the status will show **Complete**, along with the number of posts successfully created. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235613299863) ## Free and paid content migration **How to migrate both paid and free Substack content into 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](https://www.beehiiv.com/support/article/30974963947031-getting-started-with-the-post-builder-creating-newsletter-templates). 1. From your [Substack account](https://substack.com/sign-in), go to **Dashboard > Settings > Import/Export**. Click the **New export** button.  2. Once the export file is ready, click the **download icon** to save it.  ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36238157452439) > **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. > > ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36238157455767) ### Import your Substack content into beehiiv 3. In beehiiv, go to [**Settings > Content Impor**t](https://app.beehiiv.com/settings/publication/content_import). Click the **Start Import** button.  ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235613286935) 4. Select **Substack** and click **Next** in the top-right corner. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235600362647) 5. Select **Free content** and **Paywalled content**, then click **Next** again. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36238542805655) 6. 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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36238550486935) 7. After your Substack URL is validated and your file uploads successfully, click **Finish import** in the top-right corner. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36238550488087) --- ### 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](https://app.beehiiv.com/settings/publication/content_import). ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235613298455) Refresh your browser to check progress. Once complete, the status will update to **Complete** with the total number of posts migrated. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36235613299863) --- ### Review your imported content After migration, your imported posts will appear under [**Posts**](https://app.beehiiv.com/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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36238542808727) --- ### Notes on paywalls - 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](https://www.beehiiv.com/support/article/14966988360215) and click **Update web** in the top-right corner. - Imported paywalls display without tier benefits and use default language (‘Subscribe to Default’) unless customized. To customize the copy and appearance of your paywall, follow the steps in: [How to add and use paywalls for paid subscriptions](https://www.beehiiv.com/support/article/9363839870743-how-to-add-and-use-paywalls-for-paid-subscriptions). ## Substack subscriber migration **How to migrate free Substack subscribers** If you’d like to retain certain data fields (like for unique segmentation in beehiiv), review [Optional: Structuring advanced data fields](#h_01HKB94PHNPX5RZZNRHYWA61G9) before moving on to the next steps. 1. Log in to your [Substack account](https://substack.com/sign-in) and go to **Subscribers.** Access the dropdown menu on the right and select to **Export** a CSV list of all your subscribers. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36240007737367) 2. In beehiiv, go to [**Settings > Subscribers Import**](https://app.beehiiv.com/settings/publication/subscribers_import) and click the **New Subscribers Import** button.  ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36240033047191) 3. You’ll be prompted to choose an import method. Select **Upload a CSV file**, then choose your file. Once uploaded, click **Next**. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36240033049367) 4. Under **Advanced Configuration (Optional)**, you can [apply tags to all subscribers](https://www.beehiiv.com/support/article/22044432486295-how-to-create-and-use-subscriber-tags) 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**.   5. 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.   6. 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**. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36240007743895) 7. 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](https://www.beehiiv.com/support/article/4412705350679-how-to-import-free-subscribers-and-map-custom-fields-or-tags#h_01JECCMBXJ9WM1GBY5XEPKFDEF-frequently-asked-questions-about-importing-subscribers) for common reasons and troubleshooting steps.   8. To view the subscribers from your newly imported list in your account, go to **Audience >** [**Subscribers**](https://app.beehiiv.com/subscribers). To [view custom fields](https://www.beehiiv.com/support/article/13062438079895-how-to-edit-custom-fields-in-subscriber-profiles) for a specific subscriber, click their **email address**, then scroll to the **Custom Fields** section on the left side of the [subscriber profile](https://www.beehiiv.com/support/article/13062438079895-how-to-edit-custom-fields-in-subscriber-profiles). ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36240007745815) ## Optional: Structuring Advanced data fields **How to cleanup your list for import** In beehiiv, publishers are able to [create custom segments](https://www.beehiiv.com/support/article/9366426644503) 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 - Email - Name - Start date - Subscriber country - Subscriber source (free) - Activity ### Prepare your file 1. Open your downloaded CSV list of subscribers in **Google Sheets** or **Microsoft Excel**. > **Note** > > For best results, convert the file to a native Google Sheets format or save it as an Excel (.xlsx) file to unlock full formula functionality. 2. Remove all unnecessary columns, keeping only the recommended fields listed above. Then, rename the columns as follows: | Substack Export Name | beehiiv Import Name | | -------------------------- | ------------------------ | | Start date | subscription_date | | Subscriber country | subscriber_country | | Subscription source (free) | utm_source | | Activity | Substack Activity Rating | > **Tech Note** > > ‘Country’ is a [reserved beehiiv field](https://beehiivhelp.zendesk.com/hc/en-us/articles/7606088263191) that cannot be used during your import. For the best experience, rename the ‘country’ field in your CSV to ‘subscriber\_country’ (or a similar column name) prior to importing. ### Split subscriber names 3. In your spreadsheet, use formulas to split subscriber names into first and last names. - This allows you to personalize emails using [merge tags](https://www.beehiiv.com/support/article/25846316892055-how-to-personalize-a-post-using-merge-tags) such as Hi {{subscriber.first\_name}} instead of Hi Jennifer Smith. - You can follow the methods [outlined in this tutorial.](https://zebrabi.com/how-to-separate-first-and-last-names-in-excel/) After splitting names: - Ensure the data is saved as values (not formulas). - In Excel, copy and paste as values. - In Google Sheets, use the [Power Tools extension](https://workspace.google.com/u/3/marketplace/app/power_tools/1058867473888). ### Import and map your subscribers 4. Once your file is cleaned and formatted, follow the steps in [Substack subscriber migration](#h_01HKB94PHNSQH1E1NZN15KJ9MC) to import your list and map your custom fields. > **Pro Tip** > > After import, use your custom field data to [create segments](https://www.beehiiv.com/support/article/9366426644503-How-do-I-create-segments) for tracking engagement or sending targeted campaigns. ### (Optional) Segment to exclude inactive subscribers 5. 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. Create a segment with these conditions: Active subscribers with an Activity Rating of 0 in a Free tier. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36242643712919) To exclude that segment from one of your post sends, select it under **Excluded segments** on the **Audience page** of the post editor. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36242643713559) > **Note regarding subscription dates** > > By default, the subscription date in beehiiv will display as the date you import your subscribers. If you’d like to retain their original signup dates from Substack, complete your import first, then visit the [Help page](https://app.beehiiv.com/help) to contact our Support team and request that those dates be added manually. ## Paid subscriber mapping **Mirroring your paid Substack subscriber details** Before you begin mapping your paid subscribers from Substack to beehiiv, please note the following:  - **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](https://www.beehiiv.com/support/article/12643795789335-how-to-set-up-a-stripe-account-for-paid-subscriptions). - **Set up paid tiers in beehiiv:** Your paid subscription tiers must already exist before migration. [Follow this guide for details on creating pricing tiers](https://www.beehiiv.com/support/article/23080261008279-how-to-set-up-and-use-multiple-paid-subscription-tiers), and be sure your beehiiv tiers mirror your Substack tiers.  - **Maintain the same currency:** When mapping paid subscriptions from Substack to beehiiv, it's crucial to maintain the original currency because you cannot change the currency of subscriptions during migration. - The migration tooling also doesn’t support combining multiple currencies for a single customer. - **Example:** If your Substack price was $150 (USD) but localized pricing charged some users €140 (Euros), those users will not migrate successfully since their currency differs. --- ### How to map your paid Substack subscribers 1. In beehiiv, go to [**Settings > Subscribers Import**](https://app.beehiiv.com/settings/publication/subscribers_import). Under **Import paid subscriptions from Stripe**, click **Start a New Migration.** ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743833367) 2. On the next screen, click **Start a New Migration** again to confirm. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684766871) 3. In a separate browser tab, log in to your [Stripe account](https://dashboard.stripe.com/login). From the dropdown in the upper-left corner, select your **Substack-connected Stripe account**, then click **Customers** in the left-hand menu.   4. On the **Customers** page, click **Copy › Copy all customers**. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684768023) 5. Navigate back to the beehiiv tab and copy the **beehiiv Stripe account ID** under step 2.  ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743834903) 6. Return back to Stripe, paste the beehiiv Stripe account ID into the **Account ID** field, and click **Continue**.    7. Paste your beehiiv account ID into the **Account ID** field and click **Continue**. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743835415) 8. Click **Confirm request** to start the transfer. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743836055) 9. In your beehiiv-connected Stripe account (the recipient), navigate back to **Customers** and click **Accept** to approve the customer data transfer. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743836823) 10. 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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743837335) 11. 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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684771863) > **Pro Tip** > > For additional details regarding migrating PAN data in Stripe, [refer to this resource from Stripe](https://docs.stripe.com/payments/account/data-migrations/pan-copy-self-serve). 12. Next, the paid subscriptions will need to be recreated. Navigate back to your beehiiv tab and click the **I’ve completed these steps** button. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743838743) 13. In Stripe, switch back to your Substack-connected Stripe account from the dropdown in the upper-left corner of the screen. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743839127) 14. Go to **Settings > Business**, then copy your Substack-connected Stripe account ID.   15. Return to your **beehiiv tab** and paste the Substack account ID into the required field. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743839895) 16. Back in Stripe, navigate to [**Developers > API keys**](https://dashboard.stripe.com/apikeys). Make sure that you’re still in your Substack-connected Stripe account. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684774807) 17. Click **Create restricted key**.   ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684776215) 18. When prompted, select **Providing this key to another website**, then click **Continue** at the bottom of the screen. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684776599) 19. In the form that appears: - Enter **beehiiv** in the **Name** field. - Enter **beehiiv.com** in the **URL** field. - Click **Create restricted key**.   20. Complete the verification steps required by Stripe to finalize the API key creation. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684777111) 21. After creating the restricted API key, copy the key and click **Done**. > **Tech Note** > > Save your API key in a secure place. Once the window is closed, the key cannot be retrieved and you’ll need to create a new one if lost. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684777879) 22. Return to your beehiiv tab, paste the API key into the **Restricted API key** field, and click **Continue** in the bottom-right corner. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684778263) 23. 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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743845655) 24. 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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684779415) 25. 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.   26. When finished mapping, click **Continue** at the bottom of the screen. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684779927) 27. 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.   28. 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**. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243684781079) 29.  A progress bar will appear while the migration is processing.  ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743850903) 30. 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. ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36257629913239) > **Important note about billing post migration** > > 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](https://substack.com/contact) directly. Be sure to confirm that **no refunds** are issued during this process. > > **To pause subscriptions indefinitely:** > > 1. In Substack, go to **Dashboard › Settings › Payments**. > 2. Click **Pause subscription billing**. > 3. In the popup, select **Pause indefinitely**. > > ![](https://beehiivhelp.zendesk.com/hc/article_attachments/36243743852439) 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. ## Known limitations and additional tips **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:** - Videos will not be migrated.  - Podcasts will not be migrated. - Previous paywall placements will not be migrated. - Photo galleries 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. - Embeds will not be migrated.  - Blockquotes will migrate, but their visual styling may differ slightly from Substack.  > **Note** > > While audio and video posts are not currently migrated through the content importer, you can recreate them in beehiiv using the steps in this guide: [Ways to migrate audio and video posts from Substack to beehiiv](https://www.beehiiv.com/support/article/35448935420951-ways-to-migrate-audio-and-video-posts-from-substack-to-beehiiv). **Additional tips after migrating content and subscribers** If your Substack publication uses a custom domain, you can mirror that setup in beehiiv so that all backlinks and web traffic to past posts redirect to your new beehiiv site. - 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](https://www.beehiiv.com/support/article/14492990172823-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](https://www.beehiiv.com/support/article/13091498232855-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](https://www.beehiiv.com/support/article/14493016904983-google-search-console-ownership-verification-and-indexing-setup-for-seo). **Hire a beehiiv Expert** If you prefer hands-on help with your migration from Substack to beehiiv, you can work with a specialist from the [beehiiv Experts Directory](https://www.beehiiv.com/experts?tag=migration). These trusted partners offer professional migration services to help ensure a smooth transition to your new platform.