Add multilingual audio to every new Webflow blog post

By General Input

Every 30 minutes, freshly published Webflow posts get translated audio in Spanish, French, and German, uploaded to Drive, and linked back on the post.

Integrations

  • Cartesia
  • Webflow
  • Google Drive

Type

Agentic Task

Categories

  • Marketing

Publish a multilingual audio version alongside every new Webflow blog post so international readers can listen in their own language. The three target languages are Spanish, French, and German, and each one gets its own script, its own voice, and its own audio file on the post.

Every 30 minutes, use Webflow's List Collection Items to find blog posts in the blog collection where audio_status is empty and the body is populated. Skip any post that already has audio_status set (including drafts marked done, in_progress, or anything non-empty) so we never redo finished work.

For each qualifying post, produce audio in Spanish, French, and German. For each target language, first rewrite the body for the ear in that language: translate the meaning (not the words), swap idioms for locale-natural equivalents, break long sentences, and sprinkle Cartesia SSML pacing marks like <break time="400ms"/> at natural pauses so it does not sound like a webpage being read aloud.

Pick the voice per language by calling Cartesia's List Voices and choosing one whose language matches the target (es for Spanish, fr for French, de for German). Then call Cartesia's Text to Speech (Bytes) with that voice, output_format set to mp3, and the rewritten SSML script. This returns the full audio file as bytes.

Upload each language's mp3 to Google Drive with Upload File (Multipart), naming it something like {post-slug}-{lang}.mp3. Then call Create Permission on the uploaded file with type=anyone, role=reader so anyone with the link can stream it. Grab the resulting shareable URL for that file.

Once all three languages are done (or as many as succeeded), use Webflow's Update Collection Item Live on the original post to fill audio_url_es, audio_url_fr, and audio_url_de with the corresponding Google Drive links, and set audio_status to "done". Because it is the live update, the site templates immediately have what they need to render the play buttons.

Error handling: if any single language's Cartesia call fails, leave that language's URL field blank and do NOT set audio_status to "done" for the post. Instead leave audio_status empty (or the partial state) so the next 30-minute run picks it up again and retries only the missing language, without regenerating the ones that already worked. Never overwrite an already-populated audio_url_* field.

Cron was chosen over a Webflow webhook so no site-level webhook configuration is needed; the audio_status field is the idempotency guard. Cartesia is the anchor here because expressive, native-quality multilingual voice is the whole value of the workflow (Cartesia advertises 40+ languages).

Related prompts

Explore more prompts
Ad creative studio with a pre-approved variant libraryFilter every signed Ironclad contract and brief it on demandArtwork desk for the Notion posts still missing an imageRun your Webflow site translations from one review deskWebinar promo desk: find Zoom sessions missing artworkTurn Google Drive scripts into narrated audio, line by lineWork your Shopify catalog until every product has a clipTurn a campaign brief into a storyboard your team can animateKeep your brand's AI characters consistent across campaignsPitch deck studio: reps pick the slides before every meeting