send email reminders based on date of expiry and a status in another column

Viewed 11

A bit new at this I hope someone can help me :)

I have a list of properties in Col 24 and a "room status" in Col 35 and a contract expiry date in Col 37.

I need to send email reminder to myself 30 days before expiry to send email to the person and 27 days before expiry a reminder email to myself to follow up if I have response. I have this script ready but need it to trigger only if the status is "NO RENEW" in Col 35.

Below is the script I have:

function emailAlert(){

// 27 days from now
var twoWeeksFromToday = new Date();
twoWeeksFromToday.setDate(twoWeeksFromToday.getDate() + 27);
var twoWeeksMonth = twoWeeksFromToday.getMonth() + 1;
var twoWeeksDay = twoWeeksFromToday.getDate();
var twoWeeksYear = twoWeeksFromToday.getFullYear();

// 1 month from now 
var newToday = new Date()
var oneMonthFromToday = new Date(newToday.setMonth(newToday.getMonth()+1));
var oneMonthMonth = oneMonthFromToday.getMonth() + 1;
var oneMonthDay = oneMonthFromToday.getDate();
var oneMonthYear = oneMonthFromToday.getFullYear();

// getting data from spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("dash");
var startRow = 3; // First row of data to process
var numRows = 4; // Number of rows to process

var dataRange = sheet.getRange(startRow, 24, numRows, 41);
var data = dataRange.getValues();

//looping through all of the rows
for (var i = 0; i < data.length; ++i) {
 var row = data[i];

var expireDateFormat = Utilities.formatDate(
   new Date(row[13]),
   'ET',
   'dd/MM/yyyy'
   );

//expiration date information
var expireDateMonth = new Date(row[13]).getMonth() + 1;
var expireDateDay = new Date(row[13]).getDate();
var expireDateYear = new Date(row[13]).getFullYear();

//checking for expiry date 27 days from now

Logger.log('2 weeks month, expire month' + twoWeeksMonth + expireDateMonth);
if (
  expireDateMonth === twoWeeksMonth &&
  expireDateDay === twoWeeksDay &&
  expireDateYear === twoWeeksYear
) {
  var subject =
    row[11] + // Status
    '\n' +
    ' - ' +
    '\n' +
    row[0] + // Address
    '\n' +
    ' - ' +
    '\n' +
    'Did we get a response ?  ';

  MailApp.sendEmail('hello@gmail.com', subject, message);
  Logger.log('2 weeks from now');
}

//checking for expiry date 1 month from now
if (
  expireDateMonth === oneMonthMonth &&
  expireDateDay === oneMonthDay &&
  expireDateYear === oneMonthYear
)  {
  var subject =
   row[11] + // Status
    '\n' +
    ' - ' +
    '\n' +
    row[0] + // Address
    '\n' +
    ' - ' +
    '\n' +
    'CONTRACT ENDING ';

  MailApp.sendEmail('hello@gmail.com', subject, message);
  Logger.log('1 month from now');
}

} }

0 Answers
Related