How to Move Specific Records to Another Table in Airtable

You have records in an Airtable table that you no longer want mixed with your active records.

Maybe they are completed projects, disqualified leads, old event registrations, or records you simply want to archive.

You could create a filtered view and hide them. But sometimes you actually want those records moved into a separate table.

Airtable does not have a Move to another table button. Moving a record really means creating a copy in the destination table and then, if you no longer need the original, deleting it from the source table.

There are three ways to do this.

Selected Airtable records moving from one table to another while the remaining records stay in place

1. Copy and paste the records

If this is a one-time cleanup, I would keep it simple and use copy and paste.

Create your destination table and make sure the fields match the data you are moving.

Then select the records you want to move, copy them, and paste them into the destination table.

Before deleting anything from the original table, check that the important data has copied across correctly.

Once everything looks right, delete the original records.

For a few records or an occasional cleanup, there is usually no reason to build an automation.

2. Use an automation for records you move regularly

If records need to be moved based on the same condition again and again, an automation makes more sense.

For example, you might have a Status field and want records moved when their status becomes Archived.

Set up an automation with:

Trigger: When record matches conditions

Condition: Status is Archived

Then add a Create record action and select your Archive table.

Map the information from the original record to the corresponding fields in the Archive table.

For example:

Name → Name

Client → Client

Completed Date → Completed Date

Notes → Notes

Now whenever a record becomes Archived, Airtable automatically creates a copy in the Archive table.

The important thing to understand is that the automation has not actually moved the original record. It has only created a new one.

Airtable does not have a standard Delete record automation action.

If you are happy deleting the originals periodically, you can create a view that only shows archived records and bulk-delete them when needed.

For many workflows, I would stop here. It keeps the automation simple and gives you a chance to confirm that everything was copied correctly before deleting anything.

3. Add a script if you want the original deleted automatically

If you want the entire process to happen automatically, you can add a Run a script action to the automation.

Your workflow becomes:

Record becomes Archived → Create record in Archive table → Delete original record with a script

The script only needs to delete the record that originally triggered the automation.

Before adding the script, open the script action's Input variables panel and add a variable named recordId. Set it to the Record ID from the automation trigger.

For example:

let inputConfig = input.config();
let recordId = inputConfig.recordId;

if (!recordId) {
  throw new Error("Missing recordId input variable.");
}

let table = base.getTable("Projects");

await table.deleteRecordAsync(recordId);

The variable name in Airtable must match the script exactly: recordId.

The important part is the order.

I would create the new record first and only run the deletion script after that step succeeds.

That way, you are not deleting the original before Airtable has created the copy.

Which option should you use?

For a one-time cleanup, use copy and paste.

If records regularly need to be archived or moved, use an automation with Create record.

If you also need the originals removed automatically, add a Run a script action after the new record has been created.

I would not add scripting unless you actually need the deletion to happen automatically. Keeping the original records in a filtered archive view and periodically deleting them is often simpler.

Do you actually need to move the records?

Before creating another table, I would also consider whether the records really need to move.

If completed projects have exactly the same fields as active projects, keeping everything in one table is often cleaner.

You could have a Status field with values such as:

  • Active
  • Completed
  • Archived

Then create separate views for each status.

Your active view only shows active records, while your archive view contains everything old.

This keeps all of your records in the same table, which means your linked records, formulas, automations, and reporting can continue using the same structure.

I would only move records into another table when there is a real reason for them to live separately, rather than moving them just to keep the main view clean.