I’m running into an issue with n8n + Google Sheets and I’m hoping someone here has solved this before.
Setup
-
Incoming webhook receives ~100 POST requests
-
Requests aren’t perfectly simultaneous, but they arrive very quickly and do overlap
-
Flow:
-
Webhook receives request
-
HMAC hash calculated and validated
-
If valid → Google Sheets “Append row” node
-
If invalid → return 403
-
From n8n’s execution history, all ~100 webhook executions complete successfully. No errors, no retries, no failures.
The problem
When I check the Google Sheet, I consistently end up with far fewer rows than executions:
-
Sometimes it stops at row ~56
-
Other times ~63
-
It’s not consistent, but it’s always well short of 100
No rows look corrupted — they’re just missing entirely.
What I think is happening
My hunch is that multiple executions are trying to append at the same time, and the Google Sheets node is effectively overwriting or colliding internally, even though it’s using “Append row”.
I assumed the whole point of append was to guarantee “add only, never overwrite”, but the behavior doesn’t match that expectation under load.
I’ve seen similar questions asked before, but I haven’t found a solid, confirmed solution.
What I’ve already considered / tried
-
There are no errors reported by n8n
-
Each execution reaches the Google Sheets node
-
I looked for a way to:
-
Limit the webhook to one active execution at a time, or
-
Queue incoming requests
-
-
As far as I can tell, n8n doesn’t currently support serializing webhook executions like that
Please share your workflow
Information on your n8n setup
- n8n version: 2.4.6
- Running n8n via: Cloud
