Object reference
Form response
A FormResponse contains the answers sent in one Google Form submission. A form-bound submit trigger passes it to your function as event.response, where getItemResponses() returns the submitted item responses.
FormApp.FormResponseStart here
Get this object first
Install a From form, On form submit trigger, then read event.response inside the function the trigger runs.
/** @param {Events.FormsOnFormSubmit} event */
function logSubmittedResponse(event) {
const response = event.response;
Logger.log(response.getTimestamp());
} Then use it
Common actions
Choose an action, then open its example only when you need the code.
Count submitted answers
Logs only the number of answered items. Optional text, paragraph-text, date, and time items with an empty response are excluded. It does not copy questions or answers into the Execution log.
FormApp.FormResponseShow example code
/** @param {Events.FormsOnFormSubmit} event */
function logSubmittedAnswerCount(event) {
const answerCount = event.response
.getItemResponses()
.filter((itemResponse) => itemResponse.getResponse() !== '')
.length;
Logger.log('Answer count: ' + answerCount);
} List the titles of answered questions
Skips empty item responses and logs the question title of each answered ItemResponse. The answers themselves are not logged.
FormApp.FormResponseFormApp.ItemResponseShow example code
/** @param {Events.FormsOnFormSubmit} event */
function logAnsweredItemTitles(event) {
const titles = event.response
.getItemResponses()
.filter((itemResponse) => itemResponse.getResponse() !== '')
.map((itemResponse) => itemResponse.getItem().getTitle());
Logger.log('Questions answered: ' + titles.join(', '));
} Log the response ID and edit URL availability
Logs the unique response ID from getId() and whether getEditResponseUrl() returned a link. No answers are logged.
FormApp.FormResponseShow example code
/** @param {Events.FormsOnFormSubmit} event */
function logResponseIdAndEditLinkStatus(event) {
const response = event.response;
const hasEditUrl = Boolean(response.getEditResponseUrl());
Logger.log('Response ID: ' + response.getId() + ' (edit link: ' + hasEditUrl + ')');
} Technical reference
Exact names and signatures
Open method details when you need them.
At a glance
- Service
- FormApp
- Reference symbol
FormApp.FormResponse- Object
FormResponse- Runtime
- From signature data
Methods and signatures
Browse 12 methods
getEditResponseUrl
- getEditResponseUrl(): string
getGradableItemResponses
- getGradableItemResponses(): FormApp.ItemResponse[]
getGradableResponseForItem
- getGradableResponseForItem(item: FormApp.Item): FormApp.ItemResponse
getId
- getId(): string | null
getItemResponses
- getItemResponses(): FormApp.ItemResponse[]
getRespondentEmail
- getRespondentEmail(): string
getResponseForItem
- getResponseForItem(item: FormApp.Item): FormApp.ItemResponse | null
getTimestamp
- getTimestamp(): Date
submit
- submit(): FormApp.FormResponse
toPrefilledUrl
- toPrefilledUrl(): string
withItemGrade
- withItemGrade(gradedResponse: FormApp.ItemResponse): FormApp.FormResponse
withItemResponse
- withItemResponse(itemResponse: FormApp.ItemResponse): FormApp.FormResponse
Need the whole workflow?
Return to a task guide
Task guides cover setup, permissions, expected results, and troubleshooting as well as object methods.
Browse Google Forms tasks