var SHEET_NAME = 'Sheet1'; /* Sheet name where submitted form data is to be stored */
var RECEIVER_EMAIL = '[email protected]'; /* Email address at which submitted form will be sent */ var SCRIPT_PROP = PropertiesService.getScriptProperties(); /* New property service */
return handleResponse(e);
function handleResponse(e) {
var lock = LockService.getPublicLock(); /* This prevents concurrent access write to data */
lock.waitLock(30000); /* Wait for 30 seconds */
var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty('key')); /* Set where we will write the data */
var sheet = doc.getSheetByName(SHEET_NAME);
var headerRow = 1; /* Row on which header is present */
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow() + 1; /* Get next row */
/* Loop through the header columns */
if (headers[i] === 'timestamp') { /* If timestamp column is present */
row.push(e.parameters[headers[i]]); /* Use header name to get form data */
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]); /* Save row data into the sheet row */
'<td>' + e.parameters.name + '</td>' +
'<td>' + e.parameters.email + '</td>' +
'Email Subject', /* Subject */
.createTextOutput(JSON.stringify({ "result": "success", "row": nextRow }))
.setMimeType(ContentService.MimeType.JSON);
catch(error) { /* Return if error */
.createTextOutput(JSON.stringify({ "result":"error", "message": error }))
.setMimeType(ContentService.MimeType.JSON);
lock.releaseLock(); /* Release lock */
var doc = SpreadsheetApp.getActiveSpreadsheet();
SCRIPT_PROP.setProperty('key', doc.getId());