Hi there, I wanted to share a basic Google App Script usage here for default values initialization in profiles for example.
So let’s say every new user falls into a User table and I want some data like a role to be set by default.

Here’s my App script, called on every change on my Spreadsheet.
function prepareNewCustomer(e) {
// Check is the event is a customer change or not, if not, exit.
if (!isCustomerChange(e))return;
// Get Customer Sheet
let customerSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Users");
// Get the last row number
let lastRow = customerSheet.getLastRow();
// Get all Row without anything in F column 6, until last row, removing the header
let roleRange = customerSheet.getRange(2,6,lastRow-1);
let roleValues = roleRange.getValues();
for (var row in roleValues){
for (var col in roleValues[row]){
// WARNING we are operating at -1 for the row
// -1 because the array is starting at 0 and not 1
// -1 again because of header removal
if (roleValues[row][col]===""){
let sheetRow = Number(row)+2;
customerSheet.getRange("F"+sheetRow).setValue("Client");
}
}
}
}
function isCustomerChange(event) {
let activeSheet = event.source.getActiveSheet().getName();
return (activeSheet === "Users") ? true : false;
}