Get Help Your Way

OR

Updated: Jan 28, 2026

Knowledge Base

Sending beehiiv posts to an external CMS

Sending beehiiv posts to an external CMS

Available on Enterprise plans. Click here to upgrade your account.

This guide explains how to send posts published in beehiiv to an external content management system (CMS) or website, such as WordPress, using webhooks and the beehiiv API.

This setup is commonly used by Enterprise customers who want to:

  • Publish newsletter content to an external site automatically.
  • Keep beehiiv as the source of truth for writing and sending posts.
  • Sync published posts with an existing CMS workflow.

This article focuses specifically on sending content from beehiiv to an external CMS. If you’re looking to create or update beehiiv posts from an external system instead, refer to Create post in our API documentation and this related KB article.

In this article, you’ll learn:

  • How to capture published posts using the post.sent webhook.
  • How to retrieve post content using the beehiiv API.
  • How to pass that content to your CMS.
  • Alternative approaches using Zapier or Make.

Overview: How the integration works

At a high level, integrating beehiiv with a CMS involves the following phases:

  1. Register a webhook to capture the post.sent event
  2. Capture the post ID from the webhook payload
  3. Use the post ID to retrieve the post content via the beehiiv API
  4. Pass the post content to your CMS

If you prefer a no-code or low-code approach, you can also complete this workflow using Zapier or Make, both of which are covered later in this guide.


Phase 1: Register a webhook to capture the post.sent event

To capture posts published in beehiiv, you’ll first need to register a webhook that listens for the post.sent event. Webhooks can be created either via the beehiiv API or directly in the app.

To create a webhook in beehiiv:

  1. Click on the Settings icon in the bottom-left corner of your account. 
     
  2. From the left panel, go to Webhooks, then click Create Webhook Endpoint.

  3. Enter the following details:
  • Endpoint URL: The URL that will receive webhook payloads.
  • Description: A short description to help identify the webhook.

When done, click Continue.

  1. From the list of available events, select post.sent, then click Create Webhook to complete the setup.


Phase 2: Capture the post ID from the webhook payload

Each time a post is published in beehiiv, the post.sent webhook sends a payload to your endpoint.

Below is an example payload where the post ID you’ll need for the next phase is located at data.id.

{
  "data": {
    "audience": "free",
    "authors": [
      "Clark Kent"
    ],
    "content_tags": [
      "news"
    ],
    "created": 1666800076,
    "id": "post_00000000-0000-0000-0000-000000000000",
    "preview_text": "More news on the horizon",
    "slug": "more_news",
    "split_tested": true,
    "status": "confirmed",
    "subject_line": "Check this out",
    "subtitle": "New post subtitle",
    "thumbnail_url": "https://example.com/pictures/thumbnail.png",
    "title": "New Post Title",
    "displayed_date": 1666800076,
    "web_url": "https://example.com/more_news"
  },
  "event_timestamp": 1666800076,
  "event_type": "post.sent",
  "uid": "evt_00000000-0000-0000-0000-000000000000"
}

Phase 3: Use the post ID to retrieve the post content via the beehiiv API

Once you have the post ID, you can retrieve the post content using the Get post endpoint:

https://api.beehiiv.com/v2/publications/:publicationId/posts/:postId?expand=:contentType

Where:

  • :publicationId corresponds to your publication’s ID, found in beehiiv under Settings > API (please use the ID for API V2).
  • :postId is the ID captured from the webhook payload (sent via the post.sent webhook).
  • :contentType determines which version of the post content is returned by the API.

Valid contentType values include:

  • free_rss_content
  • free_web_content
  • free_email_content
  • premium_web_content
  • premium_email_content

The content returned by the API may vary based on whether the post was sent to a free or premium audience, and any visibility settings applied within the post.

Note: In this context, visibility settings apply only to free vs premium content and do not distinguish between different paid tiers.

Phase 4: Pass the post content to your CMS

How you send post content to your CMS depends on your platform and workflow. The type of content you retrieve from the API can affect how easily it integrates with your site.

Web content

Web content includes the web header, which contains the post title, bylines, and social share icons.

To extract just the post content, target the <div> element with the ID content-blocks. This content includes inline styling (such as fonts and padding), making it a good option if you want to preserve beehiiv’s post styling.

Email content

Email content includes the full email body, document head (including style tags), and footer.

This option is useful if you need to preserve the entire newsletter. Keep in mind that merge tags used for dynamic content will appear in the output, particularly in the header and footer. In many cases, this can be avoided by extracting only the #content-blocks div.

Because of how HTML emails are structured, most styling will be inlined directly on elements.

RSS content

RSS content includes minimal styling and is often the best choice if you want post styling to match your existing CMS or site design.

To extract the post body, target the <div> element with the ID  beehiiv__body.


Integrating with Zapier

You can automate this workflow using Zapier if you prefer a no-code or low-code approach. The workflow involves using beehiiv’s Zapier app and its New Post Sent trigger to capture published posts and send them to your CMS. 

If you haven’t already used the beehiiv app, it will require you to connect your beehiiv account using an API key and your V2 publication ID. These can be found in your account’s API Settings.

Click here to use the Zapier template for this workflow, which can be customized for your CMS.

Set up the New Post Sent trigger

  1. In Zapier, select the beehiiv app and choose the New Post Sent trigger.
     
  2. If you haven’t connected beehiiv to Zapier before, you’ll be prompted to authenticate using:
    • An API key
    • Your API V2 publication ID, found under Settings > API in beehiiv

When the trigger is created, Zapier automatically registers a corresponding webhook in your beehiiv account. This is why you’ll see a Webhook Description associated with the Zap.

Tech Note: The examples below use WordPress as the destination CMS. If you’re using WordPress, you’ll need to install the Zapier for Wordpress plugin before continuing.

Retrieve the post content

  1. Use the beehiiv app’s View a Post action to retrieve the post ID provided by the webhook. 
  • From the Configure dialog, go to Posts and click the 3 dots icon and select Post ID from the previous step. 
  • In the Expand field, select which version(s) of the post body you’d like to fetch from beehiiv (for example, web or email content).

Refer back to Phase 4: Pass the post content to your CMS above for guidance on choosing the right content type.

Send the post to your CMS/site

  1. Add a final action step that sends the retrieved post content to your CMS.


    Depending on your setup, this may include:
  • Creating a new post in WordPress.
  • Sending the HTML payload to an external endpoint.
  • Mapping the content into a CMS-specific field.

The exact configuration will vary based on your CMS and how you want content displayed.


Integrating with Make

Make offers a similar automation workflow with more flexibility for advanced transformations.

A public Make template is available for WordPress, and can be modified to support other CMS platforms.

How the Make scenario works

The Make scenario uses:

  • A Watch for Post Sends webhook as the trigger.
  • Web HTML as the default content type.

A Text parser module is included to remove the post title, bylines, and social share icons. This ensures that only the post body is sent to the CMS.

Customize for other CMS platforms

If you’re using a CMS other than WordPress, you’ll want to:

  1. Remove the WordPress module from the scenario.
  2. Replace it with:
    • A CMS-specific module, or
    • An HTTP request module if no official module is available.
  3. Map the Text output from the Text parser module to the post content field in your CMS module.

This allows you to reuse the same workflow logic while adapting it to different publishing platforms.



Was this article helpful?

Related Articles

Want More Features?

Upgrade your plan to access more beehiiv tools and supercharge your growth

the one place to build
the one place to build
the one place to build
the one place to build
the one place to build
the one place to build
the one place to build
the one place to build
the one place to build
the one place to build
the one place to build
the one place to build