New274+ blocks and 249+ tools are now fully documented
Google Workspace
Block

Google Forms Block

Read forms and responses from Google Forms

Retrieve a form structure, list responses, and fetch individual responses from the Google Forms API. Authenticate with a Google OAuth access token. Use this block whenever a workflow needs to inspect form questions, collect submitted answers, or page through large response sets.

Overview

PropertyValue
Typegoogle_forms
Categorytools
Color#7248B9

When to Use

  • Fetch the full structure of a Google Form (questions, sections, settings) to understand what data it collects.
  • List all responses submitted to a form, optionally filtering by submission timestamp or other criteria.
  • Retrieve a specific individual response by its response ID for detailed inspection or downstream processing.
  • Page through large response sets using pageSize and pageToken parameters.
  • Feed form response data into an agent block for summarization, classification, or triage workflows.
  • Trigger downstream notifications or database writes whenever new form responses arrive.
  • Trigger a workflow automatically when someone submits your form

Configuration

Operation

Required. Selects which Google Forms API action to execute. All other visible fields depend on this choice.

LabelID
Get formgoogle_forms_get_form
List responsesgoogle_forms_list_responses
Get responsegoogle_forms_get_response

Default: google_forms_get_form.

Form ID

Shown for: all operations (google_forms_get_form, google_forms_list_responses, google_forms_get_response).

The unique identifier of the Google Form. Found in the form URL: https://docs.google.com/forms/d/<formId>/edit.

Example placeholder: 1FAIpQLSc...

Response ID

Shown for: google_forms_get_response only.

The identifier of the individual form response to retrieve. Obtain this from a previous List responses call (data[].responseId).

Example placeholder: ACYDBNj...

Filter

Shown for: google_forms_list_responses only. Optional.

A filter expression to narrow the response list. The Google Forms API supports timestamp-based filters.

Example: timestamp > 2024-01-01T00:00:00Z

Page Size

Shown for: google_forms_list_responses only. Optional.

Maximum number of responses to return in a single call. Omit to use the API default.

Example placeholder: 100

Page Token

Shown for: google_forms_list_responses only. Optional.

Pagination token returned by a previous List responses call (metadata.nextPageToken). Provide this to fetch the next page of results.

Google Access Token

Required for all operations. Stored as a password field (masked in the UI).

A valid Google OAuth 2.0 access token with the https://www.googleapis.com/auth/forms.body.readonly or https://www.googleapis.com/auth/forms.responses.readonly scope, depending on the operation.

Example: ya29....

Use {{GOOGLE_ACCESS_TOKEN}} to reference a secret stored in your environment.

Trigger Configuration

  • Type: trigger-config
  • Available triggers: google_forms_webhook

When the block runs in trigger mode, this configures the google_forms_webhook trigger so form submissions start the workflow. Google Forms has no native webhooks, so this needs a short Apps Script on your form — the script and setup steps are in the Google Forms trigger docs. Deliveries are verified against the shared secret.

Inputs & Outputs

Inputs

InputTypeDescription
operationstringOperation to perform (google_forms_get_form, google_forms_list_responses, or google_forms_get_response)
accessTokenstringGoogle OAuth access token
formIdstringGoogle Forms form ID
responseIdstringForm response ID (required for google_forms_get_response)
filterstringResponse filter expression (optional; used with google_forms_list_responses)
pageSizenumberMaximum responses to return (optional; used with google_forms_list_responses)
pageTokenstringPagination token (optional; used with google_forms_list_responses)

Outputs

OutputTypeDescription
datajsonResult object or array from Google Forms. For google_forms_get_form and google_forms_get_response this is a single object; for google_forms_list_responses this is an array of response objects.
metadatajsonResponse metadata. For get_form and get_response: { id: string }. For list_responses: { count: number, nextPageToken: string | null }.

Trigger outputs

When running in trigger mode the block emits the form response instead: form_id (string), response_id (string), answers (json — keyed by question title), answer_count (number), create_time (string). See the Google Forms trigger for the full schema.

Tools

Google Forms Get Form (google_forms_get_form) — Calls GET https://forms.googleapis.com/v1/forms/{formId} and returns the complete form object including items, question definitions, and settings. Required params: accessToken, formId.

Google Forms List Responses (google_forms_list_responses) — Calls GET https://forms.googleapis.com/v1/forms/{formId}/responses with optional pageSize, pageToken, and filter query parameters. Returns an array of response objects and a nextPageToken for pagination. Required params: accessToken, formId. Optional: pageSize, pageToken, filter.

Google Forms Get Response (google_forms_get_response) — Calls GET https://forms.googleapis.com/v1/forms/{formId}/responses/{responseId} and returns the full response object for a single submission. Required params: accessToken, formId, responseId.

YAML Example

# Example 1: Fetch the full form structure
google_forms_1:
  type: google_forms
  name: "Get Form Structure"
  inputs:
    operation: google_forms_get_form
    formId: "1FAIpQLSc_your_form_id_here"
    accessToken: "{{GOOGLE_ACCESS_TOKEN}}"
  connections:
    outgoing:
      - target: agent_1

# Example 2: List recent responses with pagination
google_forms_2:
  type: google_forms
  name: "List Form Responses"
  inputs:
    operation: google_forms_list_responses
    formId: "1FAIpQLSc_your_form_id_here"
    accessToken: "{{GOOGLE_ACCESS_TOKEN}}"
    filter: "timestamp > 2024-01-01T00:00:00Z"
    pageSize: 50
  connections:
    outgoing:
      - target: next-block-id

# Example 3: Fetch a single response by ID
google_forms_3:
  type: google_forms
  name: "Get Single Response"
  inputs:
    operation: google_forms_get_response
    formId: "1FAIpQLSc_your_form_id_here"
    responseId: "{{google_forms_2.data[0].responseId}}"
    accessToken: "{{GOOGLE_ACCESS_TOKEN}}"
  connections:
    outgoing:
      - target: next-block-id