Airtable to Video: Automate Video Creation from a Base
Turn Airtable records into finished videos automatically. Connect a base to the Renderly API, map fields to template variables, and render every row without opening an editor.

Airtable holds the data. Renderly holds the design. This guide connects the two, so every row in a base becomes a finished video without anyone opening an editor.
The setup takes about 30 minutes. After that, a new row produces a new video automatically.
What you need
- An Airtable base with one row per video you want.
- A Renderly API key. Create one in the dashboard under Settings → API keys.
- A template with dynamic overlays. Any template on the templates page works.
Step 1 - Prepare the Airtable base
Add one column per variable you want to change per video. Column names do not have to match the template exactly, but the mapping is simpler when they do.
Add one more column named Status, as a single-select with the options
Pending, Rendering and Done. The automation reads this column to decide
which rows to process, which stops the same row rendering twice.
| Property | Headline | Price | Photo | Status |
|---|---|---|---|---|
| 12 Oak Street | Just listed | $459,000 | attachment | Pending |
| 8 Vine Court | Open Sunday | $612,000 | attachment | Pending |
Step 2 - Get a Renderly API key and template ID
List the templates available to you and copy the id of the one you want:
curl https://renderly.video/api/v1/templates \
-H "Authorization: Bearer $RENDERLY_API_KEY"System template IDs are readable strings, such as real-estate-listing. You
will pass that ID with every render request.
Keep the API key on the server side. An Airtable Automation script runs on Airtable's servers, so a key stored there is not exposed to visitors.
Step 3 - Map Airtable fields to template variables
Renderly templates mark replaceable elements with isDynamic: true. The name
of each dynamic overlay is the key you send in the replacements object.
The /api/v1/templates response from Step 2 lists the dynamic variable names
for each template. Match those
names to your Airtable columns. The field that gets replaced depends on the
overlay type: text and shape overlays take content, and video, image and sound
overlays take src.
Step 4 - Send one render request per row
One row becomes one POST. This is the whole integration:
curl -X POST https://renderly.video/api/v1/renders \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "real-estate-listing",
"replacements": {
"property_name": "12 Oak Street",
"headline": "Just listed",
"price": "$459,000",
"hero_image": "https://dl.airtable.com/.../oak-street.jpg"
},
"webhookUrl": "https://your-app.com/hooks/renderly"
}'The response returns a job ID immediately. Rendering happens asynchronously, so the request does not block.
In Airtable, put this in an Automation with a "When record matches
conditions" trigger set to Status = Pending, followed by a "Run script"
action. Set Status to Rendering in the same script, so a re-run does not
duplicate the job.
If you prefer no code, the same three fields go into an HTTP request module in n8n, Make.com or Zapier.
Step 5 - Receive the finished video with a webhook
Because webhookUrl was included, Renderly posts back when the job finishes:
{
"event": "render.completed",
"data": {
"jobId": "cm9x2k4p10001qw8r7a3b2c1d",
"status": "COMPLETED",
"outputUrl": "https://cdn.renderly.video/renders/cm9x2k4p10001qw8r7a3b2c1d.mp4",
"creditsUsed": 1,
"durationInFrames": 1620,
"fps": 30
},
"timestamp": "2026-08-13T09:12:44.110Z"
}Write outputUrl back to the Airtable row and set Status to Done. The base
is now the single record of what has rendered and what has not.
Webhook payloads are signed with HMAC-SHA256. Verify the signature before you trust the body - the webhooks guide covers the check.
What this costs at scale
Renderly bills 1 credit per minute of 1080p output, rounded up to the nearest half credit. The listing tour runs 54 seconds, so each row costs 1 credit.
| Rows per month | Credits | Plan | Cost |
|---|---|---|---|
| 100 | 100 | Creator, $29/mo | included |
| 1,000 | 1,000 | Business, $99/mo | included |
| 5,000 | 5,000 | Business + 3,500 extra | $99 + $280 |
Extra credits on the Business plan are $0.08 each. A 5,000-video month therefore runs about $379, or 7.6 cents per finished video. A shorter cut is cheaper in steps, not smoothly: anything up to 30 seconds bills half a credit.
Where to go next
The same pattern works with any data source that can send an HTTP request. Only
Step 1 changes: point the trigger at the new source, keep the same
replacements object, and the render call is identical.
For a scheduled run rather than a row-by-row trigger, the webhooks guide covers how to collect results in bulk.