{"product_id":"validate-web-form-leads-sync-to-hubspot-slack-via-webhook","title":"Validate Web Form Leads \u0026 Sync to HubSpot + Slack via Webhook","description":"\u003ch3\u003eValidate form leads, sync to HubSpot, and alert Slack—automatically\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow receives your web form submissions via webhook, validates and normalizes lead fields, upserts matching contacts into \u003cstrong\u003eHubSpot\u003c\/strong\u003e by email, and posts \u003cstrong\u003eSlack\u003c\/strong\u003e notifications for both successful syncs and submissions that need manual review.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReceives form data via webhook:\u003c\/strong\u003e Listens for a \u003ccode\u003ePOST\u003c\/code\u003e request to an n8n webhook endpoint from your form tool.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNormalizes incoming fields:\u003c\/strong\u003e Trims whitespace, lowercases the email address, and maps the payload into consistent lead fields.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates required inputs:\u003c\/strong\u003e Ensures a name is present and verifies the email using a basic email regex pattern.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eUpserts into HubSpot (by email):\u003c\/strong\u003e If valid, the workflow upserts a contact in HubSpot using the contacts batch upsert endpoint keyed by \u003cstrong\u003eemail\u003c\/strong\u003e, passing \u003cstrong\u003ename\u003c\/strong\u003e, \u003cstrong\u003ecompany\u003c\/strong\u003e, and \u003cstrong\u003emessage\u003c\/strong\u003e as contact properties.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNotifies Slack:\u003c\/strong\u003e Posts a confirmation message to a target Slack channel when the lead is synced successfully.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRoutes invalid submissions for review:\u003c\/strong\u003e If validation fails, it skips HubSpot and posts the submission details to a separate Slack review channel.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eCapture demo request and contact form leads directly from a web form into HubSpot.\u003c\/li\u003e\n  \u003cli\u003ePrevent bad data from polluting HubSpot by validating name and email before syncing.\u003c\/li\u003e\n  \u003cli\u003eKeep your team informed in Slack with a clear distinction between synced leads and leads requiring manual review.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n nodes \/ tools:\u003c\/strong\u003e \u003ccode\u003ewebhook\u003c\/code\u003e, \u003ccode\u003eif\u003c\/code\u003e, \u003ccode\u003eset\u003c\/code\u003e, \u003ccode\u003ehttp request\u003c\/code\u003e, \u003ccode\u003eslack\u003c\/code\u003e, plus a \u003ccode\u003esticky note\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eHubSpot integration:\u003c\/strong\u003e Uses a HubSpot private app with \u003ccode\u003ecrm.objects.contacts.write\u003c\/code\u003e scope and authenticates via an HTTP Header Auth credential: \u003ccode\u003eAuthorization: Bearer \u0026lt;token\u0026gt;\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSlack integration:\u003c\/strong\u003e Uses a Slack credential and sends messages to configured channels (e.g., \u003ccode\u003enew-leads\u003c\/code\u003e and \u003ccode\u003eleads-review\u003c\/code\u003e).\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eSetup (quick)\u003c\/h3\u003e\n\u003cp\u003eCopy the webhook production URL into your form tool and send \u003ccode\u003ename\u003c\/code\u003e, \u003ccode\u003eemail\u003c\/code\u003e, \u003ccode\u003ecompany\u003c\/code\u003e, and \u003ccode\u003emessage\u003c\/code\u003e in the request body, then configure the HubSpot token and Slack channels.\u003c\/p\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46190228570291,"sku":"N8N-20640","price":56.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/0jK_snZebirmoQRBjQbPm_K459qHSz.png?v=1791450562","url":"https:\/\/buyflowscripts.com\/products\/validate-web-form-leads-sync-to-hubspot-slack-via-webhook","provider":"N8N Commerce","version":"1.0","type":"link"}