Plan availability | All plan types |
Permissions | Creator/Owner |
Platform(s) | Web/Browser, Mac app, and Windows app |
Related reading |
NOTE
There are several ways to update existing records using a form in Airtable, and the best approach depends on your plan and use case. This article walks through a workaround that works on all plan types so that external stakeholders can “update” records. Paid plan customers may also want to consider:
Interface Designer's record detail layout — Available in Interfaces, this lets you share details and granular permissions with internal stakeholders so that they can update records, without a separate automation.
Portals — For sharing with external collaborators, Portals offer more flexibility and don't require the workaround described below.
Overview of updating records via Airtable forms
Airtable forms are designed to create new records. If you want someone — whether a teammate or an external collaborator — to update the fields of a record that already exists, you'll need a workaround. The approach described here uses a secondary "updates" table, linked records, pre-filled form URLs, and an automation to write the submitted values back to the original record.
At a high level, the workflow works like this:
A submitter receives a unique link to a pre-filled form for the specific record that needs updating.
They submit the form, which creates a new row in a secondary "updates" table that is linked back to the original record.
An automation fires on that new row and uses the linked record to write the submitted values back to the original record.
Setting up a base to accept record updates via an Airtable form
Add a field to track the update in the original table - In the table containing the records you want to update (your "primary" table), add the field or fields that will be updated via the form. For example, if you want someone to mark a record as approved, add a checkbox field called "Approved." If you want them to submit a text response, add a text or long text field.
Add a
RECORD_ID()formula field to the primary table.Still in your primary table, create a formula field and use the
RECORD_ID()function. This outputs the unique ID for each record, which you'll use to pre-fill the form and power the automation.Name this field something clear, like "Record ID."
Create a secondary "updates" table - In the same base, create a new table to capture form submissions. This table will act as an inbox for incoming updates.
Add a linked record field to the updates table
In your new updates table, [create a linked record field](https://support.airtable.com/docs/linked-record-field) that links to your primary table. This is the field that ties each form submission back to the specific record that needs updating.
Name this field something descriptive, like "Linked Record."
Add fields for each value you want to capture.
In the updates table, add the field or fields that will capture the submitted values. These should mirror the fields in your primary table that you want to update — for example, a checkbox field called "Approved" or a text field called "Notes."
Make a note of the field names you use here, as they'll be referenced in the automation (Step 8).
Create a form view in the updates table - Create a form view in the updates table. Include the linked record field and any value fields from Step 5. You may want to:
Turn on the Required toggle for each field so nothing is accidentally left blank.
Add helper text to the linked record field explaining what the field is for, since submitters won't see the field name in context.
Consider enabling [password protection](https://support.airtable.com/docs/sharing-a-form-view-in-airtable) on the form for an added layer of security.
Once the form is ready, copy its share URL from the Share form button.
Standalone (Interface) forms vs. form views: If you created your form inside Interface Designer rather than as a form view, the URL will follow the format
https://airtable.com/appXXX/pagXXX/form. Pre-filling works the same way for both, but the base URL will be different. See Pre-filling a form via encoded URL for details on encoding values for standalone forms.
Build a pre-filled URL formula in the primary table - Now create a formula field in your primary table that generates a unique, pre-filled form link for each record. This link automatically populates the linked record field on the form with the correct record ID, so the submitter doesn't have to do anything manually. The formula follows this pattern:
CONCATENATE("https://airtable.com/shrXXXXXXXXXX?", "prefill_Linked+Record=", {Record ID})Replace
shrXXXXXXXXXXwith your form's actual share URL, and replaceLinked+Recordwith your linked record field name (using+in place of spaces, or URL-encoding any special characters..png)
The result is a unique link for each record in your primary table. When someone opens their link, the linked record field on the form is pre-filled and locked to that specific record.
Tip: You can share this link directly from a grid view, an automation email, or any other field that displays URLs. You can also use
hide_Linked+Record=trueas an additional query parameter to hide the pre-filled field from the form entirely, if you don't want submitters to see it.
Create an automation to write the submission back to the original record - Now that form submissions are landing in the updates table, you need an automation to carry the submitted values back to the original record in your primary table.
Navigate to Automations and create a new automation.
Set the trigger to "When a record is created" in your updates table.
Run the trigger test so that Airtable has a sample record to work with.
Add an action: "Update record." Set the table to your primary table.
For the Record ID field in the action, insert the dynamic value from the linked record field in the trigger step. Make sure to select the record ID from the linked record — not the linked record field itself.
Map each field from the updates table to the corresponding field in the primary table. For example, map the "Approved" checkbox from the updates table to the "Approved" checkbox in the primary table.
Test the action step and confirm the correct record was updated.
Turn the automation on.
You can now distribute the pre-filled links (from Step 7) to whoever needs to submit updates.
FAQs
Are there any other workflows that I could use to update existing records?
Yes — this is one approach, but not the only one. You can also check out other solutions related to this workaround in the Airtable Community.
How do I troubleshoot the automation I’m building out?
See troubleshooting Airtable automations for common issues. The most frequent problem is selecting the wrong value for the record ID in the "Update record" action — make sure you're using the record ID sourced from the linked record field, not the linked record field value itself.
Can external collaborators make comments?
No, external collaborators submitting a form cannot leave comments on records. If you need to capture open-ended feedback, add a long text field to your updates table and include it in the form. The automation can then write that text to a corresponding field on the primary record.
Can I hide the pre-filled linked record field from the submitter?
Yes. Append &hide_YourFieldName=true to the pre-filled URL (replacing YourFieldName with your linked record field name, URL-encoded). This hides the field entirely on the rendered form while still passing the value.
What if I want to collect open-ended text instead of a checkbox?
The same workflow applies. Instead of a checkbox field, add a text or long text field in your updates table (Step 5) and map it to the corresponding field in your primary table during the automation setup (Step 8).