Okay I am fed up with how difficult is to download Images (attachments) from Airtable

Yes, I know I can use Zapier or Make. That is complicated, every time I setup a new attachment field, I got to setup a new workflow ?? Madness.
It’s 2023 and Airtable didn’t manage to add a single “Download all attachments” button. I understand that is taxing their servers, so they can give me a slow download at least, that’s fine. Are they doing it on purpose, now starting thinking perhaps :unamused:

Yes, I know they are extensions for that too. And it is either free up to 10 records per day (miniextensions), or it is 4 dollar per month (another extension) or then 50 dollar per month if you have miniextensions.

That may work for some but how about try to download completely free. This shouldn’t be something I need to pay for.

This assumes you have generated expiring URLs using automation.

I came up with 2 ways. Well, it’s not completely convenient but it is pretty okay.

  1. the Easy way…

Download Chrome extension Simple Mass Downloader …

There you can setup either:

a) copy the URLs from the table and past into the extension (load clipboard) and download links
b) you can also open detail view of the record and download attachments you need (use filter to filter only attachments and images that have “airtableuserconcent” in the URL)

  1. The better way… (here is soltuion if you are on Mac, but Windows has scripts too):

Here is a small script in Automator on MacOS. When executed, it will read the clipboard and save links.

These 2 methods can download any number of records. The only issue all downloads will be in one folder without knowing which attachment is for what record.

Anybody has other ideas how to download the attachments download in bulk?

There are other Chrome extensions allowing you also to rename attachments or adding prefix or adding a subfolder while they are downloaded but this slows down the process.

Automator should be able to prompt me for a download folder name or suffix in a dialogue popup asking for input, but I haven’t figured out how to do it and it still does slow down downloads a bit because that would be download by individual record.

Still better than downloading each image/attachment manually.

Another option is to use a download manager like Motrix if you are on MacOS and past the links. This just downloads the images without the option to decide about the file name or subdirectory.

Why are you constantly downloading attachments in bulk from your Airtable base?

This is not a common use case, and Airtable has specifically said that they are not to be used as a CDN or image hosting service.

Have you considered looking into Google Drive or Dropbox or Cloudinary or other cloud based services that can store images?

If you’re trying to backup your images from Airtable, then you can turn to On2Air Backups, or you can very easily setup an automation in Make.com to download all of your images.

I also do not subscribe to your philosophy that people should give me the software tools that I want for free.

1 Like

First of all, I am not saying it. Why do you believe I said that? I just have listed the options. If I am inclining to free solution, it doesn’t mean my philosophy is to expect others to give me free software. That is far stretched a bit. It’s my courtesy to mention them here and list them, free advertising to them and help to others who need to decide. So no need to pick it apart at this detail.

I’m already on Cloudinary but for different purpose, use it for production images while fixing the attachment before going live.

I don’t like to have to setup a workflow via Make and Zapier to add the links from Cloudinary. When I add new attachment field I have to go to fix the flow or make new one. There’s no integration vial cloudinary directly in Airtable unless there is something new.

I am deleting and adding attachments frequently in Airtable but once I am happy with the record, I only download them once or upload them to another hosting once.

Pictures are taken only via Airtable mobile app.

Cloudinary does not meet purpose as document management, their interface is okay for managing assets.

If 3rd party can download in bulk, there isn’t a problem for Airtable to install a button for each record to download all images in the field. That is what I am talking about.

I understand your frustration but I’d agree with Scott here that your use case is not a very common use case (I’ve literally built thousands of bases/apps on Airtable and never faced such a requirement) and Airtable were upfront and honest that their solution is not to be used as a CDN. So I don’t think your demands for Airtable are justified here.

1 Like

Please explain me what is CDN. Maybe I need help with that.

If the attachments in the field is not to be downloaded in bulk, then I would desire an easier handling.


For example Baserow, easy click click click, they are all within the reach.

It’s almost addictive to download images in Baserow.

Clicking and downloading images from the Airtable field takes way longer for me. Or download documents, whatever is attached.

Even downloading 3 images is frustrating experience if I do it a few times per day. Nothing bothers me as much as this in Airtable.

Okay, perhaps I am using Airtable in the wrong way, or not permitted way / not intended way.

I think we all like to save time and do things the most convenient way.

I would pick Airtable over Baserow handsdown and image and attachment handling in Airtable is perfect otherwise.

I am not complaining about anything else other than a download button.

Another example, if I may. I know I am starting to sound like an annoying pest. I am sorry. I’ll shut up now.

Here is Noco. There is even a convenient BULK download button. How intriguing, apparently they figured that out already.


Here is another example.

The much promoted SmartSuite here in the forum.

What a lovely Bulk download button there.

I am not going to continue. Hope this clarifies the point I was trying to make. But I agree … .I AM using Airtable the wrong way, possibly.

But I am not using Airtable images of files as a share hoster. I am the only person who has access to the attachments.


There are many things that third party tools do that Airtable has not decided to implement as native functionality. You are free to submit feature requests directly to Airtable and to suggest them here, but I wouldn’t count on seeing this feature any time soon.

I think you want to use Airtable in a way that is not directly supported (bulk downloading of attachments). This doesn’t meant that you you are doing is wrong. But it also means that you cannot do that natively.

In general, Airtable does not want to make it easy for people to move off-platform. Bulk downloading of attachments would make it easier to move off-platform, and it is not a common use case, so Airtable has decided to not put resources into developing that feature.

Oh, and I agree that you are not using Airtable as a CDN. That is an unrelated concept.

It sounds like you are downloading files to your local computer as an intermediary step to get your files to their final destination (Cloudinary)

Have you considered using a script to upload files directly from Airtable to Cloudinary? You could set the attachment field in the script settings, or have the script prompt you for a field.

You could also have a generic Make scenario that is triggered by a webhook and called by an Airtable script. Whenever you have a new attachment field, point the script to the new field. That way you would not have to change the Make scenario when you add/delete an attachment field.

Yes and no, I do use Make and Cloudinary to process 1 image and then goes back go Airtable.

I download images when I need to upload them to another site that doesn’t have an API, so it requires manual upload.

I agree, Airtable does not want to make easy for people to move off-platform. It may actually back-fire. IT people in particularly will ask the first question when debating a platform they have no control - can the data be easily exported?

Being able to export all images attached to one specific field manually by clicking a button is not a moving-off-platform strategy. Imagine doing it 100,000 times.

With permission I add this to the feature requests we have in this forum already, it seems that is best place where to make a note of it permanently since I don’t think there is an attended suggestions @ Airtable .com mailbox.

@ScottWorld I have a use case that needs this download all files option. I have an airtable base that is for an online reseller selling clothing on Ebay, Poshmark, Depop, and Mercari. I created an interface that uses some ai fields to create listings from the category, brand, size, and description fields. Because the listing software the reseller uses does not offer any way to bulk import listings, we created an online listing creator to generate all of the content from looking at the photos that are stored, which will be used in the listing, and the fields. User can load the crosslisting software on one half of the screen and the airtable interface on the other to copy and paste the information quickly into the crosslisting app. The one thing that is difficult though is getting the pictures from the airtable field to the crossliting app. I have to open the images field and download the images one by one, and then drag them to the crosslisting app. The user never has more than 10 pictures, but it is still time consuming to have to download and drag the images one at a time. If I could download all items to a folder on my pc at once it would shorten the process considerably.

I am happy to hear your thoughts and if there is a different way to accomplish my task in the absence of a download all option. My ask is for a download all from a single record, not an entire base.

1 Like

In situations where there is no API for the final destination, you could still use a Make scenario that moves the attachments to a Dropbox folder that syncs with the local file system. Trigger the Make scenario with an Airtable script that calls the Make webhook.

Curiously, it seems like I can no longer download all of the files in a single attachment field for a single record. I thought that was possible when I first saw this thread, but maybe I remember wrong?

1 Like

@pbmax4423 All of that can be easily automated with Airtable’s API, which is the solution that I would recommend for that sort of a scenario. I usually do this via Make.

However, be sure to submit your feature request to support@airtable.com! Maybe Airtable will make it easier in the future to bulk download attachments! :smiley:

p.s. I show how to automate working with attachments using Make in this episode of the BuiltOnAir podcast:

Oh sorry, @Kuovonne, when I was typing my responses above, I didn’t see that you had already responded above! (I was responding from my iPhone, which is probably why.)

Are you trying to download all of the files at once through Make? I think you have to iterate through the attachment array in order to do that.

And yes, totally agree with you that automating the bulk download process to a Dropbox folder would be the best for @pbmax4423’s scenario if any of her service providers don’t have an API to tap into.

@pbmax4423 I am doing a similar process without the AI. Is the AI part something something a non-programmer could build? Very very interesting… :grinning:
Is it something that is based on ChatGPT app or something?

I am listing to about 50 bigger or smaller sites including international so I do have Airtable to handle translations and currencies and calculations for the listings and then use the CSV or API for sites that support it or use Browserflow for sites that do not support that For sites that do support CSV. I can’t share to show but the process I do relies on generate temporary URL which I can use to upload if site supports CSV, I have an option to use Cloudinary if site requires my own hoster, and for sites that can be uploaded, the upload is either via Android automation or Browserflow. It’s still clicks with combination of Keyboard Maestro and hardware XKeys to avoid strain on hand but it works okay. I’m setup to outsource this once I smooth out the wrinkles on this process.

That said, if I want to download images from Airtable in bulk, rather than using the Appe Script and Keyboard Maeastro, I can setup Zapier or Make to go to Dropbox (Google drive been working on and off, mostly authorization fails or Google changes something so it breaks after while but Dropbox is stable), and it downloads and saves in folders with labels being the SKU number.

Another option is to look at some extensions. FYI Found out there is another Airtable extension to download attachments now for a reasonable monthly price. The rename attachment extension is also useful called Version V2 ;

My goodness…
This is scary and exciting.
I am a total noob when it comes to program code. I have no clue of anything. But watching a video on youtube I found a script in google sheets allows me to download images to google sheets and also to google drive.

So then I took on to GPT, not knowing what to expect, I asked it to change the script to handle multiple image URLs in the field (not just single URL) and then save the images to individual subfolders in google drive (not all in the main folder), I want them in the subfolder names matching the SKU numbers of my items. The SKU names are in the table as well. Now I download this beautifully separated into folders.

I find this is even easier to do then mess with Make workflow because there I need to understand arrays or have to have multiple flows if multiple images in a field or multiple fields with images per record. I think @ScottWorld mentioned how to handle the text containing multiple links somewhere in the presentsation. To be hones that is hard for me and too much studying this. I need something simple to keep my attention loosing. That’s my level of software code knowledge.

I know with Zapier the download worked better than Make when Airtable allowed to dothat, I don’t know it it still works today with URLs in Airtable.

I am amazed how much I can accomplish with GPT.

Anyhow so here is the script for Google Sheets:

function insertAndDownloadImages() {
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
  let lastRow = sheet.getLastRow(); 

  for (let i = 0; i < lastRow-1; i++) {
    let folderName = sheet.getRange(2+i, 1).getValue().trim();
    let urls = sheet.getRange(2+i, 102).getValue().split('\n'); // Assuming CX is column 87
    // Create a folder with the name from the first column
    let parentFolder = DriveApp.getFolderById("___your_googlefolder_ID__"); 
    let subFolder = parentFolder.createFolder(folderName);

    for (let j = 0; j < urls.length; j++) {
      let url = urls[j].trim();
      if (url !== "") {
        let image = SpreadsheetApp.newCellImage().setSourceUrl(url); 
        sheet.getRange(2+i, 103+j).setValue(image); // Assuming DL is column 110

        let blob = UrlFetchApp.fetch(url).getBlob(); 

The App script turned on to watch for changes in the Google Shets folder. Now I triger in Airtable either refresh of the temporary URL or some other trigger, it creates the googhe sheet record for browserflow and it does also download the images into the subfulder on google drive all automatic.
No need for make or zapier.

The source of the script without creating subfolders is her:

I am just using the ai fields in airtable.

Anyone who pays to enjoy the benefits of any SaaS platform that houses data of any kind should be offered reasonable and customary data egress without additional cost. Airtable has a duty to provide this capability, and it has nothing to do with its disdain for being a CDN.

So, what is “reasonable”? In a legal sense, whatever means they provide for uploading data should be possible for downloading data. If you can do a batch upload, you should be able to perform a batch export. This expectation has been tested in many court cases over the years and consumers win every time.

That said, not every SaaS player cares about egress, especially the ones who want to increase lock-in. I give Airtable a 6 (of 10) for egress. SmartSuite gets an 8, and Firebase gets a 10. Anything running on AWS gets a 2.

I see.
This is off topic, sorry, question about the AI you use.
May I ask further, do I understand correctly… so the AI function is filling some fields (e.g. product specifics for ebay) based on the text that is already entered in the other fields such as title, brand, model, size and description?

What model of GPT does Airtable use?

My experience with using ChatGPT 3.5 at least was it was grossly inaccurate many times creating more work for me to delete that nonsense. But then of course, I was doing the reverse, out of the product specifics like brand, model, department, keywords, trying to fill in the product description field.

Maybe GPT 4.0 works better now in that regard since now connects to web. But i haven’t tried.