I am new to google app script.
I have a google web app and trying to use it with my project, to send web form info to google sheet when form is submitted.
I am using a custom form not google form.
The web app works fine, on form submit, name and email will be added to google sheet.
however I want to send email notification/ autoresponder as thank your for submission, after form submission to the form submitter.
I have a code snippet that is available online, it used to work before with google app script, however I am not sure why it does not work in my web app.
Here is the snippet:
function onFormSubmit(e){
var date = e.values [0];
var userEmail = e.values[1];
var userName = e.values[2];
var subject = "Form Submitted";
var message = "Thank you, " + userName + " for signup " + date;
MailApp.sendEmail(userEmail, subject, message);
}
I have checked the userEmail and Name values [1] and [2] are correct and same as in google sheet.
Here is the web app that works, except the last part for sending email, I have setup a trigger on form submit as well.
appreciate your help.
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("signups");
function startTime() {
ss.getRange(ss.getLastRow() + 1, 1).setValue(new Date());
}
var sheetName = 'signups'
var scriptProp = PropertiesService.getScriptProperties()
function intialSetup () {
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
var lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
var doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
var sheet = doc.getSheetByName(sheetName)
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
var nextRow = sheet.getLastRow() + 1
var newRow = headers.map(function(header) {
return header === 'timestamp' ? new Date() : e.parameter[header]
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
.setMimeType(ContentService.MimeType.JSON)
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}
}
// This is the added part for sending email to form submitter that does not work
function onFormSubmit(e){
var date = e.values [0];
var userEmail = e.values[1];
var userName = e.values[2];
var subject = "Form Submitted";
var message = "Thank you, " + userName + " for signup " + date;
MailApp.sendEmail(userEmail, subject, message);
}