Your n8n webhook returns 200, but the data is not saved.
The sender reports a successful request, while the database, sheet or store remains unchanged. Nothing warned you because HTTP 200 can mean only that n8n accepted the webhook, not that every later node completed a write.
The usual causes are the Webhook node's Immediately response mode, which sends 200 before downstream nodes finish; using the test URL or an inactive workflow instead of the production URL; an IF, Switch or filter branch producing zero items; and a database node with Continue On Fail enabled, invalid field expressions or rejected required columns.
Activate the workflow and send requests to its production webhook URL. Change the Webhook response mode to Using Respond to Webhook, then place a Respond to Webhook node after the database write so success is returned only after that node runs. Remove Continue On Fail while debugging, inspect the execution input and output for every branch, confirm expressions resolve to values, and check the database node's operation, required columns, credentials and unique-key or upsert settings.
Send one known payload, confirm the execution reaches the write node with the expected values, and return success only after the new record appears in the destination.
Not sure if this is the only leak?
Paste your exported workflow into CatchLeak for a free 30-second silent-failure audit.
Scan my workflow free