Documentation Index
Fetch the complete documentation index at: https://docs.elasticfunnels.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Google Sheets integration gives ElasticFunnels automations full read/write access to a spreadsheet. Use it for ad-hoc lead tracking, data offload to ops teams who live in spreadsheets, or as a temporary store before more permanent reporting is built.What you can do
| Action | What it does |
|---|---|
| Append row | Adds a row to the bottom of a sheet |
| Batch update | Updates multiple cells in a single API call |
| Read values | Reads a range of cells (single sheet or multiple) |
| Find row | Looks up a row by a search value, returns the row data and index |
| Update row by search | Updates a row matched by a search value (upsert-style) |
| Create sheet | Adds a new tab to an existing spreadsheet |
| Clear range | Empties a range without removing formatting |
Setup
You can authenticate two ways. Pick whichever matches how your team manages Google access.Option A — OAuth (one user)
Connect your Google account
Go to Integrations → Storage → Google Sheets → Connect with Google. EF redirects you to Google’s OAuth screen.
Grant Sheets access
Tick the See, edit, create, and delete your spreadsheets scope. EF stores an OAuth refresh token so it can keep accessing your sheets without re-prompting you.
Option B — Service account (recommended for teams)
Create a service account
In the Google Cloud Console, create a project, enable the Google Sheets API, and create a service account with no roles. Generate a JSON key and download it.
Share your spreadsheet with the service account
Open each spreadsheet you want EF to access and Share it with the service account’s email (looks like
xxx@xxx.iam.gserviceaccount.com) as Editor.Patterns
Lead handoff to sales
Trigger:Form: submitted → Action: Google Sheets: Append row to a “New Leads” tab with email, name, phone, source, submitted_at. The sales team works the sheet directly without logging into EF.
Order export for fulfillment ops
Trigger:Conversion: purchase → Action: Google Sheets: Append row to an “Orders” tab with one row per line item.
Inventory check before purchase
Trigger:Form: submitted (pre-checkout) → Action: Google Sheets: Find row matching the SKU on an “Inventory” tab → Condition: available > 0 → continue or redirect to a backorder page.
Limits
- 300 requests / minute per integration (Google’s quota; throttle is built-in).
- 5 million cells per spreadsheet (Google’s hard limit). Move to a database before you get close.
- Cell values are coerced to strings on write unless the sheet column is pre-formatted as date / number / currency.
Troubleshooting
403 forbidden when writing
403 forbidden when writing
The service account hasn’t been added to the spreadsheet, or the OAuth account no longer has access. Re-share the file or re-authenticate.
429 rate limited
429 rate limited
You’re sending more than 300 requests / minute. Spread writes out (e.g. batch them with
Batch update instead of one append per row), or split traffic across multiple spreadsheets.Wrong cell type after append
Wrong cell type after append
Pre-format the destination column in the spreadsheet (Format → Number) so Google Sheets knows to interpret the value correctly.