function sendNewEmails(lastProcessedRow)
{
// Define the recipient email
// Define the "From" name
var fromName =
"Attendance Callout Line";
// Retrieve the subject from the spreadsheet
var spreadsheet =
SpreadsheetApp.getActiveSpreadsheet();
var sheetName =
"Who Called Message";
var sheet =
spreadsheet.getSheetByName(sheetName);
var startRow =
lastProcessedRow ?
parseInt(lastProcessedRow) +
1 :
2;
// Start from the next row
var lastRow =
sheet.getLastRow();
var numRows =
lastRow -
startRow +
1;
if (numRows <=
0) {
// No new data
console.log("No
new data to process.");
return;
}
console.log("Processing
new data...");
var dataRange =
sheet.getRange(startRow,
1,
numRows,
sheet.getLastColumn());
var data =
dataRange.getValues();
// Send email for each new row with numeric content in column E and "No" in column I
for (var i =
0;
i <
data.length;
i++) {
var row =
data[i];
var subject =
row[6];
// Column G
var numericContent =
/^\d+$/.test(row[4]);
// Column G numeric check
var status =
row[9];
// Column I
var body =
"The agent above may have called out or may be late to work.";
// Define the email body
if (numericContent &&
status !==
"Yes") {
// Send email with custom "From" name
GmailApp.sendEmail({
to:
recipientEmail,
subject:
subject,
body:
body,
name:
fromName
});
console.log("Email
sent. Subject: " + subject);
// Update column I with "Yes"
var rowIndex =
startRow +
i;
var statusCell =
sheet.getRange(rowIndex,
9);
// Column I
statusCell.setValue("Yes");
}
}
// Update the last processed row
PropertiesService.getScriptProperties().setProperty('lastProcessedRow',
lastRow);
console.log("Processing
complete.");
}
// Call the function with the last processed row
var lastProcessedRow =
PropertiesService.getScriptProperties().getProperty('lastProcessedRow');
sendNewEmails(lastProcessedRow);