Auto-share new beehiiv posts to LinkedIn and Slack

By General Input

The moment a new beehiiv issue goes live, publish a native LinkedIn share and ping your team in Slack so marketing can amplify it.

Integrations

  • beehiiv
  • LinkedIn
  • Slack Bot

Type

Agentic Task

Categories

  • Marketing
  • Operations

Build me an agent workflow that turns every newly published beehiiv issue into a native-feeling LinkedIn share, then announces it in Slack so marketing knows to amplify.

Trigger: run on a cron. Every hour between 8am and 6pm local time Monday through Friday, plus once at 9am local time on Saturday and Sunday. The workflow keeps a high-water mark of the newest publish_date it has ever processed and uses that on the next run to find only issues published since then.

On each run, do the following:

1. Call beehiiv List Posts for my publication, filtered to status=confirmed, ordered newest first. Compare each result's publish_date to the stored high-water mark and collect any posts newer than it. Skip anything whose status is not confirmed (drafts, scheduled, archived). Also skip anything whose post ID has already been processed (dedupe by post ID so we never repost the same issue, even if the schedule overlaps).

2. For each new post, call beehiiv Get Post with content expansion so you have the full body, the title, the web URL, the subtitle if present, and the authors. Also grab the last 3 to 5 previously published posts (any status=confirmed) via List Posts + Get Post so you can read the newsletter's actual voice.

3. Draft the LinkedIn share as plain text (no markdown, LinkedIn does not render it). Match the tone you learned from the recent posts. Use this structure:

- Line 1: a scroll-stopping hook pulled from the piece itself (a surprising claim, stat, or reframe from the body). Never start with "Excited to share" or "New post".

- A blank line, then a one-sentence framing of what the post is about.

- Three tight takeaways as bullets, each a single line, starting with a bold-feeling verb. Use standard bullet characters that render on LinkedIn (for example a small arrow or dash).

- A short CTA ("Full breakdown here" / "Read the whole thing") followed by the post's public web URL on its own line.

Keep the whole thing under about 1300 characters so it fits above LinkedIn's "see more" fold gracefully. No em dashes. No hashtags unless the newsletter's own voice uses them.

4. Publish the draft using linkedin Create Post as a text-only post from the connected LinkedIn identity (default to the personal profile the user connected; if they configured a company page URN, post as that page instead). Capture the returned post URN and build the public LinkedIn share URL from it.

5. Send a Slack notification via slackbot Send a Message to the channel the user picked (default #marketing). The message should include: the newsletter issue title, the beehiiv web URL, the LinkedIn share URL that just went live, and a preview of the copy that was posted (the first ~500 characters, as a code block or quoted section). Format it so it's scannable at a glance.

6. Update the high-water mark to the newest publish_date processed on this run, and record every post ID that was successfully shared so the dedupe set survives across runs.

Error handling: if LinkedIn Create Post fails, do not update the dedupe record for that post so it retries on the next run, and post a Slack message flagging the failure with the post title and the error. If beehiiv List Posts returns nothing new, exit quietly without sending Slack noise.

Inputs the user should configure once at setup: the beehiiv publication ID, the LinkedIn identity to post as (personal vs. company page URN), the Slack channel to notify, the local timezone for the cron schedule, and optionally an override for the tone ("punchy", "analytical", "warm") that beats the learned voice.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them