Skip to Content
ResourcesIntegrationsProductivity & DocsGoogle Forms

Google Forms

Service domainSURVEY
Google Forms icon
Arcade Optimized

Arcade.dev LLM tools for Google Forms

Author:Arcade
Version:4.0.1
Auth:User authorization via the Google auth provider
20tools

Google Forms toolkit for Arcade provides LLM-callable tools to create, read, update, and manage Google Forms and their responses via the Google Forms and Drive APIs.

Capabilities

  • Form lifecycle management — create, copy, rename, move to folder, trash, restore, and configure publish/response-accepting state for forms
  • Structural editing — batch-update form items (questions, grids, settings, quiz mode, grading) atomically with revision-safe concurrency control
  • Response retrieval and analysis — list, paginate, and fetch individual responses; aggregate answer counts and text distributions from sampled response pages
  • Form discovery and metadata — list forms by recency, sharing, or folder; fetch full normalized structure or concise summaries; enumerate Drive permissions; retrieve authenticated identity
  • Real-time change notifications — create, list, renew, and delete Pub/Sub watches for new responses or schema changes (watches last up to 7 days)
  • Access recovery — generate Google File Picker URLs to let users grant access to forms not yet visible under the drive.file scope

OAuth

Authentication uses OAuth 2.0 via Google. See the Arcade Google auth provider docs for setup details.

Available tools(20)

20 of 20 tools
Operations
Behavior
Tool nameDescriptionSecrets
Return aggregate response counts and text-answer distributions for a form. Samples up to `limit` responses from the first page returned by the Forms API, which comes back in no guaranteed order. Does not paginate; the counts and distributions reflect only that sample and can undercount recent activity on busy forms, which should rely on the response-listing tool's timestamp filter or the linked response spreadsheet for exhaustive analytics.
Duplicate an existing Google Form, optionally renaming and targeting a folder.
Create a new Google Form with a title and return its IDs and URLs.
Create a watch that notifies Pub/Sub when the form has new responses or schema changes.
Delete a form watch, stopping Pub/Sub notifications for that subscription.
Generate a Google File Picker URL for user-driven form selection and authorization. Useful when a prior Forms tool call failed because a form was not found or not accessible under the drive.file scope. Once the user completes the picker flow and grants the app access to the desired form, retry the original tool call.
Fetch the normalized form structure including items, settings, and revision info.
Return a concise summary of a Google Form for quick triage and discovery. The Google Forms API does not expose a total response count and returns responses in no guaranteed order, so `sampled_response_count`, `latest_sampled_response_at`, and the 24h/7d counts reflect only the sampled first page and can undercount recent activity on forms larger than the sample. For accurate recency or exhaustive analytics, use the response- listing tool's timestamp filter or the linked response spreadsheet.
Retrieve a single Google Form response by its response ID.
List Google Forms filtered by a discovery mode such as recent, shared, or in_folder. Returns results newest-first (by Drive modified time). Each call fetches one Drive page of up to `limit` forms and returns a `next_page_token` to continue.
Return normalized Drive permissions for a Google Form.
List submitted responses for a Google Form. Each call fetches one Forms page of up to `limit` responses and returns a `next_page_token` to continue.
List the Pub/Sub watches currently registered on a form. The Forms watches API returns the full set in a single call with no cursor, and a form can hold only a few watches, so all of them are returned.
Restore a trashed Google Form back into the user's Drive.
Update form-wide settings (quiz mode, email collection) safely. Wraps `batchUpdate` + `updateSettings` with a correct `updateMask` built from the parameters the caller supplied. At least one of `is_quiz` or `email_collection_type` must be set; otherwise this returns a validation error so callers never accidentally submit an empty update. Form-wide settings that are NOT available in Forms API v1 and must be toggled in the Forms UI (Settings / gear icon): - "Limit to 1 response" - "Shuffle question order" per respondent - Quiz feedback toggles: when to release the grade, whether respondents see missed questions, correct answers, or point values. Only `isQuiz` is exposed here; per-question `Feedback` + `correctAnswers` + `pointValue` still flows through the batch form-update tool.
Update a form's publish/response-accepting state. The Forms API `setPublishSettings` endpoint does not accept an update mask, so an incomplete body silently unpublishes the form. This wrapper reads the form's current publish state and merges in only the fields the caller supplied, so an unset field is preserved rather than reset.
Move a Google Form to the Drive trash (soft delete).
Apply a batch of structural updates to a Google Form. All structural edits to a form go through this tool. Requests apply atomically in the given order, so an earlier createItem shifts the indices that later requests address. updateItem, updateFormInfo, and updateSettings take an updateMask: only the named field paths are written, and a field left out of the mask is preserved. Omitting the mask makes Google overwrite the entire target object. Forms API v1 limitations to know: - `questionGroupItem` (grids) has no per-item `required`; mark each `rowQuestion` required instead. - Per-question grading (`pointValue`, `correctAnswers`, `whenRight` / `whenWrong` feedback) IS settable here, but the form-wide quiz release toggles (when grades are released; whether respondents see missed questions, correct answers, or point values) are UI-only. - "Limit to 1 response" and per-respondent question shuffle are UI-only; `choiceQuestion.shuffle` only shuffles options within one question. Concurrency: pass `required_revision_id` (the revision id from a prior read of the form) to reject writes that would overwrite concurrent edits. The returned `revision_id` is the new post-update revision only when `include_form_in_response=True`; otherwise it is empty and must be re-read by fetching the form.
Renew a form watch before it expires (watches last up to 7 days).
Return the authenticated Google identity (email and display name).
Last updated on