Hey sorry, new here and don’t have any coding experience but been stuck on the same issue now for three days. I’m sure it’s just a simple fix but driving me crazy.
Describe the problem/error/question
I’m running into a Google Sheets limitation when using a dynamic spreadsheet ID.
I have a master workflow that copies a Google Sheets template, producing a new spreadsheet ID at runtime. That sheetId is passed into a sub-workflow, where I attempt to write structured rows using Google Sheets → Append or Update Row.
The issue is that although the sheet and columns clearly exist at runtime (visible in the execution data), the Google Sheets node fails during setup/validation because it cannot load the column schema when documentId is an expression.
This creates a chicken-and-egg problem where the workflow cannot be configured, even though it would succeed at execution time.
What is the error message (if any)?
Depending on configuration state, I see one or both of the following:
-
“No columns found in Google Sheet. All rows will be appended”
-
“The ‘Column to Match On’ parameter is required”
The second error prevents execution entirely, even though I am not actually trying to update existing rows — just append structured rows.
Please share your workflow
Note: This is a two-workflow setup.
-
Master workflow
-
Copies a Google Sheets template using Google Drive
-
Extracts the new spreadsheet ID
-
Passes
sheetIdinto a sub-workflow using Execute Workflow
-
Sub-workflow
-
Receives
sheetIdfrom the trigger -
Processes data
-
Attempts to write rows using Google Sheets → Append or Update Row
Code was too big too share here for two workflows, Master & sub workflow
Share the output returned by the last node
The workflow reaches the Google Sheets node successfully.
In the execution view:
-
sheetIdis present and correct -
The target sheet exists
-
Parsed row data is present and correctly structured
The failure occurs before runtime execution, during node validation, due to missing column schema at setup time.
Information on your n8n setup
- n8n version: 1.122.4 (Cloud)
- Database: n8n Cloud default
- n8n EXECUTIONS_PROCESS setting: Cloud default
- Running n8n via: n8n Cloud
- Operating system: macOS (local machine), execution in n8n Cloud
Is there a supported or recommended pattern for:
-
Writing structured rows to a dynamically created Google Sheet
-
Where the spreadsheet ID is only known at runtime
-
Without hardcoding a document ID
-
And without falling back to fully raw “append values” mode
Or is this currently a known limitation of the Google Sheets node requiring schema discovery at design time?
Thanks in advance — happy to adjust approach if there’s a canonical workaround.