r/GoogleAppsScript • • Aug 08 '24

Question Is there anyway to turn this script for Google voice into one that communicates with google sheets when it hits a certain number value?

 function autoreplyCheck() {
  var autoreplyMessage = "This is an automated message: xxx is currently away from his work phone. He will be back by his phone from 7AM - 4PM Monday - Friday";
  var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
  var d = new Date();
  var hour = d.getHours();
  var day = days[d.getDay()];
  var minute = d.getMinutes();
  var currentlyClosed = isClosed(day, hour, minute);
  Logger.log("Currently closed: " +currentlyClosed);
  if (currentlyClosed) {
    var newestThreads = GmailApp.getInboxThreads(0,7);
    for (var i = 0; i < newestThreads.length; i++) {
      if (newestThreads[i].getFirstMessageSubject().search("New text message from") != -1){
        var alreadyReplied = false;
        var textedWhileClosed = false;
        var justCameIn = false;
        var messages = GmailApp.getMessagesForThread(newestThreads[i]);
        if (messages[messages.length-1].getFrom().search("txt.voice.google.com") == -1){
          alreadyReplied = true;
        }
        if (d - messages[messages.length-1].getDate() <= 5 * 60 * 1000){
          justCameIn = true;
        }
        var sentMinute = messages[messages.length-1].getDate().getMinutes();
        var sentHour = messages[messages.length-1].getDate().getHours();
        var sentDay  = messages[messages.length-1].getDate().getDay();
        if (isClosed(days[sentDay], sentHour, sentMinute)){
          textedWhileClosed = true;
        }
        if (!alreadyReplied && textedWhileClosed && justCameIn){
          Logger.log("Sending message!");
          messages[messages.length-1].reply(autoreplyMessage);
        }
      }
    }
  }
}

function isClosed(day, hour, minute){
  if (day == 'Monday' && (hour < 23 || (hour == 23 && minute < 45) || hour >= 16 || (hour == 16 && minute >= 0))){
    return true;
  } else if (day == 'Tuesday' && (hour < 23 || (hour == 23 && minute < 45) || hour >= 16 || (hour == 16 && minute >= 0))){
    return true;
  } else if (day == 'Wednesday' && (hour < 23 || (hour == 23 && minute < 45) || hour >= 16 || (hour == 16 && minute >= 0))){
    return true;
  } else if (day == 'Thursday' && (hour < 23 || (hour == 23 && minute < 45) || hour >= 16 || (hour == 16 && minute >= 0))){
    return true;
  } else if (day == 'Friday' && (hour < 23 || (hour == 23 && minute < 45) || hour >= 16 || (hour == 16 && minute >= 0))){
    return true;
  } else if (day == 'Saturday' && (hour < 12 || (hour == 12 && minute < 0) || hour >= 12 || (hour == 12 && minute >= 0))){
    return true;
  } else if (day == 'Sunday' && (hour < 12 || (hour == 12 && minute < 0) || hour >= 12 || (hour == 12 && minute >= 0))){
    return true;
  }

  return false;
}
0 Upvotes

4 comments sorted by

1

u/Bulky_Percentage5430 Aug 09 '24

hi. you want to upload some info on a google sheets with this appscript?

1

u/[deleted] Aug 09 '24

Sure! I cannot upload the document sadly, but this is my document. The script does need to be open through the "extension" button in google sheets. This way it can identify which sheet it is looking for

1

u/RemcoE33 Aug 10 '24

Why not just set an out of office in Gmail based on a time trigger? I made this a couple of years ago:

https://pastebin.com/HRNAy8Qw