Send email from Google Sheet when cell is is =1 by using apps script

60 views Asked by At

Send email,

I am trying to create a send email script, enter image description here, any cell in H column reach to 1 send me email with a certain message, any support from anyone. I already out the email with the email in the sheet.

I am trying to use this script,

    function ifstatement() {
      var ss = SpreadsheetApp.getActiveSpreadsheet(); 
      var sheet = ss.getSheetByName("Sheet 1"); 
      var value = sheet.getRange("b2").getValue(); 
      if(value >= "1") sendEmail(value) 
    }; 
    
    function sendEmail(value){ 
      var recipient="[email protected]"; 
      var subject=" test subject " +value; 
      var body=" test body "+value; 
      MailApp.sendEmail(recipient, subject, body);
    }
1

There are 1 answers

4
Tedinoz On

You want to send an email IF the value in Column H is changed to 1.

The script needs an installable onEdit trigger.

  • this enables the script to be automatically triggered when a user changes a value in Column H
  • tests for the correct sheet, column and value
  • uses Event objects to provide key data values

// this function will send an email if the user enters 1 in Column H
// an installable "onEdit" trigger must be created to trigger the function

function sendEmail(e) {
  Logger.log(JSON.stringify(e))

  var editedValue=e.value
  var editedSheet = e.range.getSheet().getName()
  var editedCol = e.range.columnStart
  Logger.log("DEBUG: column  = "+editedCol+" , value ="+editedValue+" & sheet = "+editedSheet)
  // test for a change in 
  // sheet1, Column H, value = 1

  if (editedCol != 8 || editedValue != 1 || editedSheet != "Sheet 1"){
    // ignore the edit; wrong column, value or sheet
    Logger.log("DEBUG: ignore the edit")
    return
  }
  else{
    var editedRow = e.range.rowStart
    var value = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(editedSheet).getRange(editedRow,2).getValue() // get value of cell B2
    var recipient="[email protected]"
    var subject=" test subject " +value 
    var body=" test body "+value
    MailApp.sendEmail(recipient, subject, body)
    Logger.log("Mail sent")
  }
}