---
title: Google Forms
slug: google-forms
image: https://make-cxp-documentation.ams3.digitaloceanspaces.com/apps-center-icons/PREVIEW_google-forms.png
docTags: 
createdAt: 2025-02-03T13:29:13.655Z
---

With Google Forms modules in Make, you can search, create, retrieve, and update forms and move forms to trash, watch, list, and retrieve responses, and watch, search, add, update, and delete responses in Google Forms.

To use the Google Forms modules, you must have a Google account. You can create an account at [docs.google.com/forms/](http://docs.google.com/forms/).

To upgrade to a new version of the Google Forms app, you need to upgrade all modules manually by [Replacing Legacy Modules with New Modules](https://www.integromat.com/en/help/replacing-legacy-modules-with-new-modules).

Refer to the [Google Forms API Documentation](https://developers.google.com/forms/api/reference/rest) for a list of available endpoints.

:::hint{type="info"}
Make's use and transfer of information received from Google APIs to any other app will adhere to [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy).
:::

## Connect Google Forms to Make

To establish the connection in Make:

1. Log in to your Make account, add a Google Forms module to your scenario, and click **Create a connection**.
2. Optional: In the **Connection name** field, enter a name for the connection.
3. Optional: Switch on the **Show advanced settings** toggle and enter your Google Cloud Platform project client credentials. For more information, see the [Create and configure a Google Cloud Platform project for Google Forms section](docId\:GztO4tEmXzn5hwBX60Czv) below.
4. Click the **Sign in with Google**.
5. If prompted, authenticate your account and confirm access.

You have successfully established the connection. You can now edit your scenario and add more Google Form modules. If your connection needs reauthorization at any point, follow the connection renewal steps [here](https://help.make.com/connect-an-application#O-qJq).

### Create and configure a Google Cloud Platform project for Google Forms

To connect to Make using your own client credentials, you can create and configure a project in the Google Cloud Platform.

### Create a Google Cloud Platform project for Google Forms

To create a Google Cloud Platform project:

1. Log in to the [Google Cloud Platform](https://console.cloud.google.com/) using your Google credentials.
2. On the welcome page, click **Create or select a project** > **New project**.
3. Enter a **Project name** and select the **Location** for your project.
4. Click **Create**.
5. In the top menu, check if your new project is selected in the **Select a project** dropdown. If not, select the project you just created.

:::hint{type="info"}
To create a new project or work in the existing one, you need to have the `serviceusage.services.enable` permission. If you don’t have this permission, ask the Google Cloud Platform Project Owner or Project IAM Admin to grant it to you.
:::

### Enable APIs for Google Forms

To enable the required APIs:

1. Open the left navigation menu and go to **APIs & Services** > **Library**.
2. Search for the following APIs: **Google Resource Manager API** and **Google Drive API**.
3. Click the relevant API, then click **Enable**.

### Configure your OAuth consent screen for Google Forms

To configure your OAuth consent screen:

1. In the left sidebar, click **Google Auth Platform**.
2. **Note**: If you don't see **Google Auth Platform** in the left sidebar, click **View all products** at the top of it, then pin **Google Auth Platform** to the sidebar.
3. Click **Get Started**.
4. In the **Overview** section, under **App information**, enter *Make* as the app name and provide your Gmail address. Click **Next**.
5. Under **Audience**, select **External**.
6. For more information regarding user types, refer to [Google's Exceptions to verification requirements documentation](https://support.google.com/cloud/answer/9110914#exceptions-ver-reqts).
7. Under **Contact Information**, enter your Gmail address. Click **Next**.
8. Under **Finish**, agree to the Google User Data Policy.
9. Click **Continue** > **Create**.
10. Click **Create OAuth Client**.
11. In the **Branding** section, under **Authorized domains**, add `make.com` and `integromat.com`. Click **Save**.
12. Optional: In the **Audience** section, add your Gmail address on the **Test users** page, then click **Save and continue** if you want the project to remain in the **Testing** publishing status.
13. In the **Data Access** section, click **Add or remove scopes**, add the following scopes, and click **Update > Save.**
    - `https://mail.google.com`
    - `https://www.googleapis.com/auth/drive`
    - `https://www.googleapis.com/auth/userinfo.email`
    - `https://www.googleapis.com/auth/spreadsheets`

You can add scopes using:

- A table with filters:

![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/GybWuKWl2c1BuLugueJZJ_image.png)

- A window to manually enter scopes:

  ![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/XPNAJBg2o3tBZnRPVfyJT_image.png)

:::hint{type="info"}
**Publishing Status**

**Testing:** If you keep your project in the **Testing** status, you will be required to reauthorize your connection in Make every week. To avoid weekly reauthorization, update the project status to **In production**.

**In production:** If you update your project to the **In production** status, you will not be required to reauthorize the connection weekly. To update your project's status, go to the **Google Auth Platform**, the **Audience** section, and click **Publish app**. If you see the notice **Needs verification**, you can choose whether to go through the [Google verification process](https://support.google.com/cloud/answer/13463073?authuser=1\&visit_id=638718595933013017-1855034908\&rd=1) for the app or to connect to your unverified app. Currently connecting to unverified apps works in Make, but we cannot guarantee the Google will allow connections to unverified apps for an indefinite period.

For more information regarding the publishing status, refer to the Publishing status section of [Google's Setting up your OAuth consent screen help](https://support.google.com/cloud/answer/10311615#zippy=).
:::

### Create your Google Forms client credentials

To create your client credentials:

1. In Google Auth Platform, click **Clients**.
2. Click **+ Create Client**.
3. In the **Application type** dropdown, select **Web application**.
4. Update the **Name** of your OAuth client. This will help you identify it in the platform.
5. In the **Authorized redirect URIs** section, click **+ Add URI** and enter the following redirect URI: `https://www.integromat.com/oauth/cb/google/`.
6. Click **Create**.
7. Click the OAuth 2.0 Client you created, copy your **Client ID** and **Client secret** values, and store them in a safe place.

   ![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/re0Xl5kuwbCeVNrmzObsa_image.png)

You will use these values in the **Client ID** and **Client Secret** fields in Make.

## Build Google Forms Scenarios&#x20;

After connecting the app, you can perform the following actions:

### AI

- AI Module Builder (beta)

:::Paragraph{indent="1"}
Instruct Make AI Module Builder - Google Forms module to create quizzes, update questions, collect and analyze responses, or even build survey forms.
:::

| **Field**    | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Connection   | Select an account to connect to an existing account or create a new connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Task         | This field lets you instruct what the module should do in a simple text format. You can map any inputs you need directly in the task description.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Safety level | **Protected&#x20;**– This option allows the module to use the read action only. It can only retrieve data, not write, replace or delete it. In this mode, feasibility and code review checks are done in the background to flag potentially problematic behaviors. &#xD;<br />**Normal&#x20;**– This option allows the module to use all actions - read, write, update, and delete. In this mode, feasibility and code review checks are done in the background to flag potentially problematic behaviors.&#xD;<br />**Unrestricted** – This option allows the module to use all actions – read, write, update, and delete. It still runs feasibility and code review checks but won't block execution. You are allowed to perform actions even if they are risky and can't be undone |

### Form

- Search Forms
- Create a Form
- Get a Form
- Update a Form
  - Note: For **Item Changes**, **Location** refers to the item's position on the list of all form items. The very first item is 0, the second item is 1, and so on. To add an item at the very beginning of your form, use 0 as the location.
- Move a Form to Trash

### Response

- Watch Responses
- List Responses
- Get a Response

### Legacy

- Watch Responses in Google Sheets
  - **Value render option**
    - **Formatted value**: Values will be calculated and formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` will return `$1.23`.
    - **Unformatted value**: Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` will return `1.23`.
  - **Date and time render option**
    - Specifies how dates, times, and duration should be represented in the output. This is ignored if Value render option (above) is set to `Formatted value`.
- Search Responses in Google Sheets
  - **Value render option**
    - **Formatted value**: Values will be calculated and formatted in the reply according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` will return `$1.23`.
    - **Unformatted value**: Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` will return `1.23`.
  - **Date and time render option**
    - Specifies how dates, times, and duration should be represented in the output. This is ignored if Value render option (above) is set to `Formatted value`.
- Search Responses in Google Sheets (advanced)
  - Note: For the **Filter** field, define the search query using the [Google Charts Query Language](https://developers.google.com/chart/interactive/docs/querylanguage). E.g. `select * where C = "John"` to retrieve all values for the row where the C column is "John".
- Add a Response in Google Sheets
  - Note: For the **Timestamp** column, use the following value: `formatDate(now;DD/MM/YYYY HH:mm;UTC)`
- Update a Response in Google Sheets
  - Note: For the **Value input option** field, **Raw** will not parse the values entered by the user and are stored as-is. **User entered&#x20;**&#x77;ill parse the value as if the user typed them into the UI. Numbers will remain numbers, but strings may be converted to numbers, dates, etc., following the same rules that are applied when entering text into a cell via the Google Sheets UI.
- Delete a Response in Google Sheets

### Other

- Make an API Call

