Watch our latest video available on Youtube.
Tutorials/Tutorial

Using Frame.io v4 API with Make and Airtable for Faster Content Production

Content teams waste hours manually organizing video files, tracking review status, and moving assets between platforms. This tutorial shows you how to connect Frame.io's v4 API with Make and Airtable to automate your entire content production pipeline — from automatic folder creation to approval-triggered transcription workflows — saving 10+ hours per week on video coordination.

Advanced18 min readApr 5, 2026
Frame.ioMakeAirtableAdobe Developer Console

Every content production team hits the same bottleneck: coordinating video files between editors, reviewers, and stakeholders. You're manually creating folders in Frame.io, updating status in spreadsheets, downloading approved files, uploading to storage, and triggering transcription — all tasks that take 10–15 hours per week and introduce human error at every step.

This tutorial shows you how to build an automated content production system that connects Frame.io's v4 API with Make and Airtable. You'll learn how to:

  • Authenticate Frame.io v4 API through Adobe Developer Console
  • Auto-create Frame.io folders when video projects enter production
  • Trigger workflows when videos are approved for publishing
  • Handle version stacks and folder hierarchies
  • Download files and trigger transcription automatically

This is the exact system we use at Business Automated to manage our YouTube content pipeline, saving hours every week on coordination and file management.

Video Tutorial

The Content Production Workflow

At Business Automated, we manage our video content pipeline in Airtable with two key automation workflows:

WorkflowTriggerActions
Folder CreationVideo status changes to "Shooting"Create Frame.io folder, create Google Drive folder, save URLs to Airtable
Approval ProcessingVideo approved in Frame.ioDownload file to Google Drive, trigger transcription, update Airtable status to "Scheduling"

This architecture keeps Airtable as the source of truth for project status while Frame.io handles the review and collaboration process.

The Airtable Base Structure

Our Videos table includes these key fields:

  • Video Name (Single line text)
  • Status (Single select: Copywriting → Shooting → Editing → Review → Scheduling → Published)
  • Frame.io Folder Link (URL field)
  • Google Drive Folder Link (URL field)
  • Transcript (Long text)
  • Summary (Long text)

The Status field acts as the state machine — each transition triggers specific automations in Make.

Authenticating Frame.io v4 API in Make

Frame.io's v4 API requires authentication through Adobe Developer Console. This is the most complex part of the setup, so follow these steps carefully.

Step 1: Create Adobe Developer Console Account

Critical requirement: Your Adobe Developer Console account MUST use the exact same email address as your Frame.io account. If these don't match, the integration will fail.

  1. Go to developer.adobe.com
  2. Create an account or sign in
  3. Verify you're using the same email as your Frame.io login

Step 2: Handle Google Authentication Migration

If you previously logged into Frame.io using Google authentication, you'll need to migrate:

  1. Contact Frame.io customer support
  2. Request them to reset your password credentials
  3. Ask them to enable Adobe authentication for your account
  4. Once completed, your Frame.io account will be linked to your Adobe Developer Console

This step is required — you cannot skip it if you used Google login previously.

Step 3: Create a Frame.io API Project

  1. In Adobe Developer Console, click Create New Project
  2. Select Add API
  3. From the list of available APIs, select Frame.io API
  4. Choose OAuth Server-to-Server authentication
  5. Complete the project setup

You can create multiple applications within a single project if you need separate credentials for different environments (production, testing, etc.).

Step 4: Get Your API Credentials

  1. Open your Frame.io API project
  2. Navigate to CredentialsOAuth Server-to-Server
  3. Copy the Client ID and Client Secret
  4. Keep these secure — you'll use them in Make

Step 5: Connect Frame.io in Make

  1. In Make, add a Frame.io module to your scenario
  2. Click Add next to the connection field
  3. Select Frame.io (Adobe)
  4. Enter your Client ID and Client Secret from Adobe Developer Console
  5. Authorize the connection

Once connected, Make will use OAuth to authenticate all Frame.io API requests on your behalf.

Workflow 1: Auto-Create Frame.io Folders

When a video project moves from copywriting to production, we automatically create a Frame.io folder to organize all raw footage and editing drafts.

The Make Scenario

Trigger: Airtable → Watch Records

  • Table: Videos
  • Filter: Status = "Shooting"

Action 1: Frame.io → Create Folder

  • Parent Folder ID: YOUR_PROJECT_ROOT_FOLDER_ID
  • Folder Name: {{Airtable.Video Name}}

Action 2: Airtable → Update Record

  • Record ID: {{Airtable.Record ID}}
  • Frame.io Folder Link: {{Frame.io.View URL}}

Migrating from Frame.io v3 to v4

If you have existing scenarios using the old Frame.io modules:

  1. Replace the module — Delete the old "Create Folder" module and add the new Frame.io v4 version
  2. Update the connection — Use the Adobe Developer Console credentials
  3. Map the folder name — The field structure is the same (just map your video name from Airtable)
  4. Change the URL field — Instead of saving the asset ID, save the complete View URL field from Frame.io's response

The v4 API returns a view_url field that provides a direct link to the folder in Frame.io's web interface — this is more useful for your team than the raw folder ID.

Testing the Workflow

To test:

  1. In Airtable, change a video's status to "Shooting"
  2. Watch the Make scenario execute
  3. Verify a new folder appears in Frame.io
  4. Check that the folder URL is saved back to Airtable

The folder is now ready for your team to upload raw footage and editing drafts.

Workflow 2: Approval-Triggered Processing

When a video is approved in Frame.io, we want to automatically download it, trigger transcription, and move it to the next stage in our content pipeline.

This workflow is more complex because it needs to:

  • Listen for approval events via webhook
  • Handle both single files and version stacks
  • Retrieve the correct Airtable record based on folder association
  • Download files with quality options

The Make Scenario

Trigger: Frame.io → Watch Events (Webhook)

  • Event Type: Metadata Value Updated
  • Connection: Frame.io v4 (Adobe)

Filter 1: Check Approval Status

  • Condition: Field Name = "status"
  • Condition: Value = "approved"

Only approved assets pass this filter — all other metadata changes are ignored.

Action 1: Frame.io → Make an API Call

  • URL: https://api.frame.io/v4/assets/{{Event.Asset ID}}
  • Method: GET
  • Query String: include=media_links

Why use "Make an API call" instead of "Get File"? The built-in "Get File" module doesn't support the include=media_links parameter, which is required to retrieve download URLs for the asset.

Action 2: Frame.io → Get Version Stack (with Error Handler)

  • Asset ID: {{Event.Parent ID}}
  • Error Handler: Resume (ignore errors)

This step checks if the parent is a version stack. If it is, we get the version stack details. If it's not (the request fails), the error handler makes the module return empty values, and we continue.

Action 3: Frame.io → Get Folder

  • Folder ID: {{Version Stack.Parent ID}} OR {{File.Parent ID}}

Use Make's ifempty() function to handle both cases:

{{ifempty(2.parent_id; 1.parent_id)}}

This means: "Use the version stack's parent ID if available (module 2), otherwise use the file's parent ID (module 1)."

Why this complexity? Frame.io has two possible structures:

  • Single file: File → Folder
  • Versioned file: File → Version Stack → Folder

Your automation needs to handle both cases to work reliably.

Action 4: Airtable → Search Records

  • Table: Videos
  • Filter: Frame.io Folder Link contains {{Folder.View URL}}

This finds the Airtable record associated with this Frame.io folder.

Action 5: Airtable → Update Record

  • Record ID: {{Search Results.Record ID}}
  • Status: "Scheduling"

Action 6: HTTP → Download File (optional)

  • URL: {{File.media_links.original}}
  • Destination: Google Drive, Dropbox, or custom storage

Action 7: Trigger Transcription (optional)

  • Send the file URL to Deepgram, AssemblyAI, or another transcription service
  • Save the transcript back to Airtable

Understanding Version Stacks

Frame.io's version stacks group multiple versions of the same asset. When you upload a new version on top of an existing file, Frame.io creates:

Folder
└── Version Stack
    ├── Version 1 (original)
    └── Version 2 (new upload)

When an approval event fires for Version 2, the event's parent is the version stack, not the folder. That's why we need the two-step check:

  1. Try to get the version stack (succeeds if parent is a version stack)
  2. Get the folder using either the version stack's parent OR the file's parent

The error handler with Resume directive ensures the scenario continues even when the "Get Version Stack" step fails (which happens when there's no version stack).

Testing the Approval Workflow

To test:

  1. Upload a video to a Frame.io folder linked to an Airtable record
  2. In Frame.io, click ReviewApprove on the video
  3. Watch the Make scenario execute
  4. Verify the Airtable record status changed to "Scheduling"
  5. Check that the file downloaded to your storage (if configured)

If you have transcription configured, you should also see the transcript populate in Airtable within a few minutes.

Handling Media Links and File Downloads

Frame.io provides multiple quality versions of each asset. When you include media_links in your API request, you get:

{
  "media_links": {
    "original": "https://...",
    "high": "https://...",
    "medium": "https://...",
    "low": "https://..."
  }
}

Choose the appropriate quality for your use case:

QualityUse Case
originalArchival storage, final publishing, editing
highPreview downloads, client sharing
mediumTranscription services, AI processing
lowThumbnails, quick previews

For transcription workflows, medium quality is usually sufficient — it reduces download time and transcription costs while maintaining audio clarity.

Advanced: Transcription Integration

After downloading an approved video, trigger automatic transcription:

Option 1: Deepgram

  1. Add Deepgram → Transcribe Audio module
  2. Input: {{File.media_links.medium}}
  3. Save transcript to Airtable

Option 2: AssemblyAI

  1. Upload file to AssemblyAI
  2. Wait for transcription completion
  3. Retrieve transcript and summary
  4. Save to Airtable

Option 3: OpenAI Whisper via Make

  1. Download file from Frame.io
  2. Send to OpenAI Whisper API
  3. Save transcript to Airtable

We use Deepgram because it's fast, accurate, and provides both transcript and AI-generated summaries — perfect for creating social media posts and blog content from video.

Error Handling Best Practices

Frame.io webhook automations can fail for several reasons:

ErrorSolution
Asset not foundAdd a 5-second delay before retrieving the asset — Frame.io's webhook sometimes fires before the asset is fully processed
Version stack errorsUse the Resume error handler pattern shown above
Missing Airtable recordAdd a filter that checks if the Airtable search returned results before proceeding
Download failuresAdd retry logic with 3 attempts and exponential backoff

Always create an Errors table in Airtable that logs:

  • Timestamp
  • Error message
  • Asset ID
  • Scenario name

Send Slack notifications when errors occur so your team can investigate failures quickly.

Architecture Patterns

Pattern 1: Airtable as Single Source of Truth

Keep all project metadata in Airtable:

  • Video title, description, status
  • Frame.io folder links
  • Google Drive folder links
  • Transcripts and summaries
  • Publishing schedule

Frame.io is only used for review and collaboration — not for storing project state.

Pattern 2: Webhook Bridge

Use Frame.io webhooks to trigger Make scenarios, but don't perform heavy processing directly in the webhook handler. Instead:

  1. Webhook receives approval event
  2. Immediately update Airtable status
  3. Separate scenario (triggered by Airtable status change) handles file download and processing

This prevents webhook timeouts and makes debugging easier.

Pattern 3: Bidirectional Linking

Create links in both directions:

  • Airtable → Frame.io (folder URL saved in Airtable)
  • Frame.io → Airtable (search by folder URL when webhook fires)

This allows you to navigate from project management to review platform and back without manual lookups.

Common Use Cases

YouTube Content Pipeline

  1. Script writing in Airtable (Status: Copywriting)
  2. Status → Shooting: Create Frame.io + Google Drive folders
  3. Upload raw footage to Frame.io
  4. Editor uploads draft to Frame.io
  5. Reviewer approves in Frame.io
  6. Webhook triggers: download to Drive, transcribe, update status
  7. Airtable triggers: generate thumbnail, create social posts, schedule publishing

Client Review Workflows

  1. Project created in Airtable (Status: In Progress)
  2. Create Frame.io folder, invite client as reviewer
  3. Upload deliverables to Frame.io
  4. Client leaves feedback or approves
  5. Approval triggers: download final files, update Airtable, send invoice, archive project

Multi-Format Content Production

  1. Record video interview
  2. Upload to Frame.io for editing
  3. After approval: download video, extract audio, transcribe
  4. Use transcript to generate blog post, podcast description, social snippets
  5. All assets linked in single Airtable record

Migrating Existing Frame.io Workflows

If you have existing Make scenarios using Frame.io v3:

  1. Audit your scenarios — List all scenarios that use Frame.io modules
  2. Set up Adobe authentication — Complete the Adobe Developer Console setup
  3. Test in a duplicate scenario — Clone your production scenario and update one module at a time
  4. Replace triggers first — Update webhook triggers to use v4 authentication
  5. Replace actions — Update create folder, get file, and other action modules
  6. Update field mappings — v4 uses slightly different field names (e.g., view_url instead of asset_id)
  7. Test end-to-end — Run the full workflow with test data
  8. Deploy and monitor — Replace the old scenario and monitor for errors

Do not delete old scenarios immediately — keep them paused for 2 weeks in case you need to reference the logic or rollback.

Getting Started Checklist

Follow these steps to implement Frame.io automation for your content pipeline:

  1. Create Adobe Developer Console account — Use the same email as your Frame.io account
  2. Migrate from Google auth if needed — Contact Frame.io support to enable Adobe authentication
  3. Create Frame.io API project — In Adobe Developer Console, add the Frame.io API
  4. Get Client ID and Client Secret — Copy credentials from your API project
  5. Test authentication in Make — Add a simple "Get Folder" action to verify the connection works
  6. Set up Airtable base — Create Videos table with Status field and folder link fields
  7. Build folder creation workflow — Airtable status change → Frame.io folder creation
  8. Build approval workflow — Frame.io webhook → file download → Airtable update
  9. Test with a real video file — Upload, approve, and verify the full automation runs
  10. Add transcription integration — Optional: connect Deepgram, AssemblyAI, or Whisper
  11. Set up error logging and notifications — Create Errors table and Slack alerts

When to Hire Help

Consider hiring a Make automation consultant when:

  • You need to migrate multiple existing Frame.io scenarios to v4
  • Your workflow requires custom error handling and retry logic
  • You want to integrate transcription, AI summarization, or multi-platform publishing
  • You need advanced version control and approval routing
  • Your team needs training on maintaining the automation

We design and implement complete content production systems that connect Frame.io, Airtable, Make, and your entire tool stack — with the architecture, error handling, and documentation that keeps them running reliably. See how we work.

Next Steps

Once you have Frame.io connected to Airtable and Make:

Frame.io automation is just one piece of a complete content production system. The same patterns — webhooks, state machines, bidirectional linking — apply to every tool in your stack.

Frequently Asked Questions

Common questions about this tutorial.

Ready to Transform Your Business Operations?

Join 100+ companies that have automated their way to success. Get started today and see the difference.