Hey @Mark_Newton!
To demonstrate this, I've created a table with a single text field and pasted in the record ids of each record to provide.

Next, I just created an automation that would theoretically run on a schedule to serve as just a sample trigger.
You can use whatever trigger fits your business needs.
Next, I just have a single script action that will do our heavy lifting.
const tableId = "tbleq4AFp1rZ7Pu1u";
const table = base.getTable(tableId);
//Load all records from the table
//Returns an array of record objects.
const allRecords = await table.selectRecordsAsync({
fields: [
//Field To Clear
"fld7bln5wXXpy0yYv"
]
}).then(records => {return records.records});
let updatedRecords = allRecords.map(record => {
return {
id: record.id,
fields: {
"fld7bln5wXXpy0yYv": ""
}
}
});
if (updatedRecords) {
if (updatedRecords.length <= 50) {
await table.updateRecordsAsync(updatedRecords)
.then(updatedRecords => {
console.log(`Updated ${updatedRecords.length} Records.`)
})
} else if (updatedRecords.length > 50) {
while (updatedRecords.length > 50 || updatedRecords.length > 0) {
await table.updateRecordsAsync(updatedRecords.slice(0, 50));
updatedRecords = updatedRecords.slice(50);
}
console.log(`Updated ${allRecords.length} Records.`);
}
}
The script grabs every record in the table and sets a blank value to the field we specify.
We're not able to conduct bulk operations on more than 50 record at a single time, so there is logic written in to make sure that in situations where there are more than 50 records, we work through separate batches until every record has been updated.
When I test the script, it behaves as expected. The field on each record is now empty.

We can confirm this against the record revision history on each record.

There are some key components that you'll want to change out for this script if you want to use it.
You'll need to change out the table id at the top of the script to reflect the id of your table.
If you are working in Airtable desktop application, navigate to your desired table, and use CTRL + Shift + C / CMD + Shift + C to copy the link to the table you're currently working in.
When you examine the link, it will look something like this:
https://airtable.com/appxxxxxxxxxxxxxx/tblxxxxxxxxxxxxxx/viwxxxxxxxxxxxxxx

You can just copy out the table id from the URL and directly into the script. Be sure to confirm that you're working with the correct table ID.
The next thing you'll want to switch out from the script I posted is the field ID string as shown below:

You'll need to replace this id with the field id of the field that you're looking to clear.
You can quickly grab the field ID of any field in a table by navigating to the Manage Fields page within your base's Tools.

There's one last thing that is important to note.
This script will only work in it's current form if you are clearing one of the following field types:
- Single Line Text
- Long Text
- Email
- URL
- Number
- Percent
- Currency
- Date/Time
- Phone Number
- Checkbox
If you want to clear the values of another field type not listed, let me know and I can post an updated script for you to look at.
If you have any additional questions, curiosities, or have specific requirements, let us know and we'd all be happy to jump in and help!
I'm also happy to explain any part of the script that you're curious to know more about.