Automating File Uploads with Zapier and FilePost

March 31, 2026 · 7 min read

Zapier connects thousands of apps together, but file handling has always been one of its weak spots. You can trigger a Zap when a new email arrives with an attachment, or when someone submits a form with a file upload. But what do you do with that file? Saving it to Google Drive or Dropbox gives you a file in a folder, not a public URL you can embed, share, or use in downstream actions.

This is where a file upload API fills the gap. By adding a FilePost upload step to your Zap, you can take any file from any trigger and instantly get a permanent, CDN-backed URL. That URL works in Slack messages, email templates, database records, CRM fields, or anywhere else that accepts a link.

This guide walks through setting up FilePost as a Zapier action and building two complete example Zaps from scratch.

Why Automate File Uploads in Zapier?

Manual file handling is a bottleneck in most business workflows. Think about how many times a day someone in your organization does this:

  1. Receives a file (email attachment, form submission, Slack upload)
  2. Downloads it locally
  3. Uploads it to some hosting service or shared drive
  4. Copies the link
  5. Pastes the link into another tool (CRM, project management, database)

That's five manual steps for something that should happen automatically. With Zapier and FilePost, the entire process collapses to zero manual steps: file arrives, gets uploaded, URL gets stored or sent wherever it needs to go.

Using Airtable too? Airtable attachment URLs expire every ~2 hours. FilePost fixes that. See Permanent URLs for Airtable attachments →

Common use cases include:

Setting Up FilePost as a Zapier Action

FilePost is approved as a public Zapier app, so you can connect it directly from Zapier without an invite code. The Webhooks by Zapier setup below still works if you want full control over the HTTP request, but most users should start with the native FilePost Zapier app.

Step 1: Get Your FilePost API Key

If you don't have a FilePost account, sign up:

curl -X POST https://filepost.dev/v1/signup \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'

You'll receive your API key in the response. Keep it handy for the next steps.

Step 2: Add the Webhooks by Zapier Action

In your Zap, after your trigger step, add an action and search for "Webhooks by Zapier". Select the "Custom Request" event type. This gives you full control over the HTTP request.

Step 3: Configure the Request

Set up the Webhooks action with these settings:

The specific configuration for the file data depends on your trigger. For triggers that provide a file URL (most form tools), you'll need an intermediate step to download the file first. For triggers that provide the file directly as binary data (like Gmail), you can pass it straight through.

Step 4: Use the Response

After the webhook fires, the FilePost response is available in subsequent steps. The key fields are:

{
  "url": "https://cdn.filepost.dev/file/filepost/uploads/a1/a1b2c3.png",
  "file_id": "a1b2c3d4e5f6",
  "size": 84210
}

Map url to whatever field you need in your next action, a spreadsheet column, a Slack message, a CRM record, or an email body.

Example Zap: Gmail Attachments to Public URLs

This Zap automatically takes every Gmail attachment and uploads it to FilePost, then sends the URL to a Slack channel. It's useful for teams that receive client files via email and need them accessible without digging through inboxes.

Step 1: Trigger, New Attachment in Gmail

Set up the Gmail trigger with the event "New Attachment". Configure your search criteria, you might want to limit it to a specific label or sender to avoid uploading every email attachment you receive.

Gmail's trigger provides the attachment as binary data along with metadata like the filename, content type, and the email it came from.

Step 2: Action, Upload to FilePost

Add the Webhooks by Zapier action with the Custom Request event. Configure it as follows:

Test this step to make sure the upload works. You should see a response with a url field containing the CDN link.

Step 3: Action, Send to Slack

Add a Slack action with the event "Send Channel Message". Configure the message to include the relevant details:

Now every email attachment automatically gets a permanent public URL and a Slack notification. No downloading, no uploading, no copying links.

Automate Your File Uploads

Get permanent CDN URLs for files from any Zapier trigger. Free plan includes 300 uploads/month.

Get Your API Key

Example Zap: Typeform File Uploads to CDN

This Zap handles a common scenario: you have a Typeform (or similar form tool) that accepts file uploads, and you need those files hosted with stable URLs. Typeform's own file URLs are temporary and expire, so you need to re-host them.

Step 1: Trigger, New Entry in Typeform

Set up the Typeform trigger with the event "New Entry". Connect your Typeform account and select the form that includes file upload fields. When you test the trigger, you'll see the file upload field contains a URL pointing to Typeform's temporary file storage.

Step 2: Action, Download the File

Since Typeform provides a URL rather than binary data, you need to download the file first. Add a Webhooks by Zapier action with the "GET" method and set the URL to the file URL from Step 1. This downloads the file so it can be re-uploaded.

Alternatively, you can use a URL Shortener by Zapier or Formatter by Zapier step to handle the file download, depending on the file type.

Step 3: Action, Upload to FilePost

Add another Webhooks by Zapier action to upload the downloaded file to FilePost. Use the same configuration as the Gmail example: POST to https://filepost.dev/v1/upload with the X-API-Key header and the file data from Step 2.

Step 4: Action, Append to Google Sheets

Add a Google Sheets action with the event "Create Spreadsheet Row". Map the form fields and the FilePost URL to your spreadsheet columns:

Every form submission with a file upload now gets a permanent CDN URL stored in your spreadsheet. The Typeform file URL can expire, your FilePost URL won't.

Using Webhooks for Advanced Workflows

For more complex scenarios, you can combine FilePost's API with Zapier's webhook capabilities in creative ways:

Uploading Multiple Files in a Loop

If a trigger provides multiple files (like an email with several attachments), use Zapier's Looping by Zapier action to iterate through the files. Each iteration uploads one file to FilePost, and you can collect the URLs in subsequent steps.

Conditional Uploads

Use Zapier's Filter step to only upload certain files. For example, only upload files larger than 100KB, or only upload PDFs and images. This helps you stay within your plan's upload limits and avoid hosting unnecessary files.

File Management

Beyond uploading, you can use FilePost's other endpoints in Zapier:

Tips for Production Zapier Workflows

Error Handling

Zapier's built-in error handling is limited, but you should still prepare for failures. If a FilePost upload fails (due to a network issue, rate limit, or oversized file), the Zap step will error. Configure Zapier's "Auto-Replay" feature to automatically retry failed steps. For critical workflows, add a Paths by Zapier step after the upload to check the response status and route to an error notification if the upload failed.

Rate Limits and Plan Selection

Think about your volume when choosing a FilePost plan:

Plan Price Uploads/Month Max File Size
Free $0 300 50MB
Starter $9/mo 5,000 200MB
Pro $29/mo 25,000 500MB

If your Zap processes 10 emails with attachments per day, that's roughly 300 uploads per month, the Starter plan handles that comfortably. For high-volume form submissions or batch processing, the Pro plan provides plenty of headroom. Paid plans include unlimited storage, unlimited bandwidth, and CDN delivery, so you won't get surprise bandwidth bills. The free tier includes 2GB storage.

Keep Your API Key Secure

When you enter your FilePost API key in a Webhooks by Zapier step, it's stored securely by Zapier. However, avoid sharing your Zap publicly or with untrusted collaborators, as they could see the API key in the step configuration. If you need to share a Zap template, remove the API key first and add a note to replace it.

Getting Started

Building your first file upload Zap takes about 15 minutes:

  1. Sign up for FilePost. Send a POST request to https://filepost.dev/v1/signup with your email. You'll receive an API key immediately. The free plan gives you 300 uploads per month to build and test your Zaps.
  2. Create a new Zap with whatever trigger produces files (Gmail, Typeform, JotForm, Dropbox, Slack, etc.).
  3. Add a Webhooks by Zapier action configured to POST the file to https://filepost.dev/v1/upload with your API key in the X-API-Key header.
  4. Use the returned URL in your next action, send it to Slack, append it to a spreadsheet, store it in a CRM, or include it in an email notification.
  5. Turn on the Zap and let it run. Files will be automatically uploaded and hosted as they arrive.

The beauty of this approach is that FilePost handles all the file hosting complexity, storage, CDN delivery, permanent URLs, while Zapier handles the workflow logic. You end up with a fully automated file pipeline without writing any code or managing any infrastructure.