I am trying to create a Google App Script to generate Google Doc that contains content of Google Form response (answer of question, uploaded image). Is it possible to do the following?
- trigger Google App Script when an user submit a form (I think it is possible by manually install trigger https://developers.google.com/apps-script/guides/triggers/installable )
- get the content of the form response
- generate a Google document that contains the content of the form response
added the following after submitted
I want to know the answers of the following questions to implement this.
- how to trigger App script when form is submitted
- how to get form response object from triggered script
For the question 1, * We can manually install a trigger https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_manually * We can get form response objects like this
function onFormSubmit(e) {
const form = FormApp.getActiveForm();
const formResponses = form.getResponses();
Logger.log('form id = ' + form.getId() + ', length = ' + formResponses.length);
const formResponse = formResponses[formResponses.length-1];
const itemResponses = formResponse.getItemResponses();
const doc = DocumentApp.create('New response');
const body = doc.getBody();
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
const item = itemResponse.getItem();
body.appendParagraph('Response #%s to the question "%s" was "%s"',
(i + 1).toString(),
itemResponse.getItem().getTitle(),
itemResponse.getResponse());
}
docblob = doc.getAs('application/pdf');
docblob.setName(doc.getName() + ".pdf");
const file = DriveApp.createFile(docblob);
DriveApp.addFile(file);
MailApp.sendEmail(
"mail address",
"new response",
file.getDownloadUrl())
}