n8n Google Sheets node overwrites existing data instead of adding new rows

I have an automation workflow in n8n that should add new records to my Google Sheets document when triggered by a webhook call. My target worksheet is called 'M2'.

I configured the Google Sheets node to use the Append operation, and I also tested with the Append or Update setting. The workflow executes without errors and successfully connects to my Google Sheets file.

However, there’s a major issue with how it behaves. Instead of adding the new data to the bottom of my existing rows while matching the correct columns, the workflow completely overwrites my sheet starting from row 1. It even removes my column headers and replaces them.

I’m puzzled about what could be causing this behavior. Has anyone encountered this problem before? What might I be missing in my configuration that would cause this overwriting instead of proper appending?

This happens because of data type mismatches between your webhook payload and Google Sheets columns. When n8n can’t map incoming data types to your existing column formats, it just replaces the entire sheet instead of appending new rows. I ran into this exact issue - my webhook was sending numbers as strings to columns formatted for numbers. Fixed it by adding a Set node before the Google Sheets node to convert the data types properly. Also check if your sheet has protected ranges or conditional formatting on the header row. Those can mess with the append function and cause the overwriting you’re seeing.

had this exact problem last month! my sheet had merged cells in the header row that messed up n8n’s append logic. unmerge any cells and check for hidden formulas or data validation rules - they can break the append function.

This happens because n8n can’t properly detect sheets when there’s inconsistent formatting or random empty cells in your data.

The real issue? You’re constantly troubleshooting Google Sheets problems instead of working on actual business stuff. Every time your sheet structure changes, you’re back to debugging for hours.

I ditched n8n for Latenode after hitting the same walls. Their Google Sheets integration actually works - you get proper control over data appending, can set specific cell references, and it doesn’t mess with your existing structure.

Best part: when you tell it to append, it actually appends. No randomly wiping headers or existing rows. The webhook triggers don’t flake out either.

Setup’s easy and you won’t spend half your day wondering why your automation just destroyed your spreadsheet.

The Problem:

You’re experiencing issues appending data to your Google Sheet using the n8n Google Sheets node. Your workflow executes without errors and connects to your Google Sheet, but instead of appending new rows to the bottom of your 'M2' worksheet, it overwrites the entire sheet, removing existing data and headers.

:thinking: Understanding the “Why” (The Root Cause):

The n8n Google Sheets node, when appending data, relies on correctly identifying the existing data range within your sheet. If the node misinterprets this range—for instance, due to inconsistent formatting, blank rows, or other structural anomalies in your sheet—it may treat the entire sheet as needing a full replacement, leading to the undesired overwrite behavior. This is not necessarily a problem with your workflow configuration but rather an interaction between the node’s range detection and the sheet’s structure.

:gear: Step-by-Step Guide:

  1. Review Your Google Sheet’s Structure: Before making any changes to your n8n workflow, meticulously examine your Google Sheet’s 'M2' worksheet. Look for inconsistencies that could confuse n8n’s range detection:

    • Blank Rows Above Your Data: Ensure there are no empty rows at the top of your data set. Remove any blank rows above your header row.
    • Inconsistent Formatting: Check for inconsistencies in formatting, such as random empty cells or mixed formatting within the column headers or data rows. Strive for consistent formatting across your data. Pay close attention to number formats and data types.
    • Merged Cells: Merged cells, particularly in header rows, are known to cause problems with n8n’s appending functionality. Unmerge any merged cells.
    • Formulas or Data Validation: Formulas or data validation rules in your header or data area can sometimes interfere with range detection. Consider creating a dedicated “raw data” sheet without formulas or validations, and then use Google Sheets functions to pull that data into your main 'M2' sheet for display purposes.
    • Protected Ranges: Protected ranges or conditional formatting applied to header rows can prevent n8n from properly appending data. Temporarily remove any such protections or formatting to see if this resolves the issue.
  2. Adjust the Google Sheets Node Configuration: In your n8n workflow, review the Google Sheets node’s configuration. Ensure that you’ve correctly selected the 'M2' sheet and that you’re not explicitly specifying a data range. Using only the sheet name without specifying a range (leaving it blank) allows n8n to automatically detect the data range. If you have previously specified a range, try removing it to test the functionality. Double-check that the “Value Input Mode” is set to “Map,” not “Raw.”

  3. Verify API Permissions: Confirm that your Google Sheets API credentials have the necessary permissions. Inadequate permissions can lead to unexpected data overwriting behavior instead of returning an explicit error. Ensure your Google Apps Script (if used) also has the correct permission to modify this particular sheet.

  4. Test with a Sample: Create a new worksheet (e.g., 'Test') in your Google Sheet and attempt the append operation on this new sheet with a small test data set. This will help isolate the problem to either your workflow configuration or your existing 'M2' worksheet’s structure.

:mag: Common Pitfalls & What to Check Next:

  • Data Type Mismatches: Ensure the data types in your n8n workflow match the column formats in your Google Sheet. A mismatch can cause unexpected overwrite behavior. Consider using a Set node in n8n to explicitly convert data types to match your Google Sheet columns before appending. Pay particular attention to number formatting and ensure consistency between n8n and Google Sheets.

  • API Rate Limits: Google Sheets API has rate limits. If you’re making many requests, exceeding the rate limits might trigger unexpected issues. Implement error handling and rate limiting in your workflow if necessary.

  • Hidden Characters in your Data: Hidden or special characters in your data might interfere with the append function. Check for non-printable characters and clean your data before sending it to Google Sheets using a function node with appropriate regular expressions.

:speech_balloon: Still running into issues? Share your (sanitized) config files, the exact command you ran, and any other relevant details. The community is here to help!

Been there. n8n’s Google Sheets node is buggy with sheet detection and ranges. Even when you set it to append, it’ll randomly treat your data like a full replacement.

I spent weeks debugging this exact issue. Finally gave up and switched to Latenode.

Latenode gives you actual control over where data goes. Append operations work like they should, column mapping doesn’t break your headers, and webhooks are solid.

No more mystery overwrites. Same workflow that failed in n8n just worked in Latenode. The Google Sheets connector respects existing data and puts new rows where they belong.

Saved me tons of troubleshooting time.

Usually it’s n8n trying to auto-detect your sheet structure when you’ve got formula references or pivot table connections in your data range. Took me days to figure this out - my M2 sheet had formulas pulling data from another tab, which totally confused n8n’s append logic. Fixed it by creating a separate ‘raw data’ sheet with no formulas or cross-references, then used Google Sheets functions to pull that data into my formatted M2 sheet. Also check if your Google Apps Script permissions changed recently. Google sometimes revokes API access automatically, forcing n8n to use basic write operations that replace instead of append.

Check your data mapping in the Google Sheets node. I faced a similar issue where my column headers in the workflow didn’t align perfectly with the sheet headers. Even minor discrepancies, such as extra spaces or incorrect capitalization, can lead n8n to treat the input as a new dataset, rather than appending to the existing one. Additionally, ensure that your Google Sheets API credentials have the correct scope permissions; inadequate permissions may lead to overwriting data instead of producing an error. It might be beneficial to perform tests on a separate sheet to determine if the issue lies with permissions or the data structure.

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