Re: Updating An Existing Record via Airtable Form

13035 12
Showing results for 
Search instead for 
Did you mean: 
4 - Data Explorer
4 - Data Explorer

Hi! I am brand new to Airtable (and admittedly, brand new to the tech world in general), so I wanted to share my first project and get some feedback/suggestions.

Some background on the project: My dad’s company is built almost entirely out of google drive and he is wanting to start transitioning over to Airtable to automate some processes that are currently being done tediously by his HR team. One of these tasks is keeping employees’ contact info updated regularly. Right now, this is being done by HR reaching out to employees individually to see if their info has changed and then manually updating in google sheets.

Current Project: Import current employee info into new Airtable base and set up a form to be emailed quarterly to all employees which will allow them to change any information and update their record automatically once this form has been submitted.

Step 1: I imported data straight from google sheets into Airtable to create my Employee Info base. This google sheet had a lot of information (about 50 different columns) so I created a view that would hide everything aside from the contact information that I am wanting to keep updated (name, personal email, company email, address, phone number)

Step 2: I created a form for the contact info in a separate table (I used the exact same column headings and titled this table “Form Submissions”) and used the app SendGrid to create an email template that would pull data from the base and send a unique email to all employees with a pre-filled form. I chose to have the form pre-filled for two reasons: 1) if an employee’s information has not changed, it will be easier to review their current information and submit vs having to re-type all of the same information and 2) I’ll be using their company email (the one data point that will not change and is unique to each employee) to link the new record to their existing record and I want to eliminate the possibility of typos interfering with this automation. Here’s the email I’ll be sending:

Screen Shot 2021-05-02 at 9.00.10 AM

Step 3: To have the form submission update the existing record, I set up the following automation:

  1. When a new record is created in the table “Form Submissions”

Screen Shot 2021-05-02 at 9.18.36 AM

  1. Find a record in table “Contact Info” where “Company Email” contains “Company Email” from Form Submissions

Screen Shot 2021-05-02 at 9.19.36 AM

  1. Update the matching record in “Contact Info” on all of the fields within the Contact info form

Screen Shot 2021-05-02 at 9.20.19 AM

Step 4: After excitedly demonstrating my project to my dad, he pointed out that we need an easy way to tell who submitted the form and who ignored the email. I decided to add a time stamp to the form so we could see when it was submitted, thinking I could add this as another field to update automatically in my Contact Info table and replace the timestamp from the last time they submitted. However, because this is a computed value, I wasn’t able to add it to the automation to update in the record. Instead I ended up using the “link to another record” option to link my Contact Info table to my Submissions table and added a look-up column for the time stamp (which I renamed “last updated”). From there I was able to create a view to filter the records that had not been updated within the last week so it would be easy to send a follow-up email to those employees in a few days.

Screen Shot 2021-05-02 at 9.35.49 AM

And that’s it! I thought this was a fun and tricky first project to help me learn my way around apps and automations within Airtable. I got to experience the high associated with seeing the green checkmark informing me that my test ran successfully (after many, many failed tests beforehand) and let me just say: I get it.

I’m open to any feedback/suggestions for anything that could be done differently to make this project simpler or more efficient. And additionally, any suggestions for fun projects I can do to help me build more skills within Airtable!

Thanks for taking the time to read :slightly_smiling_face:


27 Replies 27

Welcome to the community, @Kayla_Higginbotham!!

Congratulations on your big success with Airtable, and thanks so much for sharing your success story in complete step-by-step detail!! :grinning_face_with_big_eyes: :raised_hands:

It looks like you made all the right & smart decisions along the way, every step of the way! :bulb:

You are quickly becoming an actual Airtable guru!! :cowboy_hat_face: :horse_racing:

Your post can serve as a great tutorial for other people who are looking to build a similar solution for their businesses!

The only issue for other people to be aware of with Airtable’s Automations — although it sounds like it won’t affect you at all — is that the “Update Record” automation will fail if the “Find Records” step finds more than one record. But as long as you never have any duplicate email addresses in your system (and it sounds like you will never have duplicate email addresses), then you will never run into that problem.

Super excited for you! Great job! :star2:


Thanks for the positive feedback and warm welcome to the community, @ScottWorld :slightly_smiling_face:

Hey Kayla,

Thanks for posting this. I agree with Scott, this is the best tutorial I have read thanks for shedding light on this topic. You’ve made it seem totally achievable.


I’d love to get your feedback on how to go about my project which is pretty ambitious I realise now.

I’m building a workflow from a deals table with 6 prefilled internal forms that update records in the deals table.


I’ve got some things right and others wrong. I can’t use emails since some customers submit multiple quote requests. I have used an autonumber and formula to create unique quote numbers. So that whether they are derived by google sheets or airtable forms they will follow the same format. Do you think this will suffice Scott?

I used a single select field in kanban view to track stages these trigger automation in zapier like creating draft quotes. I used airtable automations to sent instructions for new tasks and a link to the prefilled forms for example in the qualification call stage a message is sent to “sales channel” in slack. The message provides the first name, phone number and a link to the prefilled form. So that sales people can call the customer to confirm the details of the request. Once the qualified checkbox is ticked in this form. It will move to the design stage and “design channel” in slack will get a message with a prefilled form and so on through all the steps in our workflow.

The next step is following your tut to create those find and update record automation.

What’s your next project Kayla, looking forward to the next tutorial… If you’d like to collaborate on something I’d really love to build a content creation base.

Hi Guys, I wanted to give you an update on this because I reorganised my linked relationships today. Created an updates table by duplicating the existing table. There are so many records that need to be updated with the form that I hit an air tables automation limit felt like tearing my hair out at that point. I’ve come back to this thread now to get a refresher on how Kayla created a timestamp.
I’ll also share another tutorial I found today which has been a lot of help How to Update Airtable with a Form - YouTube

:exploding_head: Okay so this was 100x easier to build the automation with zapier which surprised me.
It’s pretty easy to setup but make sure to add a “last modified” timestamp field to your updates table then use zapier to build the same automation you planned to build with airtable automations. The advantage being that you can create 1 automation to do all these updates if you do it via zapier whereas in airtable you have to create many automations for the same effect.

PS really helps to have data inside your table so fill out a record will every field filled in before moving to zapier,pabbly,intergomat ect

Another pothole here and definitely needs a tip to overcome this one. I’m using a linked contacts table and I would like to update the contact details with the form how do I pull this off?

We dropped Zapier for Airtable after several years of dealing with Zapier’s slack integrations being super slow/buggy, constantly breaking, and their ongoing failure to support their product or maintain their documentation in any way.

I think they are pretty good and they are the only company that support an integration with xero so we had to go with them. There are plenty of other good options now that automation is more mainstream

Integromat has probably the deepest support for Xero, and in general, they typically have deeper support for apps than Zapier does:

4 - Data Explorer
4 - Data Explorer

To you, I say, “great job.” To Airtable. I say, what…?!?

I’m a huge Airtable fan, but I can’t believe this incredibly common use case is not supported. It’s ridiculous to require such Herculean efforts. Please address this as soon as possible.

Yes, it would be great for Airtable to offer this functionality!

In the meantime, is a paid service that offers the ability to update Airtable records via a form.

Im trying to do something similair to the original creator, except in my case there is a good chance that there will be duplicate records. This is because it is a list of members that enter their name and email into a form that puts them into the “master list” of members. It is likely someone will mistakenly fill out the form twice therefore creating a duplicate record that would cause the record updating automation to fail. Do you know of any ways to prevent duplicates from being created or another work around to this issue?

If the record has already been submitted via a form into the same table where the duplicate record already lives, and now you need to delete the new record, you would either need to write a script for this or use a low-code automation tool like

7 - App Architect
7 - App Architect

What i do is prefill the form with the record Id of the record that you want to update. You can hide the field in your form with the id in when creating the prefill form url. When you run the automation after submission, update the record that matches the id.

Do you have a workflow for this? Thanks.

Sorry, I do not have one.

5 - Automation Enthusiast
5 - Automation Enthusiast

This is an incredibly smart and well-written walkthrough, thank you for this @Kayla_Higginbotham, I’m excited to try your approach.

As is so often the case with tools like these – as helpful as they otherwise are – some of the most common sense, routine practices are unaccounted for from the word go and continue to go unaddressed for years. A data-driven platform without a native function to maintain or update data is like an airplane without landing gears.

I tried that, but I don’t see any way to hide the record ID field in the form. And if I remove the field from the form but keep the prefill, that field doesn’t update on submit.

Can you show what you’re talking about?

Here’s some xtra info:
You set the hidden field in the url string - here’s the announcement post for the feature: New Feature: Hide Form Field by URL Parameters
Plus more info in the docs New Feature: Hide Form Field by URL Parameters