Watch our latest video available on Youtube.
Tutorials/Tutorial

How to Use Airtable Forms to Update Existing Records

Airtable forms always create new records — that is the single biggest source of confusion for teams trying to use forms for renewals, profile updates, or status check-ins. This guide covers the three working patterns: prefilled forms plus an automation that merges duplicates, Interface Designer record-detail forms, and Make/Zapier flows that update by matching ID.

Intermediate12 min readMay 28, 2026

Airtable forms are excellent at one thing — collecting new submissions and writing them to a table as new records. They are notably bad at another thing — updating existing records. This trips up nearly every team that wants to use a form for a renewal, a profile update, a weekly check-in, or any flow where the respondent has data already and you want to amend it.

In 2026 there is still no "edit this existing record" form mode in Airtable. But there are three reliable workarounds, and one of them — Interface Designer record pages — has become the default for internal users. This guide walks through all three so you can pick the one that fits your situation.

Why Airtable Forms Cannot Update Records Natively

A form view's job is to create records. A form submission is a CREATE, not an UPDATE, in database terms. The form has no concept of "which existing record is this for?" — it just appends a new row to the table.

You can argue this is a missing feature. Airtable's position is that it keeps forms simple and avoids the security headache of letting anyone with a public link rewrite arbitrary records.

The result: to "update" via a form, you have to take a new record and merge it into an old one, or you have to use a different surface entirely.

The Three Working Patterns

PatternBest forPlan neededComplexity
Interface record pageInternal staffFree+Low
Prefilled form + merge automationExternal users (lightweight)Free+ (automation runs apply)Medium
Form + Make/Zapier updateExternal users (high volume)Make/Zapier subscriptionMedium-high

Pick based on who is editing and how much volume you expect.

Pattern 1: Interface Designer Record Page (For Internal Users)

If the people updating records are on your team — even with the cheapest Free seat — Interface Designer is almost always the right answer.

A record-detail page in Interface Designer shows a single record and lets the viewer edit its fields if you grant them edit access on the interface. There is no form submission step; edits save live.

Setup:

  1. Open the Interface Designer.
  2. Create a new interface, pick a Record Review or Record Summary layout pointed at the target table.
  3. Add the fields you want editable. Mark them as Editable in the field settings (default in most layouts).
  4. Set permissions on the interface so the editors have at least Editor access to the underlying base, or use the new 2026 commenter-with-form-edit permission for tighter scoping.
  5. Share the interface URL with your team.

When a user opens a record, they see the current values, change what needs changing, and click out — the record is updated. If you want a discrete "save" action instead of live editing, use Interface Designer's 2026 Form layout, which behaves like a traditional update form on top of a record.

This is the cleanest pattern when the people editing are inside your Airtable account.

Pattern 2: Prefilled Form Plus Merge Automation (For External Users on Free Plan)

For external users — clients renewing their data, attendees updating their event preferences — you cannot put them in Interface Designer (it requires a seat). Use this prefilled-form-plus-automation pattern.

The idea:

  1. Generate a unique form link for each existing record. The link prefills a hidden Record ID field with the record's actual ID.
  2. The respondent fills out the form. Submission creates a new record on the target table — call it the "update payload" record.
  3. An automation fires on form submission. It looks up the existing record by the prefilled ID, copies the new field values from the payload record onto the existing record, then deletes the payload record.

Step-by-step.

First, add a formula field to the table that generates the prefilled URL.

"https://airtable.com/app123/shrABCDEF"
& "?prefill_Record+ID=" & RECORD_ID()
& "&hide_Record+ID=true"
& "&prefill_Email=" & ENCODE_URL_COMPONENT({Email})
& "&hide_Email=true"

Replace shrABCDEF with your form's share ID. Now every row in the table has its own unique link.

Second, on the form, include a Record ID field (single line text) and configure the form to allow the prefill. The field is hidden from the respondent because we appended hide_Record+ID=true.

Third, build an automation:

  • Trigger: When form is submitted (pick the form view).
  • Action: Find records — search the table where the existing record lives (the same table, or a parent table if the form is on a child) for Record ID = {{trigger Record ID}}.
  • Action: Update record — apply the form's submitted field values to the found record.
  • Action: Delete record — remove the form submission record so duplicates do not accumulate.

This pattern works on the free plan (within automation run limits) and scales fine. The only quirk: the form briefly shows up as a new record before the automation cleans it up. Hide the form view filter or use a Status filter to avoid surprising your team.

Pattern 3: Form Plus Make or Zapier (For High Volume or Complex Logic)

When you need branching logic, error handling, or to also update related systems (CRM, billing), use Make or Zapier as the middleware.

The Make scenario for an Airtable update flow:

  1. Airtable › Watch Responses — triggers on every form submission.
  2. Airtable › Search Records — find the existing record where Email = {{form Email}} (or by Record ID).
  3. Router with two branches:
    • If found: Airtable › Update Record with the new field values.
    • If not found: Airtable › Create Record (or send a "no matching account" Slack alert).
  4. Airtable › Delete Record — remove the form submission.

The Zapier equivalent uses the New Submission in Airtable trigger, Find Record action, then Update Record action with conditional logic in a Zapier path.

This pattern adds resilience — Make and Zapier give you retry logic and clear error reporting — and unlocks the ability to update systems outside Airtable in the same flow.

Handling Common Edge Cases

The user does not know their record ID. Never ask them to enter it. Always prefill it from the link you sent. If they need to access the form without a link (e.g. a generic "Update your info" page), match on email or another unique field they will type.

Multiple matching records. Decide upfront how to handle this. Options: update the most recent one, throw an error, or update all of them. Use a Find records action with a Sort by Created Time desc, limit 1 to grab the freshest.

The respondent should only edit some fields. Limit the form to those fields. Fields not on the form stay untouched on the existing record (the merge automation only copies fields that exist on the form).

Auditing changes. Add a Last Updated By Form datetime field and an automation that stamps it on every update. For full history, keep a separate Audit Log table and create a record on every form submission with the before/after values.

Linked records. Prefilling a linked record field requires the linked record's ID, not its name. Use a formula field on the target table that exposes the linked ID and reference it in the prefill URL.

Comparison: Which Pattern to Use

NeedUse
Staff editing internal recordsInterface Designer
Customer renewing data, free planPrefilled form + automation
Customer renewing, with branchingForm + Make/Zapier
Editing from a mobile deviceInterface Designer
Bulk updates from a spreadsheetCSV import, not a form
Audit log of every changeForm + Make + Audit table

Common Mistakes

Treating the form as the system of record. The form is a transport, not a destination. The automation that runs on submit is what makes the system work. Build the automation first, test it, then send the form link out.

Forgetting to delete the form submission record. Without the delete step, every form submission leaves a phantom record. After a few weeks the table is full of duplicates. Add the delete action to the automation from day one.

Letting respondents change the prefilled Record ID. If the hidden Record ID field is visible (you forgot hide_Record+ID=true), a curious respondent will edit it and update someone else's record. Always test in incognito and confirm the field does not appear.

Using email as the matching key when emails are not unique. Two records with the same email are not always two of the same person. If emails repeat in your data, generate a unique token per record and use that.

Forgetting permissions. A prefilled URL is a public link. Anyone with the URL can submit. For sensitive updates (financial data, internal notes), require a code or pair the form with a signed link generated by your backend.

Where to Go Next

For the underlying form mechanics, see How to create and customize Airtable forms. For the automation patterns that power the merge step, the Airtable automation guide covers triggers, actions, and the scripting action you may want for complex merges. If you want to build editing surfaces outside Airtable entirely, the client portal guide shows how Softr handles record editing natively.

Airtable's forms documentation is worth reading once for the prefill URL syntax, which Airtable updates occasionally as new field types are added.

Frequently Asked Questions

Common questions about this tutorial.

Ready to Transform Your Business Operations?

Join 100+ companies that have automated their way to success. Get started today and see the difference.