Freeform Freeform for Craft

Integrations

Google Sheets ProNew in 5.2+

This guide assumes you have a Google Workspace account already.

WARNING

Important: In order for this to work, the site you are connecting the integration to will need to use a valid TLD.

Compatibility

Uses OAuth flow on v4 of the REST API.

Endpoints

Maps data to spreadsheets via the Google Sheets API.

Does your project require something else?   Contact Us

Fields

Maps Freeform submission data as new rows in a Google Sheets spreadsheet.

Setup Instructions

  • Go to the 'Other' integration section in Freeform Settings (Freeform → Settings → Other).
  • Click the New Integration button at the top right.
  • Select Google Sheets (v4) from the Service Provider select dropdown.
  • Enter a name and handle for the integration.
  • Copy the URL in the OAuth 2.0 Return URI field to your clipboard.
  • Leave this page open.
  • Open up a new browser tab and go to the Google API Console and log into your account.
  • On the Enabled APIs & Services page, click on the Enable APIs & Services button.
    • Search for or find Google Sheets API and click on it.
    • Click on the Enable button to enable it.
    • Once enabled, click on the Create Credentials button at the top right of the page.
      • For Which API are you using?, select Google Sheets API.
      • For What data will you be accessing?, select User data
      • Click Next button.
  • Under the Scopes section, click on the Add or Remove Scopes button.
    • Find auth/spreadsheets in the list, or manually add it...
      • To manually add, enter https://www.googleapis.com/auth/spreadsheets in Manually Add Scopes setting.
      • Click Save and continue button.
  • Under the OAuth Client ID section, fill out the settings as follows:
    • For Application type, select Web Application.
    • For Name, enter a value, e.g. Freeform
    • Under Authorized redirect URIs, click on the Add URI button.
    • Paste the value you copied from Freeform's OAuth 2.0 Return URI field here
    • Click Next button.
    • You will then be presented with your Client ID. You can ignore this for now.
  • Click on the Credentials navigation tab.
    • Find your newly created app (e.g. Freeform) under the OAuth 2.0 Client IDs section and click on it.
    • On the next page, you'll be presented with credential information.
    • Copy the following newly created credentials:
      • Client ID
      • Client Secret
  • Flip back to the Freeform CP browser tab.
  • Paste the Google Sheets Client ID value into the Client ID field in Freeform.
  • Paste the Google Sheets Client Secret value into the Client Secret field in Freeform.
  • Additional settings to set the defaults for forms:
    • Process User-inputted Formulas and Formats
      • Any user-inputted values with formula and formatting syntax will be respected and parsed in the spreadsheet. When disabled, these values will be escaped.
    • Row Insert Behavior
      • Choose how new data rows should be inserted into the Google Sheet. Insert New Row will add a new row to the spreadsheet directly before the first empty row. Replace Next Empty Row will find the first empty row and write the new content into it. Neither option will overwrite existing data.
  • Click the Save button.
  • You will be redirected to a Google OAuth page to allow permissions.
    • If not currently logged in, fill in your credentials.
    • Click Allow when asked for permissions.
  • You will then be redirected back to the Freeform Integration page.
  • Confirm that there is a green circle with Authorized in the middle of the page.

To use this integration on your form(s), you'll need to configure each form individually.

  • Visit the form inside the form builder.
  • Click on the Integrations tab.
  • Click on Google Sheets in the list of available integrations.
  • On the right side of the page:
    • Enable the integration.
    • Set the Google Sheets Spreadsheet ID, e.g. 4hzvcabRd6yZwux7vK80-NK02zSDD7U-X8MePslAiHvc
    • Select the Sheet to use (optional)
      • Choose the sheet the data should be pushed to. If you leave this field empty, the data will automatically be pushed to the first sheet.
    • Set the Row Offset (optional)
      • Enter the number of rows to skip from the beginning of the sheet. Input 0 to start from the first row, or 3 to skip the first 3 rows, and so on.
    • Process User-inputted Formulas and Formats
      • Any user-inputted values with formula and formatting syntax will be respected and parsed in the spreadsheet. When disabled, these values will be escaped.
    • Row Insert Behavior
      • Choose how new data rows should be inserted into the Google Sheet. Insert New Row will add a new row to the spreadsheet directly before the first empty row. Replace Next Empty Row will find the first empty row and write the new content into it. Neither option will overwrite existing data.
    • Select the Freeform fields to be mapped to the applicable Google Sheet columns.
Finished!

WARNING

Please note that if you set this up initially on a development environment, you will need to update your callback URL and reauthorize the connection on your production environment. However, your settings and field mappings will remain intact.