What I want to do: When creating a spreadsheet in Google Sheets, I need to put the name of each column in the first row, since Google Sheets nodes work based on column names. However, when I create the spreadsheet, it comes out “raw,” and consequently, I can’t update the columns. I’m not obligated to do anything beyond the initial creation. What should I do?
This is expected behavior with Google Sheets + n8n. A newly created spreadsheet has no headers, and the Google Sheets node works based on column names.
The correct and recommended approach is to let n8n create the headers automatically on the first append.
Recommended Steps
Create the spreadsheet using Google Sheets → Create (as you’re already doing).
Right after that, send one item with the keys you want as column names—use a Set node, for example:
n8n automatically detects that the sheet is empty, creates the header row from your JSON keys, and writes your first data row—all in one go No manual work needed. This is the way it’s designed to work.
Hello Thiago,
I’m also facing this issue. The solution I found is to use the HTTP Request Node; it offers more functionality than the built-in node. Like create a new sheet in the spreadsheet with a defined criteria (from a template) or change its sheet name.
Hi @Tiago_Moreira Using Google sheets node in the workflow is limited to columns, like the work around i use is to give an AI agent a spreadsheet to consider a row and then update the columns according to that data or something more specific, that worked for me and it is reliable , hope this helps! Using APIs is another option but can be unstable;.