Skip to main content

Hi everyone šŸ‘‹

I’m trying to find the best way for multiple users to import data (from XLS or CSV files) into the same base — ideally directly through an Interface rather than the Extensions panel.

We’ve tried the CSV Import Extension, but:

  • The import mapping doesn’t save across users.

  • Even for the same user, it sometimes resets or forgets the previous mapping.

  • There’s no way to create or reuse ā€œimport templatesā€ for different file types or tables.

What we’d really like is:

  • A way for different users to upload a file (XLS or CSV) through an Interface form or button,

  • Automatically import it into a target table using a consistent field mapping,

  • And ideally store those mappings permanently (so no need to re-map each time).

Is this possible to be done directly with airtbale? Has anyone found a good workaround or script/automation setup that achieves this?
Would love to hear if there’s a best-practice approach — either native or via scripting/integration tools.

Airtable offers the ability to import CSV data directly into interfaces, but it comes with someĀ major limitations:

  • It requires a Business or Enterprise Plan.
  • It only works on list-based interfaces.
  • It can’t import data into linked record fields or attachment fields.
  • I don’t know if it remembers the mapping between imports, but even if it does, each user will still need to setup their own mapping during their first import.
  • The user can accidentally change the mapping during each import.
  • You can’t setup different ā€œtemplatesā€ on the same page for different types of imports.

Your much better option for automatically importing CSV files into Airtable’s interfaces is to useĀ Make’s CSV modulesĀ along withĀ Make’s Airtable modules.

This is the only option that:

  • Works on ALL Airtable plans (not just Business and Enterprise Plans).
  • Works with ALL Airtable field types, including linked record fields and attachment fields.
  • The fieldĀ mapping is locked in and unchangeable by the user.
  • The field mapping is set in advance, so the user doesn’t need to set this during their first import.
  • Works on ALL interface pages (not just list pages), because your users will just click on a button to open a cloud drive folder to drop in their CSV files.
  • You can setup different ā€œtemplatesā€ for different types of importsĀ by giving different buttons that lead to different cloud folders, each folder triggering a different automation. (This could be done with the same folder too, but it’s way more complicated to setup.)

As mentioned above, your users would simply need to drop their CSV files into a cloud drive folder, which you can give them quick access to via a button that you add to any of your interface pages.

I demonstrate how to import CSV files into Airtable using Make onĀ this Airtable podcast episode.Ā This video willĀ give you a step-by-step walkthrough on how to set this up in Make.

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 couldĀ instantly trigger a Make automation from Airtable.Ā 

I also give live demonstrations of how to useĀ MakeĀ in many ofĀ my Airtable podcast appearances. For example, in this video, I showĀ how to work with Airtable arrays in Make.

Hope this helps!

If you’d like to hire theĀ best Airtable consultantĀ to help you with anything Airtable-related, please feel free to contact me through my website:Ā Airtable consultant — ScottWorld


Hey ​@Frederico Cary,

Make (mentioned by Scott above) is great, and it seems that they have launched really interesting features these past few days.Ā Having said that, I usually solve this issue and (and all of my integrations/automations using n8n).

You might want to take a look at a high level comparison on the 3 biggest automation players here. (Might need to update some items given Make’s latest releases).Ā 

If you need any help setting this up, feel free to schedule a brief call using this link and I’d be happy to show you around.
Ā 

Completely different matter, but would love to have you join our Airtable Hackathon!Ā Make sure to sign up!!

Mike,Ā Consultant @ Automatic NationĀ 
YouTube Channel


Hmm, how big’s your CSV file?Ā  If it’s <100k characters (the max characters in a long text field) and <8k rows (max runs of a repeating group), you could try just using an automation + script to handle it and I’ve set it up here for you to check out.Ā Ā 

The idea is to get them to paste the CSV data into a long text field and use a script to split out the CSV data with the headers so that you can use it in an automation with a repeating group and set the mapping yourself in the automation in a ā€˜Create record’ step:

This is a basic example, but you could create one automation per CSV type and have your users select which CSV type they’re importing so that the correct automation (with the correct mappings) gets triggered

let { csvData } = input.config();

// split into lines
let lines = csvData.trim().split('\n');

// extract headers
let headers = lines[0].split(',');

// map each line into an object using headers
let data = lines.slice(1).map(line => {
let values = line.split(',');
let obj = {};
headers.forEach((h, i) => obj[h.trim()] = values[i]?.trim());
return obj;
});

output.set('data', data)

Ā 

If it’s >10k chars and >8k lines, you’d need to use a workaround, and oen of the popular ones is to upload the CSV and then use a script to read the CSV then create the records for you.Ā  Here’s one where someone provided a script that worked for them:Ā 

Pretty straightforward script really, try tinkering with ChatGPT for a bit and you should be good to go