Quantcast
Channel: Active questions tagged email - Stack Overflow
Viewing all articles
Browse latest Browse all 29745

E-mail notification based on cell value. Unable to apply script function for all rows

$
0
0

I am using Google sheets and the Google script editor to create a script to automatically send myself an e-mail every time a product quantity goes below the minimum inventory level. Since I have multiple products with different minimum inventory levels I expect to get a series of e-mails, one for each row.

I use one sheet for the actual Inventory data and another sheet that contains information for the script to refer to, such as my email and what message to include in the e-mail.

I succeeded having an e-mail sent collecting data from the first row of the Inventory sheet but I am not being able to apply that for all the following rows. I tried changing the .getRange("F2") to .getRange("F2:F"), then whenever one of the products goes under the minimum inventory level I get one single e-mail containing the information about all products, regardless of whether their quantity is under the minimum level or not.

The ideal solution would be ONE single e-mail containing all the information about all products that are under the minimum quantity .

Here is a link to my spreadsheet: https://docs.google.com/spreadsheets/d/1ZHmBvi8ZeaDRYq6Qigaw08NUiOwZumPrLnvnka_mgmA/edit?usp=sharing

Current script:

function CheckInventory() {
  // Fetch inventory quantity
  var InventoryRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Inventory").getRange("F2"); 
  var Inventory = InventoryRange.getValue();

   // Fetch minimum quantity
  var MinimumQuantityRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Inventory").getRange("D2");
  var MinimumQuantity = MinimumQuantityRange.getValue();

  // Check Inventory
  if (Inventory < MinimumQuantity){
    // Fetch email address
    var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notification Rules").getRange("E2");
    var emailAddress = emailRange.getValues();

    // Fetch email message details.
    var detailsRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notification Rules").getRange("G2");
    var details = detailsRange.getValues();
    var subjectdetailsRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notification Rules").getRange("H2");
    var subjectdetails = subjectdetailsRange.getValues(); 

    // Send Alert Email.
    var message = details;
    var subject = subjectdetails;
    MailApp.sendEmail(emailAddress, subject, message);
    }
}

Viewing all articles
Browse latest Browse all 29745

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>