Update, Airtable heard us and this has been fixed but ill share my work on this issue so maybe someone will benefit Old original comment:"Yup I figured, Thanks Scott, I solve it by creating automation that runs scrip when record created to check the minimum required fields, I used the below script on my "Rental table" to check the two mandatory start and end date filed, if these are empty the record will be deleted, I just have to create something similar for each table ."
Exept this didn't really work because the automation for record creation run immediately and doesn't give users a chance to finish editing and maybe enter the required fields, so my workaround was to make the automation check the record that created before the triggering record " the new record" and that's how if users mistakenly linked incomplete record it will get clean up next time they create new record. I had to create a check box(create) and get that updated to checked with a button so the automation wont clean these records that has that check box checked.
let table = base.getTable('Rentals');
let fields = await input.config();
let StartDate = fields.startdate;
let Enddate = fields.enddate;
let ID = fields.ID;
if (!StartDate || !StartDate) {
await table.deleteRecordAsync(ID);
}
//this didn't work because automation runs immediately and setTimeOut function is not supported, this was my workaround attempt before Airtable make it right
// record create automation to clean the previous record if "Create" checkbox was not checked.
let table = base.getTable('Rentals');
let fields = input.config();
let ID = fields.ID;
let Create = fields.Create;
let Created = fields.Created;
let lastCreatedRecord ;
let count = 0;
queryResult.records.forEach((record) => {
if (record.id !== ID && count < 2) {
lastCreatedRecord = record;
if (!lastCreatedRecord.getCellValue('Create')) {
table.deleteRecordAsync(lastCreatedRecord.id);
}
count++;
}
}
);
-------------------
//button code : to check the "Create" checkbox
let table = base.getTable('Rentals');
let fields = input.config();
let ID = fields.ID;
let queryResult = await table.selectRecordsAsync({
fields: ['Create', 'ID'],
});
let record = queryResult.getRecord(ID);
await table.updateRecordAsync(ID, {
"Create" : true
,
})