What does Gravity Forms Google Sheets do?
This plugin integrates Google Sheets directly with Gravity Forms to automatically pass entry values to Google Sheets. This is done without requiring any additional software or monthly fees, and with an emphasis on security and high performance.
Additionally, your Google Sheet can be automatically synced with your Gravity Forms entries, keeping your data accurate at all times.
- Send Gravity Forms entry data directly to Google Sheets.
Unlock the vast power of Google Sheets for all of your Gravity Forms entry data.
- Keep your spreadsheet and entry data perfectly in sync.
Edits to your entries can automatically sync to your Google Sheets. Rows for trashed or spammed entries are automatically removed.
- Create new or map to existing sheets.
Send data to existing sheets or create a completely new sheet specific to your form.
- Security first.
Uses Google’s secure authentication method to ensure only you have access to your Google files and data.
- Money-saving, value packed.
No monthly fees or transfer limits. Just the unlimited power of Google Sheets.
- Automatic updates.
Get updates and the latest features right in your dashboard.
- Legendary support.
We’re here to help! And we mean it.
Why Google Sheets?
- Easy organization and analysis: Google Sheets allows you to easily organize and analyze your form data. Use various Google Sheets functions and features, like formulas, pivot tables, and charts, to analyze and visualize your data in meaningful ways.
- Collaboration: Google Sheets allows multiple users to access and edit the same sheet, making it easy for teams to collaborate on data analysis and decision making.
- Accessibility: Google Sheets can be accessed from any device with an internet connection (and has an offline mode too). Teams can access and work on form data from anywhere, using an application they’re already familiar with.
- Security: Google Sheets offers industry standard security measures to protect your data, including access controls, activity logging, and data encryption.
- Integration with other Google tools: Google Sheets can be quickly integrated with other Google tools, such as Looker Studio (formerly Data Studio) and BigQuery, allowing you to create a seamless workflow for collecting and analyzing data.
- How do I enable this functionality?
- Feature Details
- Setting up OAuth
- Known Limitations
- Developer’s Notes
How do I enable this functionality?
After installing and activating GF Google Sheets, you can create Google Sheets feeds in any form. Use these feeds to pass data from your forms to Google Sheets.
The following instructions will show you how to authenticate using Google OAuth and create your first Google Sheets feed.
Generate and enter OAuth Client ID
Before you can send Gravity Forms to Google Sheets, you need to generate an OAuth Client ID in the Google Cloud Platform console.
|Enable Google Sheets API and Google Drive API. See detailed instructions.|
|Create and restrict OAuth Client ID. See detailed instructions.|
|Enter Client ID Credentials in Gravity Forms Settings and authenticate using your Google account.|
Create a Feed
Once authenticated, you can add Google Sheets feeds to any form where you want to pass values from Gravity Forms to a sheet.
|Add a new Google Sheets feed to your form.|
|Select an existing Sheet or create a new one.|
|Map your form’s fields to columns in the Sheet.|
Before GF Google Sheets can function, it needs to be configured. You can navigate to Google Sheets’s setting by going to Forms » Settings » Google Sheets.
Client ID and Client Secret
In order to authorize with the Google Drive and Google Sheets API, GF Google Sheets uses the Client ID and Client Secret to authenticate access.
See instructions below on how to set up OAuth Credentials.
Authorized Redirect URI
Google’s OAuth Authentication requires you to enter an Authorized Redirect URI when generating the Client ID and Client Secret. This is a unique URI for each site. You will be asked to enter this when setting up OAuth.
Google Sheet Settings
Use this setting to select an existing Google Sheet or create a new one. With newly created Google Sheets the column headings will match the Keys entered in the Column Mapping section.
Once a sheet is selected and mapped, an Insert Test Row button will appear in this section.
Use this section to map your form fields to columns in your Google Sheet. For a new sheet, you can write in any column names you’d like. For existing sheets, you can select existing columns or add additional columns by selecting “Add a Custom Key” from the drop down.
Update & Delete Rows
If you would like to keep your Google Sheet data synced to your entry data, enable the Update & Delete Rows option. When enabled, rows will be edited when entries are edited and deleted when entries are trashed or marked as spam. If an entry is restored from trash or “unspammed”, the entry row will be reinserted at the end of the sheet.
You may not want to send data from every entry to your Google Sheet. In this case, use conditional logic to filter which entries get sent or which entries do not. Add as many conditions as you need.
Post Payment Actions
GP Google Sheets integrates with Gravity Forms “delayed payment” system, allowing feeds to only be processed after a payment has been received. This means you can wait to insert the entry row into a Google Sheet until after the user has completed their payment.
Please note: This setting will appear on the feed settings for your payment add-on rather than the GP Google Sheets feed. Here is an example from the Stripe add-on.
Send Existing Entries to Google Sheets
Here are some ways that you can send existing form entries to Google Sheets:
Manually Process Feeds
Gravity Utility is a tool that adds a new Process Feeds bulk action on the entries list page.
To get started, first download and install the Gravity Utility plugin, which you can find at the bottom of this page.
Once Gravity Utility is installed, navigate to Gravity Forms › Settings › Utility. Make sure Manually process feeds is enabled:
To manually process existing entries, open the entries list view on the form that’s connected to your Google Sheet Feed.
On the left hand side, check each entry you want to process. When finished, click on the Bulk Actions dropdown at the top of the entry list, and choose Process Feeds.
Click Apply to start the process:
You’ll see a pop up modal where you can select the feeds you’d like to process. Choose the feed(s) you want to send your entries to and click Process Feeds:
Once finished, the selected entries should appear as new rows on your Google Sheet:
Automatically Process Feeds on Import
GravityImport allows you to automatically trigger the feed for each imported entry.
Entry Detail Meta Box
Use the Google Sheets meta box on the Entry Detail view for an overview of which Google Sheets feeds have been processed for the entry and which were not processed. You can see the time the entry row was inserted into a given sheet and, if the Update & Delete Rows option is enabled, when the entry row was last updated.
Please note, when reprocessing a feed, the feed’s conditional logic is ignored.
If there is an error processing a feed, GP Google Sheets will log that error as a note for the corresponding entry. If the error is due to a configuration issue, you can reprocess the feed via the Entry Detail Meta Box after correcting the configuration issue.
If you would like to be notified whenever an error occurs, we recommend setting up a notification using the “GP Google Sheets Error” notification event.
Setting up OAuth
Setting up Google OAuth is going to require some back-and-forth between the Perk Settings page and Google Cloud Platform. This authentication method may take up to 10 minutes of your time — but it’s worth it. It’s exceedingly secure and keeps all of your data under your control.
Start in WordPress, navigate to Forms » Settings » Google Sheets and copy the Authorized Redirect URI to your clipboard. You’ll need this later when you create OAuth credentials.
Select or Create Google Cloud Platform Project
Before enabling APIs and generating OAuth Credentials, you need to either select an existing Google Cloud Platform or create a new GCP project.
If creating a new project, we recommend scoping it to the specific site you are working on (rather than specific to GP Google Sheets). If you need to use any other Google services for that site, you can add them to the same project rather than creating a new project for each product.
After you’ve selected or created a Google Cloud Platform project, navigate to APIs & Services » Services and activate the following APIs:
Google Drive API
Google Sheets API
Create OAuth Credentials
With the APIs enabled, it’s now time to generate OAuth Credentials to use in the Client ID and Client Secret settings for GF Google Sheets.
First, Navigate to APIs & Services » Credentials. Then, click “+ Create Credentials” followed by “OAuth client ID”.
Setting up your OAuth consent screen
Google OAuth requires that you set up a consent screen. If you haven’t already done so, you will be prompted to set one up before you can create new credentials.
Set the User Type to Internal and fill in the required fields to proceed. You can skip the Scopes page, as GF Google Sheets will automatically handle this when authenticating.
On the next page, set the Application type to Web application and give it a name, such as “GF Google Sheets”.
Scroll down to Authorized redirect URIs and paste in the URI you copied from the Perk settings page.
Click Create to create a Client ID and Client Secret.
Authenticate with Google
Copy and paste the Client ID and Client Secret into the Perk Settings page. Click Connect to authenticate with your Google Account credentials. You will be asked to allow permissions for the app to access your Google Drive files.
Click Allow to be redirected back to your site, and you’re all set!
You can import parent and child forms to the same sheet by creating a feed for both the parent and child form. The parent form feed will be processed first and then the child form feed.
Populate Anything (Coming Soon)
We have plans to integrate GP Google Sheets with our popular Populate Anything plugin, allowing you to populate data directly from Google Sheets into your form.
For now, use our GPPA Google Sheets plugin to accomplish the same.
Can I rename or reorder columns?
Yes. GP Google Sheets supports reordering or renaming columns, even after they have been mapped. To re-order a column, all you need to do is drag and drop the column heading in your Google Sheet:
Once you’re finished making your changes in Google Sheets, the feed will automatically update to use the new column order and names the next time it gets processed. That’s it!
- Edits made to entries via Entry Blocks or GravityView are not processed by GP Google Sheets.
- GP Google Sheets always writes to the first sheet of the selected Google Sheet. It is not currently possible to select a specific sheet within the Google Sheet.
- Populating data from Google Sheets into your form is possible via Populate Anything. We have plans to integrate these plugins for efficiency and ease of implementation.
- GP Google Sheets requires a header for each column that is mapped, and any column that comes before a mapped column. Even a character as simple as
-works as a header.
- Advanced: If a column comes after all mapped columns, a header is not required.
If any of these known limitations impact you, we’d love to hear from you. While some limitations are beyond our control, understanding how these limitations impact you is incredibly important in how we prioritize ongoing product development.
- When testing locally, your local site must use a valid top-level domain. We use
.lolin our own local testing for fun. 😄
You can use the free Loco Translate plugin to create translations for any of our Perks. If you’ve never used Loco translate before, here’s a tutorial written for beginners.