Get Responses
Retrieves all responses submitted to a Google Form.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Inputs
- Form Id - The unique identifier of the Google Form for which to retrieve responses.
Output
- responses - An array of response objects containing:
- ResponseId - The unique identifier of the response
- RespondentEmail - The email address of the respondent (if collected)
- Answers - An object containing the answers to each question
- Timestamp - When the response was submitted
- TotalScore - The total score for quiz responses (if applicable)
How It Works
The Get Responses node retrieves all responses that have been submitted to a Google Form. When executed, the node:
- Validates the required input (Form Id)
- Retrieves the Google Form using the provided Form Id
- Uses the Google Forms API to fetch all responses to the form
- Returns an array of response objects with complete response data
Requirements
- A valid Google Forms form ID
- Appropriate permissions to view form responses
- The form must be configured to collect responses
Error Handling
The node will return specific errors in the following cases:
- Empty or invalid Form Id
- Google Forms API errors during response retrieval
- Insufficient permissions to view form responses
- Form with the specified ID does not exist
Usage Notes
- The returned responses include all submitted responses to the form
- Each response contains answers to all questions in the form
- For quiz forms, responses include scoring information
- Response data is returned in the order responses were submitted
- This node does not modify the form or responses in any way
- Large numbers of responses may take longer to retrieve
- Response data can be processed further with other nodes
- Email addresses are only included if the form is configured to collect them
- You must use OpenForm or CreateForm node before this node to establish a connection
Example Use Cases
Daily Survey Response Collection
Form Id: {{form_id}}
Output: responses (array of response objects)
Use Case: Automatically collect daily customer feedback responses for analysis and reporting
Quiz Grading Automation
Form Id: {{form_id}} (quiz form)
Output: responses with totalScore field
Use Case: Retrieve quiz results, calculate statistics, and send personalized feedback to respondents
Event Registration Processing
Form Id: {{form_id}}
Output: responses with registration details
Use Case: Pull event registration data to generate attendee lists, name badges, and meal counts
Customer Satisfaction Analysis
Form Id: {{form_id}}
Output: responses array
Flow:
1. Get Responses
2. For each response: Extract satisfaction ratings
3. Calculate average satisfaction score
4. Store results in database
5. Generate weekly report
Use Case: Automated customer satisfaction tracking and reporting
Tips for Effective Use
- Response Processing: Use loop nodes to iterate through each response for individual processing
- Data Extraction: Access specific answers using the question IDs from the form structure
- Scheduling: Combine with triggers to automatically collect responses at regular intervals
- Storage: Save responses to databases or spreadsheets for long-term storage and analysis
- Filtering: Process responses conditionally based on answer values
- Email Collection: Enable email collection in form settings to track who submitted each response
- Incremental Collection: Store the last processed response ID to avoid reprocessing responses
Response Data Structure
The responses output contains an array of response objects. Each response has the following structure:
{
"responses": [
{
"responseId": "ABC123xyz",
"createTime": "2024-01-15T10:30:00Z",
"lastSubmittedTime": "2024-01-15T10:30:00Z",
"respondentEmail": "user@example.com",
"answers": {
"questionId1": {
"questionId": "questionId1",
"textAnswers": {
"answers": [{"value": "Answer text here"}]
}
},
"questionId2": {
"questionId": "questionId2",
"textAnswers": {
"answers": [{"value": "Option A"}]
}
}
},
"totalScore": 85
}
]
}
Common Errors and Solutions
Error: "Form not found. Please use Open Form node first"
Cause: The form_id doesn't exist in the current session or OpenForm/CreateForm wasn't called first. Solution: Use OpenForm or CreateForm node before GetResponses to establish a connection to the form.
Error: "Form ID cannot be empty"
Cause: The Form Id input is empty or not set. Solution: Pass the form_id from CreateForm or OpenForm node output to this input.
Error: "Failed to get responses"
Cause: API error when retrieving responses. Solution:
- Verify you have permission to view responses for this form
- Check that the form exists and hasn't been deleted
- Ensure the Google Forms API is enabled in your project
- Verify your credentials have the necessary scopes (forms.responses.readonly)
Error: "Insufficient permissions to view form responses"
Cause: The credentials don't have permission to access form responses. Solution:
- For Service Accounts: Ensure the form is shared with the service account email
- For OAuth2: Verify the user owns the form or has been granted access
- Check that the credentials include the Forms Responses Read scope
Integration Examples
Automated Response Analysis
1. Open Form
- URL: "https://docs.google.com/forms/d/abc123/edit"
- Output: form_id
2. Get Responses
- Form Id: {{form_id}}
- Output: responses
3. Set Variable: total_responses = {{responses.length}}
4. For Each response in responses:
- Extract Data
- Email: {{response.respondentEmail}}
- Timestamp: {{response.lastSubmittedTime}}
- Answers: {{response.answers}}
5. Store to Database or Google Sheets
Quiz Results Processing
1. Open Form (Quiz)
- URL: "https://docs.google.com/forms/d/quiz123/edit"
- Output: form_id
2. Get Responses
- Form Id: {{form_id}}
- Output: responses
3. For Each response in responses:
- Calculate: score = {{response.totalScore}}
- Set Variable: email = {{response.respondentEmail}}
- If score >= 80:
- Send Email: "Congratulations! You passed with {{score}}%"
- Else:
- Send Email: "You scored {{score}}%. Please retake the quiz."
Event Registration Report
1. Open Form
- URL: "https://docs.google.com/forms/d/event123/edit"
- Output: form_id
2. Get Responses
- Form Id: {{form_id}}
- Output: responses
3. Initialize counters:
- total_attendees = 0
- vegetarian_meals = 0
- t_shirt_sizes = {}
4. For Each response in responses:
- Increment: total_attendees
- If meal_preference == "Vegetarian": vegetarian_meals++
- Count t-shirt sizes by size
5. Generate Report:
- Total Attendees: {{total_attendees}}
- Vegetarian Meals Needed: {{vegetarian_meals}}
- T-Shirt Orders: {{t_shirt_sizes}}
6. Send Report via Email
Daily Feedback Monitoring
Trigger: Every day at 9:00 AM
1. Open Form
- URL: "https://docs.google.com/forms/d/feedback/edit"
- Output: form_id
2. Get Responses
- Form Id: {{form_id}}
- Output: responses
3. Filter New Responses:
- For each response:
- If response.createTime > last_check_time:
- Add to new_responses array
4. Calculate Metrics:
- Average satisfaction rating
- Count of negative feedback
- Common keywords in comments
5. If negative feedback exists:
- Send Alert Email to support team
6. Update last_check_time to current time
Customer Feedback to CRM
1. Open Form
- URL: "https://docs.google.com/forms/d/feedback/edit"
- Output: form_id
2. Get Responses
- Form Id: {{form_id}}
- Output: responses
3. For Each response in responses:
- Parse response data:
- customer_email = response.respondentEmail
- satisfaction = response.answers.question1.textAnswers.answers[0].value
- comments = response.answers.question2.textAnswers.answers[0].value
4. CRM API Call:
- Update customer record with feedback
- Add note with comments
- Update satisfaction score
5. If satisfaction == "Very Dissatisfied":
- Create support ticket
- Assign to customer success team
Response Export to Spreadsheet
1. Open Form
- URL: "https://docs.google.com/forms/d/survey/edit"
- Output: form_id
2. Get Responses
- Form Id: {{form_id}}
- Output: responses
3. Open Spreadsheet
- Spreadsheet ID: "spreadsheet_id_here"
4. Clear existing data (optional)
- Clear Range: "Sheet1!A2:Z1000"
5. For Each response in responses:
- Build row data: [
response.lastSubmittedTime,
response.respondentEmail,
response.answers.q1.textAnswers.answers[0].value,
response.answers.q2.textAnswers.answers[0].value,
...
]
- Append Row to spreadsheet
6. Log: "Exported {{responses.length}} responses to spreadsheet"