How to Import Updated Data into Airtable Without Creating Duplicates

If you import the same CSV into an Airtable table again, the regular import adds new records. It does not know which rows should update the records already in your table.

For an occasional update, use Airtable's CSV import extension and merge the file using a unique field such as an order ID, email address, SKU, or customer number. For regular updates, use an automated match-and-update workflow or Airtable Sync.

Use the CSV import extension for manual updates

The CSV import extension can add new records to an existing table or merge a CSV with records already there. It is available on Airtable's paid plans.

Prepare the file

The extension accepts CSV files. If your data is in Excel or Google Sheets, export it as a CSV first.

If you need to import an Excel or Google Sheets file without losing hyperlinks, or your file is larger than 5 MB, use Spreadsheet Import. It can bring those files into Airtable, but use the CSV import extension's merge option when you need to match rows to existing records instead of creating a new set.

Your file needs a field that identifies each record. For example, an Order ID should have the same value in the CSV and in Airtable.

Airtable CSV import extension matching updated rows to existing records

Turn on merge mode

  1. Open the base and click Tools.
  2. Select Extensions, click Add an extension, and add CSV import.
  3. Drag your CSV file into the extension.
  4. Choose the table you want to update.
  5. Turn on Merge with existing records.
  6. Choose the field Airtable should use to match records.
  7. Check the field mappings and the preview, then click Create records.

Airtable updates rows where the merge value matches. Rows with no match are added as new records, so check the preview before starting the import.

The match is case-sensitive. Airtable ignores leading and trailing spaces, but ABC-123 and abc-123 are different values. A blank merge value creates a new record. If the same merge value already appears in several Airtable records, all of those matching records can be updated.

The extension supports up to 25,000 rows and a 5 MB CSV file. It does not delete Airtable records that are missing from the new file, so handle removals separately.

Automate regular updates

If the source changes every day or week, use an automated workflow that matches each source row to Airtable using the same unique ID.

The workflow is:

  1. Read the updated rows from the source.
  2. Search Airtable for the matching ID.
  3. Update the Airtable record when a match is found.
  4. Create a new record when no match is found.

You can build this with Make. For example, it can watch Google Sheets or a new file, search Airtable by Order ID, and send each row down an update or create path.

This keeps the Airtable table editable and avoids exporting and importing the same file by hand each week. Make sure the ID is present and unique in both systems before turning the workflow on.

Use Airtable Sync for supported sources

Use Airtable Sync when the source should remain the system of record and Airtable only needs the latest version of the data.

Sync can pull data from supported sources on a schedule. A one-way sync makes the synced fields read-only in Airtable, so changes must be made in the source. Some plans and sync configurations support two-way editing, which lets permitted users send changes back to the source.

If you are syncing data from another Airtable base, see how to do a one-way sync while keeping the destination table editable.

Which option should you use?

SituationBest option
Occasional CSV updateCSV import extension with Merge with existing records
Regular updates from Google Sheets or filesAutomated match-and-update workflow with Make
Supported source should stay in control of the dataAirtable Sync

Before importing, take a base snapshot and check the number of records Airtable plans to update and create. If the import creates duplicates, see how to find, remove, and prevent duplicate records in Airtable.