Skip to main content

How to guide: Uploading email attachments to Airtable via Make.com using HTTP

  • January 24, 2026
  • 5 replies
  • 171 views

TheTimeSavingCo
Forum|alt.badge.img+31

The end result of this guide is a Make.com scenario that’ll help you upload your email attachments into Airtable!  You can duplicate this scenario into your Make account here: https://eu1.make.com/public/shared-scenario/VDkG4fHZz32/gmail-attachments-to-airtable-using-http

Couple things we’re going to need to prepare:

  1. A Personal Access Token (PAT) that has the scopes data.records:write for the base we want to upload to
    1. Create one here: https://airtable.com/create/tokens
      • After creating it, copy it and keep it somewhere as we’re going to use it later!
    2. Guide to Personal Access Tokens: https://airtable.com/developers/web/guides/personal-access-tokens
  2. The Base ID
  3. The Field ID of the attachment field

Now that we’ve prepared these things we can get started with the Make scenario!

 

1. Search Email module

We’ll first create a ‘Search Email’ module to grab the example email we want.  For testing purposes, send yourself an attachment with a PDF and we’ll use this email during setup.  (When setting this up for production, you’ll probably use the ‘Watch email’ module instead!)

 

2. Create Record module

We’ll now add a ‘Create a record’ module for this email from step 1.  In the screenshot below I’m just adding in the Message ID, but you can add in the title of the email, the body, sender, etc if you’d like


3. List Attachments module
We now add in a ‘List attachments’ module, and we give it the ‘Message ID’ of the ‘Search emails’ module’:


4. HTTP module

This is the tricky bit!

First, select the ‘Authentication type’ as ‘API key’ and then click the ‘Add’ button: 

Then set your ‘Name’ and ‘Key’ value.  The ‘Name’ value isn’t that important, just name it something you’ll remember

The ‘Key’ value will be a combination of the word ‘Bearer’ and the Personal Access Token we set up earlier, and it’d look something like this:

Bearer patj6SCNa6OSz4R2n.aecf3b11aba3171e89749a52992efd732214fb27e6854a712d73af19c43814dd

 

The Airtable API’s Upload Attachment endpoint documentation can be found here: https://airtable.com/developers/web/api/upload-attachment

It expects the URL in the following format:

https://content.airtable.com/v0/{baseId}/{recordId}/{attachmentFieldIdOrName}/uploadAttachment

And so we just need to replace the ‘baseId’ and ‘attachmentFieldIdOrName’ bits with the data we prepared previously.  We then replace the ‘recordId’ with the ID of the ‘Create a record’ step.  In the screenshot below, I placed my cursor where I wanted to insert the record ID, and then selected it from the popup:


The end result can be found below.  We then want to select the method ‘POST’


Home stretch!

Set the Body Content Type to ‘application/json’, the ‘Body Input Method’ to ‘JSON string’.

For the ‘Body Content’, we’ll use the following.  You should be able to copy the text below and paste it into your module

{
"contentType": "{{3.mimeType}}",
"filename": "{{3.filename}}",
"file": "{{base64(3.data)}}"
}

The idea is that we’re putting in the filename we got from the ‘List attachments’ module, and for the ‘file’ we’re converting the file data into base64 (which Airtable requires) using Make’s ‘base64’ function

And that’s it!  Let me know if you have any problems setting it up and I’ll see what I can do to help

---

🟢 I’m available for hire!

Reviews  |  Website  | Schedule a call

5 replies

ScottWorld
Forum|alt.badge.img+35
  • Genius
  • January 26, 2026

While this is a pretty good way of doing this, I prefer to accomplish this task in a simpler but more powerful way.

The first issue with the methodology outlined above is that the “search module” at the beginning is unnecessary for testing purposes. You can keep the “Watch Emails” module as the very first module, and simply right-click on the “Watch Emails” module and select “Choose Where To Start”.

That will let you choose which email(s) you want to use for testing the scenario. And, if you’ve already run the scenario in the past and you want to test the scenario on the same set of emails, you can just choose the “Run with Existing Data” option (by clicking on the arrow button next to the “Run Once” button.)

More importantly, there are 3 other problems with the methodology outlined above:

  • It only works for a single attachment (not multiple attachments).
  • It only works if the single attachment is a PDF file.
  • It only works if the attachment is 5 MB or less.

In order to set this up for:

  1. multiple attachments,
  2. all types of attachments, and
  3. all sizes of attachments,

the better way of doing this would be to iterate through all of the attachments, upload the attachments to a cloud drive like Google Drive, and then send an aggregated array of the attachment URLs to Airtable.

Below is a screenshot of what my methodology looks like.

Hope this helps!

If you have a budget and you’d like to hire the best Airtable consultant to help you with this or anything else that is Airtable-related, please feel free to contact me through my website: Airtable consultant — ScottWorld

And if you’ve never used Make before, I’ve assembled a bunch of Make training resources in this thread. For example, here is one of the ways that you can instantly trigger a Make automation from Airtable.

 


TheTimeSavingCo
Forum|alt.badge.img+31

Thanks for the reply

Some clarifications:

  • Multiple attachments are supported
  • Good point about the PDF, I’ve updated the guide to handle all file types!
  • The 5 MB limit is an Airtable API constraint.  IME, this covers most email attachments

I prefer “Search emails” as I find it easier to use for testing purposes, just put a label on your email and run it instead of the workflow you mentioned

The goal of the guide was to show a minimal, direct way to attach email files to Airtable without adding extra services.  Thanks for sharing an alternative!

 

ScottWorld
Forum|alt.badge.img+35
  • Genius
  • January 27, 2026

Airtable’s API supports a file size of up to 1 GB for each attachment, but you need to use the traditional REST API calls (“create record” or “update record”) to get 1 GB, instead of the dedicated “upload attachment” call, which only supports up to 5 MB.

But if you’re certain that your files will never be larger than 5 MB, then you can definitely do it that way!

- ScottWorld, Expert Airtable Consultant 


Forum|alt.badge.img+3
  • Participating Frequently
  • February 2, 2026

Wow, this is really neat, I would have never thought that this is possible.  Great instruction by the way, this gives a good step-by-step look at how this is supposed to be completed, this also seems relatively simple just with a sequence of steps and can be a good way of getting longer term storage of items from your email into a database this is a good way to move forward with that.

Also really helpful to remember what ​@ScottWorld was pointing out about the 5MB limitation and is something that is important to consider when implementing this solution.  The workflows that can be produced by this method could be quite powerful.


TheTimeSavingCo
Forum|alt.badge.img+31

Yeap, agreed.  If the file’s already uploaded online and available via a public url, the create/update record approach works

It doesn’t let you upload the file itself though, which is why the upload attachment endpoint exists despite the 5 mb limit!