Skip to main content

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.
info

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:

  1. Validates the required input (Form Id)
  2. Retrieves the Google Form using the provided Form Id
  3. Uses the Google Forms API to fetch all responses to the form
  4. 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"