0

Ich bin auf der Suche nach einem Weg (Google App-Skript, Add-on oder sonst), die eine Terminerinnerung E-Mail mit Zelle Werte automatisieren in meiner Google-Tabelle. Momentan ist mein Arbeitsablauf wie folgt:GSheets- Automatisieren Erinnerung Erinnerung E-Mail an den Kunden 1-2 Tage vor dem Termin

  1. Ich fülle meine Kundennummer und das Termindatum google form aus.
  2. Seriendruck sendet eine Bestätigungs-E-Mail an den Client, der sie über ihr Datum und ihre Uhrzeit informiert.

ich für den dritten Schritt sein möchten, dass eine E-Mail 1-2 Tage vor dem Termin Datum automatisch gesendet wird, und vielleicht einen vierten Schritt, um die E-Mail auf dem Termin Datum senden Erinnere sie.

Here is my sheet with dummy data and without mail merge formatting:

Obwohl ich auf diesen Foren und Stapelaustausch geschaut habe, kann ich nicht eine Lösung für mein Problem finden. Ich habe festgestellt, dass die Leute versuchen, ähnliche Ziele zu erreichen, aber vor allem, dass E-Mails an statische E-Mails/E-Mails weitergeleitet werden. Meine Bedürfnisse sind dynamischer. Bitte helfen Sie.

Hier ist was, was mit ich arbeite:

function sendEmail() { 
var sheet = SpreadsheetApp.getActiveSheet(); 
var startRow = 2; // First row of data to process 
var numRows = sheet.getLastRow()-1; // Number of rows to process 
// Fetch the range of cells A2:B3 
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn()); 
// Fetch values for each row in the Range. 
var data = dataRange.getValues(); 
//Logger.log(data) 

for (i in data) { 
    var row = data[i]; 
    var date = new Date(); 
    date.setHours(0); 
    date.setMinutes(0); 
    date.setSeconds(0); 
    //Logger.log(date); 
    var sheetDate = new Date(row[9]); 
//Logger.log(sheetDate); 
    var Sdate = Utilities.formatDate(date,'GMT-0600','MM:dd:yyyy') 
    var SsheetDate = Utilities.formatDate(sheetDate,'GMT-0600', 'MM:dd:yyyy') 
    Logger.log(Sdate+' =? '+SsheetDate) 
     if (Sdate == SsheetDate){ 
      var emailAddress = row[8]; // Patient Email 
      var message = row[6];row[7];  // Date and Time 
      var subject = "Your appointment is in 1 day!." +message; 
      MailApp.sendEmail(emailAddress, subject, message); 
      //Logger.log('SENT :'+emailAddress+' '+subject+' '+message) 
      }  
    } 
    } 

Was ich genannt habe und versucht, für mich zu machen Arbeit:

Referencing by date/day- Google Forums:

Emails sent based on date- Google Forums:

Emails sent based on date - Stack Overflow:

Due Date Reminders - Stack Overflow

Antwort

0

Erstellen eines Kalenderereignisses mit einem Standardsatz von Benachrichtigungen

Hier ist eine Funktion, die ein Ereignis in Ihrem Kalender mit Standardbenachrichtigungen von 1 Tag, 2 Tage und 1 Stunde schafft. Sie liefern mit einem Array, das Client Name, Termin Datum und Terminzeit enthält wie folgt: [ 'Client-Name', '2017.11.31', '01.30.00']

function testCreateEventWithReminders() 
{ 
    createEventWithReminders(['Harry Dog','11/20/2017','1:30:00 PM']) 
} 
//eA=[clientName,date,time] 
function createEventWithReminders(eA) 
{ 
    var minute=60*1000; 
    var hour=60*minute; 
    var day=24*hour; 
    var cal=CalendarApp.getCalendarById('CalendarID');//You need to supply your calendarID 
    var now=new Date().valueOf() 
    var start=new Date(eA[1] + ' ' + eA[2]); 
    var endValue=start.valueOf() + (hour); 
    var end=new Date(endValue); 
    var event=cal.createEvent(eA[0], start, end); 
    event.addEmailReminder(24*60);//reminders in minutes 
    event.addEmailReminder(2*24*60); 
    event.addEmailReminder(60); 
} 

Oben müssen Sie Ihre Kalender ID eingeben. Wenn Sie displayCalendarInfo ausführen, sollten Sie in der Lage sein zu bestimmen, was die Kalendernamen und IDs sind.

function displayCalendarInfo()//Use this function to determine calendar names and ids. 
{ 
    var cals=CalendarApp.getAllCalendars(); 
    var s='Calendar Information'; 
    for(var i=0;i<cals.length;i++) 
    { 
    s+=Utilities.formatString('<br />Name: %s Id: %s', cals[i].getName(),cals[i].getId()); 
    } 
    s+='<br /><input type="button" value="Close" onClick="google.script.host.close();" />'; 
    var ui=HtmlService.createHtmlOutput(s).setWidth(1200).setHeight(450); 
    SpreadsheetApp.getUi().showModelessDialog(ui, 'Calendar Data'); 
} 

Wenn Sie Ihre eigenen, nicht Standarderinnerungen erstellen, können Sie

Zusätzliche Anweisungen mehr Elemente an den Eingangs Array hinzufügen:

  1. Die Eingabe in die Funktion createEventWithReminders (Ea) ist ein Array in der Form ['Kundenname', 'mm/tt/jjjj', 'hh: mm: ss AM'], wobei Datum und Uhrzeit für den Termin gelten.

  2. Ich gehe davon aus, dass Sie diese Funktion in Ihre Tabellenkalkulation integrieren können. Ich persönlich hätte es wahrscheinlich zu einer geschlossenen Webapp gemacht, weil ich Siri gerne für meine Dateneingabe nutze, so dass ich nicht mehr auf mein mobiles Gerät tippen muss und mir die Möglichkeit gibt, Erinnerungen einzutragen, während ich durch die Tag ohne meinen Laptop.

+0

Hey, Cooper, danke, dass du mir geholfen hast. Deine Lösung könnte mich auf eine gute Weise verändern. Es macht mir nichts aus, in meinem GCal ein Kalenderereignis zu erstellen, aber gibt es eine Möglichkeit, Thereminder automatisch an meinen Kunden zu senden? Ich muss nicht daran erinnert werden, lieber würde das Skript die E-Mails meiner Kunden aus einer Spalte ziehen und automatisch senden. Ich versuchte das Skript, wie es meine Cal ID hinzufügt. Das Skript gibt mir die Möglichkeit, 2 Funktionen auszuführen: testCreate und Create. testCreate wird ausgeführt, tut aber nichts und Create erzeugt einen Fehler: TypeError: Die Eigenschaft "1" kann nicht von undefined gelesen werden. (Zeile 13, Datei "CreateReminder") Was nun? –

+0

Ah, Cooper, ich habe gerade gesehen, dass mehrere Ereignisse erstellt wurden. Sie wurden jedoch am 20. November, dem von Ihnen definierten Datum, erstellt. Ich habe versucht, zu modifizieren, indem ich durch 'row [2]', 'row [6]', 'row [7]' ersetzt habe, die meine Klienten Name, Datum und Zeitspalten sind. Aber nichts wurde geschaffen. Gibt es eine Möglichkeit, die App aus dieser Info vom Blatt zu ziehen? Tut mir leid, ich bin so neu und verloren. Ich sollte vielleicht hinzufügen: Ein Google-Formular wird ausgefüllt, das die Spalten füllt, aus denen die App Daten ziehen soll. –

+0

Hoppla, ich habe vergessen dich zu markieren, bitte lies oben! –

Verwandte Themen