Search code examples
emailgoogle-apps-scriptgoogle-sheetsreturn-value

Trigger Email based on any text in Specific Column


Trying to trigger to send email when anything is put into column C. With currect script it will work just fine if I put TEST in any row column C works great. I need it to trigger if anything is put into anyrow column C. Is there a wildcard so to speak for anything entered?

function sendMailEdit(e){
  if ((e.range.columnStart != 3 || e.value != "TEST")) return; 
  const rData = e.source.getActiveSheet().getRange(e.range.rowStart,1,1,4).getValues();
  let job = rData[0][1];
  let req = rData[0][0];
  let item = rData[0][2];
  let now = new Date().toLocaleString("en-US");
   var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Requestors").getRange("B2:B");
    var emailAddress = emailRange.getValues();
  
  let msg = "Job # = " + job + " \nRequestor = " + req + " \nItem Requested = " + item + "  \nDate & Time Requested " + now;
  Logger.log(msg);
  GmailApp.sendEmail(emailAddress, "Raw Material Request", msg) 
}

Solution

  • About your expected result of I need it to trigger if anything is put into anyrow column C., in this case, how about using isBlank()? When this is reflected in your script, please modify it as follows.

    From:

    if ((e.range.columnStart != 3 || e.value != "TEST")) return; 
    

    To:

    if (e.range.columnStart != 3 || e.range.isBlank()) return; 
    
    • By this, when a value is put into column "C", the script below this if statement is run.

    Reference: