Tim O'Driscoll
Tim O'Driscoll

Reputation: 13

onCreate send email to self in AppMaker?

Still learning about app maker and found this presentation at Google I/O '17 "Build Powerful Custom Apps Fast with App Maker on G Suite"

At timestamp 15.24 sec some code is shown on the screen showing how to send an email to yourself once someone creates a new item can.

https://youtu.be/Q84HQgI3Dd8?t=15m27s

Question

Can anyone advise where and how this code can be implemented its pretty cool and would be a great feature to add when a record is created

Thanks in advance and no worries if you cant help

Upvotes: 1

Views: 537

Answers (2)

Pavel Shkleinik
Pavel Shkleinik

Reputation: 6347

You are looking for model events:

https://developers.google.com/appmaker/models/events

In App Maker models typically have onCreate, onSave, onLoad, onDelete events. It is the best place to handle email notifications. Here is a link to App Script email API:

https://developers.google.com/apps-script/reference/mail/mail-app

Upvotes: 1

Morfinismo
Morfinismo

Reputation: 5253

I strongly recommend you to go to the Codelab for App Maker. The section Building a form to send an email describes the whole process.

The steps to highlight are:

Step 11 - Set the onClick property of the button as a custom action with the code:

var widgets = widget.parent.descendants;
var to = widgets.To.value;
var subject = widgets.Subject.value;
var msg = widgets.Msg.value;
widgets.EmailStatus.text = 'Sending email...';

SendEmail(to, subject, msg)

Step 13 - Add the following ClientScript code:

function  clearEmailForm(){
  var formWidgets = app.pages.Basic.descendants;
  formWidgets.EmailStatus.text = "";
  formWidgets.Msg.value = "";
  formWidgets.To.value = "";
  formWidgets.Subject.value = "";
}

function SendEmail(To, Subject, Msg){
  var status = app.pages.Basic.descendants.EmailStatus;
  google.script.run.withSuccessHandler(function(result) {
   status.text = 'Email sent...';
   clearEmailForm();
    })
    .SendEmail(To, Subject, Msg);  
}

Step 14 - Now add the corresponding code to the ServerScript.

function SendEmail(to, subject, msg){
  MailApp.sendEmail(to, subject , msg);
}

Upvotes: 0

Related Questions