New: AI voiceover + auto-captions - script to captioned video in one API call. Read the announcement

How-to

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 to Video: Automate Video Creation from a Base

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.

PropertyHeadlinePricePhotoStatus
12 Oak StreetJust listed$459,000attachmentPending
8 Vine CourtOpen Sunday$612,000attachmentPending

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 monthCreditsPlanCost
100100Creator, $29/moincluded
1,0001,000Business, $99/moincluded
5,0005,000Business + 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.