Turn every new blog post into platform-native social posts
Every weekday we find your newly published articles, write separate LinkedIn, X, Instagram, and Threads posts, and schedule them across the day.
Every weekday at 8am, check my WordPress blog for newly published articles and turn each one into platform-native social posts scheduled through bundle.social. Use a cron trigger, because my WordPress site does not send outgoing notifications on its own.
Start with WordPress List Posts, filtered to published status and sorted newest first. Only take articles published after the previous run of this workflow. Keep track of the newest publish timestamp you processed and use it as the watermark for the next run. On the very first run, look back only 24 hours so the workflow does not backfill my entire blog archive. If there are no new articles, stop quietly without sending anything to Slack. For each article, keep the title, the permalink, the excerpt or opening section, and the featured image URL.
In bundle.social, call Get list of teams first to resolve the teamId. Most bundle.social endpoints need it, including uploads and posts. Handle each new article independently, so one bad article does not block the others.
For each article, take the featured image URL and pass it to bundle.social Create upload from URL, which fetches the image into the media library and returns an uploadId. Posts reference uploadId values rather than raw image URLs, so this step has to happen before the post is created. Keep the uploadId and attach it to every platform variant. If the article has no featured image, continue and schedule the variants as text only, skipping any network that requires media.
Now write the copy, and this is the part that matters most. Do not write one blob and cross-post it. Read the article and write a genuinely different variant per platform, each respecting that platform's length limit and tone. For LINKEDIN, write a professional takeaway of two or three short paragraphs that states the substantive insight rather than teasing it, then close with a genuine discussion question, staying well under 3000 characters and avoiding hashtag stuffing. For TWITTER, write a punchy hook under 280 characters that works as a standalone post, followed by a short thread of two to four additional tweets each under 280 characters, ending with the article link. For INSTAGRAM, write a warmer, more visual caption under 2200 characters with 5 to 10 relevant hashtags, and because links are not clickable in captions, point people to the link in bio rather than pasting a raw URL. For THREADS, write a shorter conversational caption under 500 characters with two or three hashtags, in a lighter register than the LinkedIn version.
Schedule everything with a single bundle.social Create post call per article. Send the shared payload plus a data object keyed by platform, using the enum values LINKEDIN, TWITTER, INSTAGRAM, and THREADS, with each platform's own text as a per-platform override in that data object. Attach the uploadId, and set the post status to scheduled rather than publishing immediately. Stagger the scheduled times across the day instead of firing everything at once: LinkedIn around 9am, X around midday, Instagram mid afternoon, and Threads late afternoon. Set a referenceKey derived from the WordPress post id so that a re-run of the workflow cannot double-schedule the same article.
Finally, send a Slack message to my marketing channel for each article, using Slack Send a Message. Include the article title and link, then the full text of every scheduled variant labelled with its platform and its scheduled time, so the team can read exactly what will go out. Close the message by noting that these are scheduled and can be edited or cancelled in bundle.social before their slot arrives. Publishing through bundle.social is asynchronous, so treat a successful Create post call as scheduled rather than published, and if the call fails for an article, say so plainly in Slack instead of reporting it as scheduled.
Example output
What does this prompt do?
- Checks your blog each weekday morning for articles published since the last check, so nothing gets promoted twice
- Writes genuinely different copy for each network: a professional takeaway and a discussion question for LinkedIn, a punchy hook and short thread for X, and a caption with relevant hashtags for Instagram and Threads
- Pulls in the article's featured image and attaches it to every variant, respecting each network's length limits and tone
- Schedules the variants at staggered times through the day and sends your marketing channel a preview of every one, so the team can edit or cancel before anything goes live
What do I need to use this?
- A WordPress blog with published articles you want promoted
- A bundle.social account with the social accounts you want to post to already connected, such as LinkedIn, X, Instagram, and Threads
- A Slack workspace and the channel your marketing team watches
How can I customize it?
- Change when it runs and how the posts are spread through the day, from all at once to spaced several hours apart
- Pick which networks to include and drop any you do not use
- Adjust the tone, hashtag count, or have everything land as a draft for manual approval instead of a scheduled post
FAQs
Will it post the same text to every network?
Can we review the posts before they go public?
Does this work with a self-hosted WordPress site?
Will it go back and post all my old articles?
What happens if an article has no featured image?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.
Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.
Stop rewriting every blog post four times.
Publish once and let every network get copy that actually fits it, scheduled and ready for your team to approve.