Short answer
Use Zapier’s trigger (new file / RSS / cloud folder) → Webhooks by Zapier to call ElevenLabs’ TTS API → a hosting upload step (S3/Libsyn/Anchor) → update show notes (Google Docs/WordPress). Optionally run the script through ChatGPT for edits before TTS.
Recommendation (one-liner)
If you want reliable, automated episode voices with minimal engineering, use Zapier triggers + Webhooks to call ElevenLabs for audio, then use native Zap apps to push the returned audio file to your host and update show notes. Use ChatGPT only to clean/condense scripts if you need better pacing.
Why this pattern works
Zapier watches where you already drop episodes (Drive/Dropbox/RSS). ElevenLabs produces high-quality TTS via its API, and since Zapier doesn’t (generally) have a full native ElevenLabs action, Webhooks by Zapier gives the simplest no-server way to call the TTS endpoint and capture the audio binary to pass into downstream file-upload apps.
Decision criteria (pick what matters)
- Budget: ElevenLabs charges per character/minute; Zapier may require a premium plan for multi-step or Webhooks. If cost-sensitive, limit automation to final drafts only.
- Skill level: If you’re non-technical, expect one-off learning for Webhooks; get help if you can’t shape JSON/handle binary responses.
- Scale & latency: For many episodes/day or very long scripts, prefer batching and consider hosting/processing outside Zapier for reliability.
- Output quality: Use ElevenLabs for production-level voices; use ChatGPT for script polishing if pacing is rough.
Practical step-by-step checklist
1) Prepare resources: ElevenLabs API key (from your account), voice ID you want, and destination credentials (S3, Libsyn, WordPress, etc.).
2) Zap trigger: New File in Folder / New RSS Item / New File in Google Drive. Map the file or transcript text into the Zap.
3) (Optional) Action: Use ChatGPT/AI step to clean/condense the episode script or generate an episode intro/outro. Save output to a text field.
4) Action: Webhooks by Zapier — Custom Request
- Method: POST
- URL: ElevenLabs TTS endpoint (use the TTS endpoint documented in your ElevenLabs account)
- Headers: include xi-api-key (your ElevenLabs API key) and appropriate Content-Type/Accept for audio
- Body: JSON with the text to speak and any voice_settings (voice_id, stability, similarity, format). Send the cleaned/edited script as the text.
- Handle the response as binary audio (mp3/wav). In Zapier, capture the response body as a File output.
5) Action: Upload the returned audio file to your host (use S3/Libsyn/Anchor Zap action or another Webhook). Map the binary file from the Webhook step as the file input.
6) Action: Update show notes: Push to WordPress, Google Docs, Notion, or your CMS using the episode metadata. Include the hosted audio URL from the upload step.
7) Test end-to-end with a short episode, check timing and audio quality, then scale.
Best-for / Avoid-if
- Best for: creators wanting automated, high-quality TTS for single/multiproduction episodes without maintaining servers.
- Avoid if: you need real-time streaming for thousands of episodes/day or full control over retry/queuing — then build a small serverless pipeline instead.
Tips and gotchas
- Test with short scripts first; long texts may need chunking.
- Monitor ElevenLabs credit usage and Zapier task usage.
- If the Webhook returns binary audio, be sure the next Zap step accepts Zapier file objects; sometimes you need to write the binary to a public URL first.
If you want, I can draft the exact Webhooks JSON payload and a Zap map (trigger fields → request body → upload mapping) for your exact hosting provider and voice choice.
Compare options for ElevenLabs