Turn new WordPress posts into podcast-style audio in Dropbox

By General Input

Every hour, narrate your latest WordPress articles with an expressive voice, save the audio to Dropbox, and share the link in Slack.

Integrations

  • WordPress
  • Hume
  • Dropbox
  • Slack Bot

Type

Deterministic Code

Categories

  • Marketing
  • Personal Productivity

Build me a code-based workflow that runs on a cron trigger every hour and turns each new WordPress blog post into podcast-style audio.

On each run, use the WordPress List Posts operation to fetch posts with status=published that were created since the last run. Persist the last-run timestamp in workflow state so the same post is never narrated twice.

For each new post, do the following:

1. Build a narration script that starts with the post title as an intro line, followed by the post body (stripped of HTML).

2. If the script is longer than 5,000 characters, split it into paragraph-sized chunks so each chunk stays under the limit. Otherwise keep it as a single chunk.

3. For each chunk, call Hume's Text-to-Speech (File) operation using a fixed narrator voice ID from my Hume Voice Library. Capture the returned audio bytes.

4. Upload the audio bytes to Dropbox using the Upload File operation, saving them under /blog-audio/. Use a filename like <post-slug>-<chunk-number>.mp3 (e.g. my-post-slug-01.mp3, my-post-slug-02.mp3) so multi-part posts play in the correct order. Single-chunk posts can just use <post-slug>.mp3.

5. After all chunks for the post have finished uploading, post an announcement in my #content Slack channel using the Slack Bot Send a Message operation. Include the post title, a link to the Dropbox file (or the folder when there are multiple chunks), and the original WordPress post URL.

Trigger: cron, every hour.

The narrator voice ID from my Hume Voice Library, the target Dropbox folder path, and the Slack channel should be exposed as workflow inputs so I can change them without editing code.

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