Google Sheets Append or Update Row fails when documentId is dynamic (columns exist at runtime but not in setup)

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.

  1. Master workflow

    • Copies a Google Sheets template using Google Drive

    • Extracts the new spreadsheet ID

    • Passes sheetId into a sub-workflow using Execute Workflow

Sub-workflow

  • Receives sheetId from 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:

  • sheetId is 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.

I’m not sure if this will help you to achieve your final goal but you can pin data to the “When executed" by Another Workflow” Trigger and use it to provide the documentId and sheetId of an existing sheet template. Then you should be able to configure your node.

Maybe you can share code or screenshots of just the relevant nodes here to receive more detailed help?