N8N + GOOGLE SHEETS TROUBLESHOOTING

Why does n8n keep adding duplicate rows?

Compare an exported Google Sheet and your incoming n8n data without connecting accounts. Find mismatched phone formats, repeated values, blank keys and ambiguous rows before your next run.

The surrounding page contains advertising; this separate editor frame has no third-party ad code.

How to diagnose an Append or Update Row mismatch

  1. Export existing rows from the Google Sheet as CSV, or paste a JSON array from a read-only export. Do not use the live spreadsheet URL: this tool never connects to Google.
  2. Paste the incoming items from your n8n workflow as CSV or JSON. Use the same column that your Append or Update Row node is configured to match.
  3. Choose the existing match column and incoming match field. Pick Phone, Email, Text or Exact comparison, then run the local diagnosis.
  4. Review exact matches, normalization-only matches, duplicates already in the sheet, repeated items in the same batch, empty keys and genuinely new keys.
  5. Download the diagnostic CSV and update the real n8n workflow only after you inspect the examples and confirm your sheet’s actual match column and formatting.

What can this diagnostic actually prove?

This browser tool compares two snapshots, not the Google Sheets API or your current n8n execution. It can prove that two exported values are character-for-character identical, or that a conservative normalization rule makes their phone or email keys equal. It cannot prove that n8n will update rather than append: node settings, data types, expression mapping and the sheet state still matter.

For phone comparisons, the diagnostic removes spaces, dashes, parentheses and the plus sign only for the comparison key. It keeps country code digits and leading zeros. It intentionally does not assume that +82 10-1234-5678 is the same number as 010-1234-5678, because that requires country-aware telephone parsing.

Match the actual Google Sheets column, not just similar-looking labels

According to n8n’s official documentation, Append or Update Row updates an existing row only if its matching entry is found; otherwise it appends a new row. In automatic mapping mode, incoming JSON field names must match Google Sheets column headers. Check “Column to match on”, text-vs-number types, exact header spelling, and whether your incoming expression points to the intended field.

If formatting differs, create a normalized helper column in BOTH the Sheet and incoming n8n data. Then use that helper as the matching column. Matching only one side after normalization does not make the existing Sheet column values change. If a sheet has several rows with the same normalized key, resolve that ambiguity first rather than risk updating an unexpected row.

A safer checklist before enabling your workflow

Back up the Sheet. Review any blank match keys; an empty phone number should not become a shared identity for unrelated contacts. Remove repeated incoming keys before the Google Sheets operation if you want one update per record. Test one known existing row and one genuinely new row rather than submitting an entire export at once.

This tool does not send your phone numbers, emails or CRM data to a server. Inputs are parsed in the browser and diagnostic text remains on your device. The surrounding page uses clearly labeled advertisements, but the separate editor frame does not load advertising scripts.

Frequently asked questions

Can it fix my live n8n workflow?

No. It identifies likely data mismatches and exports a report. You must update n8n or Sheets yourself.

Does it handle real phone number country conversions?

No. It removes punctuation for comparison but preserves country code digits and leading zeros, without pretending to implement E.164.

Why is an exact match not enough?

Your n8n node can still append when the wrong match column is chosen, mapping fails, or the Sheet contains a different value type.

Will this upload customer records?

No. The editor processes two local CSV/JSON snapshots in the browser. The page never requests a Sheets or n8n OAuth token.

More free CSV / JSON tools

CSV duplicate remover · JSON to CSV · Email duplicates guide

Back to all tools

n8n official Google Sheets operations documentation