Turn every new blog post into platform-native social posts

By General Input

Every weekday we find your newly published articles, write separate LinkedIn, X, Instagram, and Threads posts, and schedule them across the day.

Integrations

  • bundle.social
  • WordPress
  • Slack

Type

Agentic Task

Categories

  • Marketing

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes