> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Get form response

> Retrieve one Google Form response with text, files, and quiz grades.

`getFormResponse` loads one immutable response ID and normalizes answers into
form display order.

## Example

```ts theme={null}
import { automation, onHttpRequest } from "automate.ax"
import { getFormResponse } from "automate.ax/google-forms"

export default automation("Load a survey response", () => {
  onHttpRequest({ scope: "automation" })

  getFormResponse({
    form: "form-id",
    responseId: "response-id",
    includeQuestionTitles: true,
  })
})
```

## Inputs

`form` and `responseId` are required. `includeQuestionTitles` defaults to
`true`; disable it to avoid the additional form-metadata request. `account`
selects the Google account.

## Output

```ts theme={null}
interface FormResponse {
  formId: string
  responseId: string
  createTime?: string
  lastSubmittedTime?: string
  respondentEmail?: string
  totalScore?: number
  answers: Array<{
    questionId: string
    questionTitle?: string
    values: string[]
    files: Array<{ fileId: string; fileName: string; mimeType: string }>
    grade?: {
      correct?: boolean
      score?: number
      points?: number
      correctAnswers: string[]
      feedback?: string
      whenRight?: string
      whenWrong?: string
    }
  }>
}
```

Text answers can contain multiple values. File-upload answers use `files` and
leave `values` empty. `respondentEmail` and quiz fields are present only when
the form collects or grades them.
