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

# Google Forms

> Create and manage Google Forms - create forms, add questions, batch updates, and retrieve form data

## Overview

Google Forms tools allow you to programmatically create and manage Google Forms, add questions, perform batch updates, and retrieve form information. These tools provide comprehensive form management capabilities for surveys, feedback collection, and data gathering.

## Key Features

* `GOOGLE_FORMS_CREATE_FORM`: Create new Google Forms
* `GOOGLE_FORMS_ADD_QUESTIONS`: Add questions to existing forms
* `GOOGLE_FORMS_BATCH_UPDATE`: Perform batch updates on forms
* `GOOGLE_FORMS_GET_FORM`: Retrieve form information and structure

## Authentication

These tools require Google OAuth credentials with Google Forms API access. You need to set up OAuth credentials through the Google Cloud Console and enable the Google Forms API.

**Note**: Treat API keys as sensitive information and never commit them to public repositories.

## Tools

### GOOGLE\_FORMS\_CREATE\_FORM

Create a new Google Form.

**Input**:

| Parameter        | Type   | Required | Description                             |
| ---------------- | ------ | -------- | --------------------------------------- |
| `title`          | string | Yes      | The form title                          |
| `description`    | string | No       | Form description                        |
| `document_title` | string | No       | Document title (defaults to form title) |

**Output**:

| Field          | Type   | Description                            |
| -------------- | ------ | -------------------------------------- |
| `form_id`      | string | Unique identifier for the created form |
| `form_url`     | string | Direct URL to the form                 |
| `edit_url`     | string | URL to edit the form                   |
| `response_url` | string | URL to view responses                  |

### GOOGLE\_FORMS\_ADD\_QUESTIONS

Add questions to an existing Google Form.

**Input**:

| Parameter   | Type   | Required | Description                           |
| ----------- | ------ | -------- | ------------------------------------- |
| `form_id`   | string | Yes      | ID of the form to modify              |
| `questions` | array  | Yes      | Array of question objects (see below) |

Each object in `questions` contains:

| Field         | Type    | Required | Description                                                                                                                                                                  |
| ------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`       | string  | Yes      | Question title                                                                                                                                                               |
| `type`        | string  | Yes      | Question type: `multiple_choice`, `text`, `paragraph_text`, `checkboxes`, `dropdown`, `linear_scale`, `multiple_choice_grid`, `checkbox_grid`, `date`, `time`, `file_upload` |
| `required`    | boolean | No       | Whether the question is required                                                                                                                                             |
| `options`     | array   | No       | Options for choice-based questions                                                                                                                                           |
| `description` | string  | No       | Question description                                                                                                                                                         |

**Output**:

| Field             | Type   | Description                          |
| ----------------- | ------ | ------------------------------------ |
| `updated_form_id` | string | Form ID                              |
| `question_ids`    | array  | Array of IDs for the added questions |
| `form_url`        | string | URL to the updated form              |

### GOOGLE\_FORMS\_BATCH\_UPDATE

Perform batch updates on a Google Form.

**Input**:

| Parameter | Type   | Required | Description                          |
| --------- | ------ | -------- | ------------------------------------ |
| `form_id` | string | Yes      | ID of the form to update             |
| `updates` | array  | Yes      | Array of update requests (see below) |

Each object in `updates` contains:

| Field         | Type   | Required | Description                                                                   |
| ------------- | ------ | -------- | ----------------------------------------------------------------------------- |
| `update_type` | string | Yes      | Type of update: `update_form_info`, `update_item`, `move_item`, `delete_item` |
| `update_data` | object | Yes      | Update-specific data                                                          |

**Output**:

| Field            | Type   | Description                      |
| ---------------- | ------ | -------------------------------- |
| `form_id`        | string | Updated form ID                  |
| `update_results` | array  | Results of each update operation |
| `form_url`       | string | URL to the updated form          |

### GOOGLE\_FORMS\_GET\_FORM

Retrieve information about a Google Form.

**Input**:

* `form_id` (string, required): ID of the form to retrieve

**Output**:

Returns a `form_info` object with complete form information:

| Field            | Type   | Description                                           |
| ---------------- | ------ | ----------------------------------------------------- |
| `form_id`        | string | Form identifier                                       |
| `title`          | string | Form title                                            |
| `description`    | string | Form description                                      |
| `questions`      | array  | Array of all questions with their settings            |
| `settings`       | object | Form settings (collect emails, response limits, etc.) |
| `response_count` | number | Number of responses received                          |

## Examples

### Example: Create a New Form

```yaml theme={null}
- id: create_feedback_form
  tool: GOOGLE_FORMS_CREATE_FORM
  config:
    - name: oauth_credentials
      value: "{{secrets.GOOGLE_OAUTH_CREDENTIALS}}"
  input:
    - name: title
      value: "Customer Feedback Survey"
    - name: description
      value: "Help us improve our services by sharing your feedback"
    - name: document_title
      value: "Customer Feedback Survey 2024"
```

### Example: Add Questions to Form

```yaml theme={null}
- id: add_questions
  tool: GOOGLE_FORMS_ADD_QUESTIONS
  config:
    - name: oauth_credentials
      value: "{{secrets.GOOGLE_OAUTH_CREDENTIALS}}"
  input:
    - name: form_id
      value: "{{steps.create_feedback_form.result.form_id}}"
    - name: questions
      value:
        - title: "How would you rate our service?"
          type: "linear_scale"
          required: true
          description: "Rate from 1 (Poor) to 5 (Excellent)"
        - title: "What could we improve?"
          type: "paragraph_text"
          required: false
          description: "Please provide detailed feedback"
        - title: "Would you recommend us to others?"
          type: "multiple_choice"
          required: true
          options:
            - "Definitely"
            - "Probably"
            - "Not sure"
            - "Probably not"
            - "Definitely not"
```

### Example: Retrieve Form Information

```yaml theme={null}
- id: get_form_details
  tool: GOOGLE_FORMS_GET_FORM
  config:
    - name: oauth_credentials
      value: "{{secrets.GOOGLE_OAUTH_CREDENTIALS}}"
  input:
    - name: form_id
      value: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
```

### Example: Batch Update Form

```yaml theme={null}
- id: batch_update_form
  tool: GOOGLE_FORMS_BATCH_UPDATE
  config:
    - name: oauth_credentials
      value: "{{secrets.GOOGLE_OAUTH_CREDENTIALS}}"
  input:
    - name: form_id
      value: "{{steps.create_feedback_form.result.form_id}}"
    - name: updates
      value:
        - update_type: "update_form_info"
          update_data:
            title: "Updated Customer Feedback Survey"
            description: "Updated description for our feedback survey"
        - update_type: "update_item"
          update_data:
            item_id: "question_1"
            title: "Updated question title"
```

## Question Types

### Supported Question Types:

* **multiple\_choice**: Single selection from options
* **checkboxes**: Multiple selections from options
* **dropdown**: Dropdown menu selection
* **text**: Short text input
* **paragraph\_text**: Long text input
* **linear\_scale**: Rating scale (1-5, 1-10, etc.)
* **multiple\_choice\_grid**: Grid of multiple choice questions
* **checkbox\_grid**: Grid of checkbox questions
* **date**: Date picker
* **time**: Time picker
* **file\_upload**: File upload field

## Use Cases

* Customer feedback collection
* Survey and questionnaire creation
* Event registration forms
* Employee feedback and HR surveys
* Educational assessments and quizzes
* Market research and data collection
* Application and contact forms
* Automated form generation from templates
