{"product_id":"webhook-lead-intake-deduplication-with-n8n-data-table","title":"Webhook Lead Intake \u0026 Deduplication with n8n Data Table","description":"\u003ch3\u003eStop duplicate leads at the source—intake once, store uniquely in an n8n Data Table\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow receives lead submissions through a webhook, validates and normalizes the incoming data, then saves only \u003cstrong\u003eunique\u003c\/strong\u003e leads into an \u003cstrong\u003en8n Data Table\u003c\/strong\u003e using idempotency keys and payload hashing to prevent duplicates and catch conflicting replays.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReceives POST webhook requests\u003c\/strong\u003e containing lead details plus an \u003cstrong\u003eIdempotency-Key\u003c\/strong\u003e header (or \u003cstrong\u003eX-Idempotency-Key\u003c\/strong\u003e).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates required fields\u003c\/strong\u003e, including checking \u003cstrong\u003eemail format\u003c\/strong\u003e and ensuring an \u003cstrong\u003eidempotency key\u003c\/strong\u003e is present. Invalid requests are rejected with a \u003cstrong\u003e400\u003c\/strong\u003e response.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNormalizes the lead payload\u003c\/strong\u003e and generates a \u003cstrong\u003epayload fingerprint\u003c\/strong\u003e (hash) for replay detection.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCreates or reuses\u003c\/strong\u003e an n8n Data Table named \u003cstrong\u003elead_intake_template\u003c\/strong\u003e and looks up existing rows by the idempotency key.\u003c\/li\u003e\n  \u003cli\u003e\n    \u003cstrong\u003eHandles duplicates and conflicts\u003c\/strong\u003e:\n    \u003cul\u003e\n      \u003cli\u003eIf the idempotency key exists with a \u003cem\u003edifferent\u003c\/em\u003e payload hash, it returns \u003cstrong\u003e409 Conflict\u003c\/strong\u003e (same key, different data).\u003c\/li\u003e\n      \u003cli\u003eIf the idempotency key exists with the \u003cem\u003esame\u003c\/em\u003e payload hash, it returns \u003cstrong\u003e200\u003c\/strong\u003e and indicates the submission is a duplicate, including the existing lead ID.\u003c\/li\u003e\n      \u003cli\u003eIf no match exists, it inserts a new row with status \u003cstrong\u003epending\u003c\/strong\u003e and returns \u003cstrong\u003e202\u003c\/strong\u003e with the new lead ID.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eForm submissions that may be retried by a frontend or third-party service (deduplicate safely).\u003c\/li\u003e\n  \u003cli\u003eSaaS lead intake where replays can occur during network retries—detect and respond with 409 on conflicting data.\u003c\/li\u003e\n  \u003cli\u003eBackend systems that post leads multiple times—ensure your CRM pipeline only processes truly new leads.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWebhook\u003c\/strong\u003e trigger to receive lead submissions.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eif\u003c\/strong\u003e logic for required-field and idempotency decisions.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ecode\u003c\/strong\u003e node for payload normalization and response routing.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ecrypto\u003c\/strong\u003e to hash the normalized payload for replay detection.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003edata table\u003c\/strong\u003e node to store and look up leads in \u003cstrong\u003elead_intake_template\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003eIncludes \u003cstrong\u003esticky note\u003c\/strong\u003e guidance for setup and webhook usage.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46010435043507,"sku":"N8N-19526","price":33.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/8C6NEuOM3VY-awmf5wvzQ_xfVaNCt6.png?v=1789290161","url":"https:\/\/buyflowscripts.com\/products\/webhook-lead-intake-deduplication-with-n8n-data-table","provider":"N8N Commerce","version":"1.0","type":"link"}