Script - Use form to intake csv file that adds to existing table

I’d like to create a customer facing form that allows them to attach a csv file (based on a template). Once the form is submitted, Airtable would add the csv records to an existing table within the base.

open to other options if there are easier ways to do this. the key is to automate it as we are looking to ingest hundreds of csv files this way

any help would be greatly appreciated

Makes sense.

If it needs to be automated, a script block is not going to get you there. Something external must exist and likely requires using the API. And by “external” I’m referring to either a process in Zapier or a custom integration process in code.

But before you can really know how best to implement this, tell us more about the form submission.

In the submission form, must users add meta-data to identify who submitted the CSV file? Or, is everything you need to know about the CSV data integral to the CSV itself?

Hey bill,

Here is an example that will hopefully clarify the ask

Ex:
Say I sell blinds to home builders and want them to be able to upload a list of their current projects (Street Address, City, State, Zip -that’s pretty much it).
I would create an email to all current/former clients. This email would may be sent from inside/outside of Airtable -still deep diving what that would look like. not necessarily crucial from my POV
Embedded in the email would be a link to the form.
Once a customer has navigated to the form, it would capture:
- Company
- Primary Contact Name
- Primary Phone
- Primary Email
- Picklist for ‘draw-string blinds’ or ‘electric’
I realize that these are existing current/former customers, however customers have a lot of staff turnover, so this is a way to update all contacts as well.

If there is a better way to do this not using a form, such as a link to a simple ‘csv import’ portal, I’m open to it.

…I don’t sell blinds btw. It was the first thing that came to mind.

Matt

Matt,

Okay - these are good items to drill a little deeper.

The irony does not escape me - sending an email to ask customers to enter their email address. :wink: This is what doctors do all the time - fill out this form Mr French, and don’t forget to fill in your name, Mr. French.

In any case, you can keep egg off your face by creating embedded form URLs that include pre-fill field values that will populate the existing data on a customer and make it easy for them to confirm or change.

Totally makes sense. Rototilling the garden promotes growth.

I think it’s the right approach to gathering and updating records. Asking customers to lend a hand while deepening the CRM process is a good way to delegate and spread the effort across all the people who actually know the answers you seek.

There are ways to use Script Blocks to perform mail merge processes like this, so that’s a good route for the outbound processing. This example block comes to mind and it would allow you to craft the pre-fill URL links to embed into the message.

As to the inbound data process - the form will update the data and upload the CSV document just fine (I think), but then you need a process to utilize the attached CSV files. Once again, this could be done with a Script Block but it would require manual operation which when run would simply look for any CSV attachments that have not been processed. The definition of “processed” is yet another deeper requirements discussion.

Thoughts?

Bill,

Thanks for the info -i didn’t mean to sit on it this long!

Appreciate the link to the mail merge example -that helps!

And yea, i think we are on the same page, that some (running the script block) manual process will need to exist within this.

i’ll send you an update once i get it built out and would appreciate any insight at that point. Thanks for your help/comments thus far!

Best regards,
Matt

1 Like