In today’s content-driven world, providing audio versions of your articles, blog posts, or other written content can greatly enhance accessibility and user engagement. Imagine automatically generating a professional-sounding narration for every new post you create in Airtable—ready to be embedded on your website or shared as a podcast. This tutorial will guide you through creating a simple yet powerful workflow where updating a single field in Airtable instantly triggers a Make.com scenario to generate a voiceover using ElevenLabs, store the resulting audio on Google Drive, and update your Airtable with a shareable link.
Read on to discover how you can set this up to streamline your content creation process and offer your audience an alternative way to consume your content.
When you combine the power of Airtable, Make.com (formerly Integromat), and ElevenLabs, you get a seamless pipeline that automates voiceover creation. Below is the high-level process:
In the following sections, we’ll walk you through each step in detail so you can quickly build and deploy this workflow.
Airtable will serve as your central content repository for all the text you want to convert to audio.
Create or Open a Base
Start by creating a new base or opening an existing one where you store your written content. This is where you’ll be triggering the voiceover generation from.
Add Relevant Fields
Your table might resemble the following:
| Title | Content (Markdown) | Action | Voiceover URL | |--------------|----------------------------------------------|---------------------|---------------| | Sample Title | # Heading 1 \n This is some markdown content | (empty or Generate Voiceover) | (empty) |
Airtable Automations can be used to trigger a script or call a webhook whenever a field is updated.
Create a New Automation
In the Automations tab, click Create new automation.
Choose a Trigger
Select “When a record is updated.” Configure it so that it only fires when the Action field is changed to “Generate Voiceover.” This ensures you don’t accidentally trigger the automation otherwise.
Run a Script or Call a Webhook
After selecting the trigger, you can Run a script or send a webhook. Both methods will send the record details to Make.com. If you’re using a script, it might look like this:
// replace URL below with the Webhook from your service
const webhook = "https://yourWbehook.com/webhookid"
// if you want to add more variables you can add them inside the brackets
// e.g. for "newInputVariable1" change to {recordId, newInputVariable1}
const {recordId} = input.config()
// we are using "new URL" object to easier better handling of parameters
const url = new URL(webhook)
// using function below we can pass multiple parameters as values
// to our webhook. In the case above the "recordId value is dynamic"
// and "type" will always say campaign - to help me distinguish source
url.searchParams.set("recordId",recordId)
url.searchParams.set("type","campaign")
// eg. url.searchParams.set("newInputVariable1", newInputVariable1)
//we are logging the complete url for debugging purposes
console.log(url.href)
// we are making a standard GET request with added parameters
// passed as query parameters
const response = await fetch(url.href)
//We are logging response code from our Webhook "OK 200" will mean success.
console.log("Status:"+ response.statusText + " "+ response.status)
// Optional
// we are logging response from Webhook
// Note - if the response is not formated as JSON, below code will not work
//const responseData = await response.json()
//console.log(responseData)
Make sure to pass any additional fields you want to use (like the content or the record’s title).
Make.com is a flexible automation platform that allows you to connect various apps and services through modules. Thanks to the official ElevenLabs integration in Make.com, the voice generation step is quite straightforward.
Every scenario in Make.com begins with a trigger that receives data:
Create a New Scenario
On your Make.com dashboard, create a new scenario.
Add the Webhook Module
Select “Custom Webhook.” Make.com will generate a unique webhook URL. Copy this URL and paste it into your Airtable script.
When Airtable sends data to this webhook, your scenario will know to start.
Add the Next Module
Search for Airtable in Make.com’s module list and select “Get a Record.”
Configure the Module
Your content might be stored in Markdown, so you’ll want to convert it to raw text for cleaner TTS input:
Markdown to HTML
Add a module (built-in parser ) that converts Markdown to HTML. This converts all markdown elements into HTML that we will remove in the next step.
HTML to Text
Follow it up with an HTML to Text module to remove all remaining tags, leaving you with plain text for ElevenLabs to process.
ElevenLabs offers some of the best quality AI voices, and Make.com now has an official ElevenLabs integration which simplifies the process greatly:
Add the ElevenLabs Module
Search for ElevenLabs in the Make.com module list.
Connect Your ElevenLabs Account
Enter your API key, which you can retrieve from your ElevenLabs account settings.
Configure the Text-to-Speech Parameters
Receive Binary Audio
The module will generate an audio file in binary format or provide a link, depending on the configuration you choose.
Next, store the resulting audio file somewhere accessible:
Lastly, you’ll want to update the record in Airtable with the link to the newly created audio file:
Once done, save and activate your scenario. Each time a record is set to “Generate Voiceover,” this entire process will run automatically.
Having generated audio links in Airtable means you can distribute or embed your voiceovers in various ways:
<audio> tag in HTML to embed your narrations:
<audio controls src="YOUR_GOOGLE_DRIVE_LINK"></audio>
By combining Airtable, Make.com, and ElevenLabs, you can effortlessly transform your text-based content into high-quality audio files. This workflow is:
Start creating narrations for your content today and provide a richer, more inclusive experience for your audience—whether they prefer listening on the go, or rely on audio for accessibility.