Convert Video in Zapier Workflows

February 19, 2026 · RenderIO

Zapier doesn't convert video. This Zap does.

Someone uploads a MOV file to your shared Google Drive folder. Your team needs MP4. Your website needs WebM. Your social media scheduler needs MP4 under 100MB.

Without automation, someone downloads the file, opens a converter, waits, uploads the result. That's 10 minutes per file. Ten files per day = nearly two hours of conversion work.

With Zapier + RenderIO, the conversion happens automatically. New file appears, gets converted, and lands in the output folder. No human touch required.

The conversion Zap

Trigger: New file in Google Drive

  1. Create a new Zap

  2. Trigger App: Google Drive

  3. Trigger Event: New File in Folder

  4. Folder: Select your "Raw Videos" folder

  5. Test the trigger with a sample file

Action 1: Convert with RenderIO

  1. Action App: Webhooks by Zapier

  2. Action Event: POST

  3. URL: https://renderio.dev/api/v1/run-ffmpeg-command

  4. Payload Type: JSON

  5. Headers:

KeyValue
X-API-KEYyour_renderio_api_key
Content-Typeapplication/json
  1. Data:

For MOV to MP4:

{
  "ffmpeg_command": "-i {{in_video}} -c:v libx264 -crf 20 -c:a aac -b:a 128k -movflags +faststart {{out_video}}",
  "input_files": {
    "in_video": "{{google_drive_download_url}}"
  },
  "output_files": {
    "out_video": "converted.mp4"
  }
}

Action 2: Wait for processing

  1. Action App: Delay by Zapier

  2. Duration: 30 seconds

Action 3: Check status

  1. Action App: Webhooks by Zapier

  2. Action Event: GET

  3. URL: https://renderio.dev/api/v1/commands/{{step2_command_id}}

  4. Headers: X-API-KEY: your_renderio_api_key

Action 4: Save the result

  1. Action App: Google Drive

  2. Action Event: Upload File

  3. File URL: {{step4_output_url}}

  4. Folder: Select your "Converted Videos" folder

Format conversion examples

MOV to MP4

The most common conversion. iPhone and Mac record in MOV. Everything else needs MP4.

{
  "ffmpeg_command": "-i {{in_video}} -c:v libx264 -crf 20 -c:a aac -b:a 128k -movflags +faststart {{out_video}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_video": "output.mp4" }
}

Why -movflags +faststart: Moves the video metadata to the beginning of the file. Without this, web browsers need to download the entire file before playback can start. With it, playback begins immediately.

WebM to MP4

Screen recordings from Chrome and many web tools output WebM. Convert for broader compatibility:

{
  "ffmpeg_command": "-i {{in_video}} -c:v libx264 -crf 20 -c:a aac -b:a 128k {{out_video}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_video": "output.mp4" }
}

AVI to MP4

Legacy format from older cameras and screen recorders:

{
  "ffmpeg_command": "-i {{in_video}} -c:v libx264 -crf 20 -c:a aac -b:a 128k -movflags +faststart {{out_video}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_video": "output.mp4" }
}

MKV to MP4

Common for downloaded or ripped video content:

{
  "ffmpeg_command": "-i {{in_video}} -c:v copy -c:a aac -b:a 128k -movflags +faststart {{out_video}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_video": "output.mp4" }
}

Note: -c:v copy copies the video stream without re-encoding. This is much faster but only works if the MKV contains H.264 video (which it usually does).

MP4 to WebM (for web embedding)

{
  "ffmpeg_command": "-i {{in_video}} -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus -b:a 128k {{out_video}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_video": "output.webm" }
}

WebM with VP9 encoding provides smaller file sizes than H.264 for the same quality. Good for web embedding where bandwidth matters.

MP4 to GIF (for previews)

{
  "ffmpeg_command": "-i {{in_video}} -t 5 -vf \"fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse\" -loop 0 {{out_gif}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_gif": "preview.gif" }
}

Takes the first 5 seconds, reduces to 15fps and 480px wide. The palettegen/paletteuse filters build a custom color palette for much better quality. For the full breakdown of GIF optimization options, batch conversion, and when to use WebP instead, see how to convert MP4 to GIF with FFmpeg.

Convert + resize in one step

Combine format conversion with resizing to avoid two API calls:

{
  "ffmpeg_command": "-i {{in_video}} -vf \"scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black\" -c:v libx264 -crf 20 -c:a aac -b:a 128k -movflags +faststart {{out_video}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_video": "converted-resized.mp4" }
}

Convert + compress in one step

{
  "ffmpeg_command": "-i {{in_video}} -c:v libx264 -crf 28 -preset slow -vf \"scale=1280:-2\" -c:a aac -b:a 96k -movflags +faststart {{out_video}}",
  "input_files": { "in_video": "{{file_url}}" },
  "output_files": { "out_video": "converted-compressed.mp4" }
}

This converts to MP4, scales to 720p, and compresses. A 500MB MOV file becomes a 50-80MB MP4.

Auto-detect format with Zapier filter

Add a Zapier Filter step to route different formats:

  1. Filter: File extension contains "mov" → use MOV conversion command

  2. Filter: File extension contains "webm" → use WebM conversion command

  3. Filter: File extension contains "avi" → use AVI conversion command

Or use Zapier Paths to handle multiple formats in one Zap:

  • Path A: Extension is .mov → MOV to MP4 conversion

  • Path B: Extension is .webm → WebM to MP4 conversion

  • Path C: Extension is .avi → AVI to MP4 conversion

Error handling

Add error handling for failed conversions:

  1. After the GET status step, add a Filter:

    • Only continue if status equals "SUCCESS"

  2. Add a Path for failures:

    • If status equals "FAILED" → Send Slack notification with the error message

    • If status equals "SUCCESS" → Continue with upload

Real-world example: Client submission workflow

A video production company automates client submissions:

  1. Client uploads video (any format) to shared Dropbox folder

  2. Zapier detects new file

  3. RenderIO converts to MP4 + normalizes audio + adds timecode

  4. Converted file lands in "Review" folder

  5. Editor gets Slack notification

FFmpeg command for this workflow:

{
  "ffmpeg_command": "-i {{in_video}} -vf \"drawtext=text='%{pts\\:hms}':fontsize=24:fontcolor=white:borderw=2:bordercolor=black:x=10:y=10\" -af \"loudnorm=I=-14\" -c:v libx264 -crf 20 -c:a aac -b:a 128k -movflags +faststart {{out_video}}",
  "input_files": { "in_video": "{{dropbox_url}}" },
  "output_files": { "out_video": "review-ready.mp4" }
}

This converts any format to MP4, adds a burned-in timecode for review notes, and normalizes the audio. The editor gets a consistent format regardless of what the client uploaded.

Video conversion in Zapier. No plugins. No code. Just webhooks and FFmpeg. For the full setup walkthrough, see our Zapier FFmpeg integration guide.