Google Apps Script for Google Forms_ Comprehensive Guide
Google Apps Script for Google Forms_ Comprehensive Guide
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis
1
Example 2: Add a Multiple-Choice Question 3
Example 3: Handle Form Responses 4
Advanced Examples 4
Example 4: Add Conditional Logic to a Form 4
Example 5: Create a Form and Link It to a Google Sheet 4
Exercises 5
Exercise 1: Create a Form with Text and Multiple-Choice Questions 5
Solution: 5
Exercise 2: Count Total Responses 5
Solution: 5
Exercise 3: Trigger an Email on Form Submission 5
Solution: 5
Multiple-Choice Questions 6
Question 1: 6
Question 2: 6
Question 3: 6
Advanced Example: Dynamic Form Creation 7
Best Practices 7
Google Apps Script for Forms enables you to automate and customize Google Forms by
creating forms programmatically, managing responses, and integrating them with other Google
Workspace apps. This guide includes examples, detailed explanations, exercises, and
multiple-choice questions to help you master Google Forms automation.
Google Apps Script provides the FormApp service to create, customize, and manage Google
Forms programmatically. You can:
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis
2
1. FormApp.create(): Creates a new form.
2. addTextItem(): Adds a text question.
3. addMultipleChoiceItem(): Adds a multiple-choice question.
4. getResponses(): Retrieves form responses.
5. onFormSubmit(): Handles form submission triggers.
Basic Examples
Explanation:
Explanation:
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis
3
Example 3: Handle Form Responses
function logResponses() {
const form = FormApp.getActiveForm();
const responses = form.getResponses();
responses.forEach((response) => {
Logger.log(response.getItemResponses().map((item) =>
item.getResponse()).join(", "));
});
}
Explanation:
Advanced Examples
Explanation:
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis
4
.setChoices(["Yes", "No"]);
}
Explanation:
Exercises
Solution:
function createFeedbackForm() {
const form = FormApp.create("Feedback Form");
form.addTextItem().setTitle("What is your email?");
form.addMultipleChoiceItem()
.setTitle("Rate our service (1 to 5)")
.setChoices(["1", "2", "3", "4", "5"]);
}
Write a script to count and log the total number of responses submitted to a form.
Solution:
function countResponses() {
const form = FormApp.getActiveForm();
const responses = form.getResponses();
Logger.log(`Total responses: ${responses.length}`);
}
Solution:
function onFormSubmit(e) {
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis
5
const responses = e.response.getItemResponses();
const email = "[email protected]";
const responseText = responses.map((item) =>
`${item.getItem().getTitle()}: ${item.getResponse()}`).join("\n");
GmailApp.sendEmail(email, "New Form Submission", responseText);
}
Explanation:
● Attach this function as a trigger for the "On Form Submit" event.
Multiple-Choice Questions
Question 1:
1. FormApp.newForm()
2. FormApp.createForm()
3. FormApp.create()
4. FormApp.new()
Answer: 3. FormApp.create()
Question 2:
Question 3:
1. setDestination(DestinationType, SpreadsheetID)
2. linkToSheet(SpreadsheetID)
3. setDestination(FormApp.DestinationType.SPREADSHEET,
SpreadsheetID)
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis
6
4. connectSheet(SpreadsheetID)
Answer: 3. setDestination(FormApp.DestinationType.SPREADSHEET,
SpreadsheetID)
form.addMultipleChoiceItem().setTitle(question.title).setChoices(quest
ion.choices);
}
});
}
Explanation:
Best Practices
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis
7
Learn more HTML, CSS, JavaScript Web Development at https://basescripts.com/ Laurence Svekis