Hello Retool Support,
We’re encountering persistent problems while integrating a Retool form with Google Sheets using the official connector. Over the course of two full days of work, we’ve run into a set of issues that make the integration effectively unusable in a production-grade environment.
1. What we tried to do
We created a simple form (formularz_dodaj_pojazd
) to submit vehicle data into a Google Sheet with 6 columns:
-
Vehicle Name
-
Registration Number
-
Type
-
Status
-
Ownership
-
User
We followed the documented steps: authenticated via OAuth 2.0, created a query with "Append data to sheet" action, selected the correct spreadsheet and sheet name, and bound the form inputs via {{ formularz_dodaj_pojazd.data.* }}
.
2. Symptoms and observed issues
Despite following best practices, we observed erratic behavior including:
-
Query appears to run successfully (
200 OK
) but the sheet remains unchanged. -
"Unable to parse range" errors when the sheet name is correct and the range (e.g.,
Sheet1!A:F
) exists. -
Silent failure when form is submitted: fields are reset, no error is shown, but no data is written.
-
Google Sheet columns are present and correctly named, yet Retool reports errors like:
column "0" not found. Expected column name to be one of: "Vehicle Name", "Registration Number", ...
- Even after recreating the sheet from scratch, with headers typed manually and format cleared, the issue persisted.
We tried multiple permutations: renaming sheets, clearing formatting, removing hidden characters, reauthenticating via OAuth, switching accounts, changing ranges — none helped.
3. What we confirmed
We are confident that the source of the problem is not user error, because:
-
The same payload works via the Google Sheets API using Postman (after overcoming OAuth and spreadsheet access hurdles).
-
The spreadsheet ID and sheet name used in the query are correct, and the sheet is manually verified to contain valid column headers.
-
When trying the same logic with Retool Database (internal PostgreSQL), the form works instantly — data is inserted correctly using the same input binding structure.
These points lead us to believe the issue lies in one (or more) of the following:
-
How Retool internally parses sheet structure via the connector.
-
How it interprets column headers when appending data.
-
Caching or stale references to old sheet schemas even after changes or full reauthentication.
4. What we need from you
We are requesting your support team to help us identify the root cause or confirm whether this behavior is a known limitation of the Google Sheets connector.
Specifically, we would like you to:
-
Verify if the “column '0' not found” error is caused by internal caching or formatting that escapes detection in the UI.
-
Clarify how exactly Retool determines and validates column headers in Google Sheets.
-
Confirm if manual formatting (e.g., bold headers, merged cells, hidden rows) affects the connector’s ability to parse headers.
-
Let us know whether the connector supports data submission to freshly created sheets or only sheets that existed at the time of resource authorization.
If needed, we can provide a video, reproducible example app, or access to a sample sheet showing the error.
5. Why this matters
This integration is a critical component of a humanitarian operations system deployed in low-connectivity field environments. We cannot rely on unstable behavior, silent failures, or hidden assumptions about data sources. While we have temporarily migrated to Retool Database as a fallback, we would prefer to maintain Google Sheets compatibility due to ecosystem alignment.
We appreciate your time and support. Please let us know how best to proceed.
Best regards,
Hubert