Create Sheets and update Columns

Describe the problem/error/question

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?

Hi @Tiago_Moreira

hope you’re doing well!

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
  1. Create the spreadsheet using Google Sheets → Create (as you’re already doing).
  2. Right after that, send one item with the keys you want as column names—use a Set node, for example:

json

{
  "Name": "John",
  "Email": "[email protected]",
  "Company": "ACME"
}
  1. Use a Google Sheets node with:
  • Operation: Append Row (or Append or Update)
  • Mapping Column Mode = Map Automatically

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.

I recommend checking the full API documentation here: https://developers.google.com/workspace/sheets/api/reference/rest

2 Likes

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;.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.