HomeBack to recipes
RecipesProductivityText-to-Speech Content Generation

TL;DR

Text-to-Speech Content Generation is a productivity workflow that chains ElevenLabs + Notion to automate a common task. Notion pages tagged as 'podcast' are automatically converted to audio files via ElevenLabs and saved back as attachments. Once configured, it saves ~5 hours/week per content creator, plus eliminating $500-1500/episode voiceover costs and runs through Claude Code, Cursor, Windsurf or any MCP-compatible AI agent.

🎙️📝
ProductivityIntermediate

Text-to-Speech Content Generation

Notion pages tagged as 'podcast' are automatically converted to audio files via ElevenLabs and saved back as attachments.

10 min setup, audio in minutes per page2 MCPs requiredSaves ~5 hours/week per content creator, plus eliminating $500-1500/episode voiceover costs

How it works

🎙️ElevenLabs
📝Notion
Automated
1Detect Notion pages tagged with 'podcast'2Extract plain text content from blocks3Send to ElevenLabs TTS API+2 more steps
Hostable — runs in your browser2/2 MCPs hosted

Run with MCPizy

New

Execute this recipe in your browser — no local install, no Claude Code. Streams results live.

Whitelisted MCPs: perplexity, notion, anthropic, openai, tavily, firecrawl, coingecko, stripe, slack, github, gitlab, linear, resend, sendgrid, elevenlabs, shopify, sentry, posthog, supabase-mcp, context7, deepwiki~4k tokens  ·  ~$0.012 est.

Why this combo?

Notion is where written content lives; ElevenLabs turns that content into studio-quality audio without a recording setup. Tagging a page triggers the entire pipeline automatically, making it trivial to produce podcast episodes or audio briefings from existing written work.

Without this workflow

Copy text from Notion, paste into TTS tool, download file, rename it, manually attach it back, update the page status.

With MCPizy

Tag a Notion page as 'podcast'. Audio file appears as an attachment automatically in minutes.

Business value

Concrete ROI — not marketing fluff.

Time saved

~5 hours/week per content creator, plus eliminating $500-1500/episode voiceover costs

  • Unlocks podcast as a distribution channel without hiring a voice talent or recording studio
  • Extends accessibility compliance (WCAG, ADA) to all docs — reduces legal risk + opens enterprise deals requiring it
  • 2x content output per writer — written + audio from one source, no duplicated work
  • Consistent brand voice across episodes via voice cloning, even when team scales

Workflow steps

  1. 1
    Detect Notion pages tagged with 'podcast'
  2. 2
    Extract plain text content from blocks
  3. 3
    Send to ElevenLabs TTS API
  4. 4
    Download generated MP3
  5. 5
    Attach audio file back to Notion page

Use cases

  • Convert written newsletters into podcast episodes automatically
  • Generate audio briefings from weekly team updates in Notion
  • Produce audio versions of documentation for accessibility
  • Create narrated walkthroughs of product changelogs

MCPs required

🎙️

ElevenLabs

ElevenLabs MCP Server

View
📝

Notion

Notion MCP Server

View

Agent prompt (copy into Claude Code)

This prompt is the workflow. Paste into Claude Code, Cursor, or Windsurf.

You are a text-to-speech agent. Triggered manually when a Notion page is tagged 'podcast'.

Given a Notion page ID:
1. Call notion.notion-fetch(page_id) to get the plain-text block content (skip images, embeds, toggles)
2. Strip markdown, normalize paragraphs, prepend title as intro
3. Call elevenlabs.text_to_speech(text=content, voice_id=${VOICE_ID}, model="eleven_turbo_v2", output_format="mp3_44100_128")
4. Upload the resulting mp3 to your storage (S3 or Notion attachments) — get a public URL
5. Call notion.notion-update-page(page_id, properties={"Audio URL": url, "Status": "Audio ready", "Duration": mp3_duration_seconds})

Handle pages > 5000 chars by chunking into paragraphs and concatenating mp3s via ffmpeg.

Trigger & credentials

How this workflow fires and what env vars you need.

.env.example
ManualTrigger
Run in Claude Code when a Notion page is tagged 'podcast' (or wire to Notion webhook with a Zapier proxy)
🎙️ElevenLabs· 2 vars
ELEVENLABS_API_KEYGet key

ElevenLabs API key

e.g. sk_...

ELEVENLABS_VOICE_IDGet key

Voice ID to use (clone or preset)

e.g. 21m00Tcm4TlvDq8ikWAM

📝Notion· 1 var
NOTION_API_KEYGet key

Notion integration token (share target database with the integration)

e.g. secret_...

One-command deploy

Install everything — MCPs, prompt, env template — in a single call.

$ mcpizy recipe install elevenlabs-notion-tts

✓ Installs all 2 MCP servers
✓ Writes prompt to ~/.mcpizy/prompts/elevenlabs-notion-tts.md
✓ Generates .env.example in current directory
✓ Ready to paste into Claude Code

Requires mcpizy CLI v1.1+ — install via npm i -g mcpizy.

Quick install (MCPs only)

10 min setup, audio in minutes per page
$ mcpizy install elevenlabs && mcpizy install notion

More Productivity recipes

🔮📝

Research Automation

Paste a research topic in Notion and an agent uses Perplexity to gather sources, summarize findings, and structure them.

Frequently asked questions

What is this workflow?

Text-to-Speech Content Generation is a productivity automation that uses ElevenLabs + Notion together via the Model Context Protocol. Notion pages tagged as 'podcast' are automatically converted to audio files via ElevenLabs and saved back as attachments.

How long does setup take?

Setup takes around 10 min setup, audio in minutes per page. You install the required MCP servers with `mcpizy install elevenlabs && mcpizy install notion`, connect your accounts, and the workflow is ready to run.

How much time does this workflow save?

Once running, this workflow saves ~5 hours/week per content creator, plus eliminating $500-1500/episode voiceover costs. The concrete business value: Unlocks podcast as a distribution channel without hiring a voice talent or recording studio; Extends accessibility compliance (WCAG, ADA) to all docs — reduces legal risk + opens enterprise deals requiring it.

Which MCP servers do I need for this?

You need 2 MCP servers: ElevenLabs (mcpizy install elevenlabs), Notion (mcpizy install notion). All are installable in one command via the MCPizy CLI and configured in your `.claude.json` or `.cursor/mcp.json`.

Does this work with Claude Code, Cursor, and Windsurf?

Yes. The workflow runs with any MCP-compatible AI agent — Claude Code, Claude Desktop, Cursor, Windsurf, VS Code with Copilot, and custom agents built on the MCP SDK. The MCP servers are identical across clients; only the config file path (`.claude.json` vs `.cursor/mcp.json`) changes.

Start building this workflow

Install the required MCPs from the marketplace and automate this in 10 min setup.

$ mcpizy install elevenlabs && mcpizy install notion

🎙️Install ElevenLabs📝Install Notion

Free to install. Connect your accounts and this workflow runs itself.