Lead Capture and CRM Sync

Intermediate 🕐 14 min Lesson 2 of 12
What you'll learn
  • Build a webhook-triggered lead capture workflow that ends with a CRM contact record
  • Use n8n Form Trigger as an alternative when no external form tool is available
  • Handle duplicate contacts using CRM upsert logic rather than always creating new records
  • Add an error workflow to prevent leads from being silently lost when the CRM API fails

The Lead Capture Archetype

Every business collects leads somewhere — a website contact form, a landing page, an event registration, or a direct email. The problem is what happens next: someone has to manually copy the data into a CRM, notify the right salesperson, and follow up. This is a textbook automation candidate: high-frequency, rule-based, and time-sensitive. The faster a lead is followed up, the higher the conversion rate.

Workflow Architecture

This workflow captures a lead from any form submission and pushes it to your CRM automatically:

  1. Webhook Trigger — receives the form submission payload. Most website builders (Webflow, WordPress, SquareSpace) and form tools (Typeform, Tally, Google Forms) can POST to a webhook URL.
  2. Set node — extract and normalise the fields you need: name, email, company, message.
  3. HTTP Request node (optional) — call a data enrichment API to add company size, industry, LinkedIn URL, and tech stack from the lead's email domain. Hunter.io and Clearbit both offer this.
  4. HubSpot or Airtable node — create a new contact record with all enriched fields. Configure the node to detect and update duplicates rather than creating multiple records for the same email.
  5. Slack node — post a notification to your sales channel with the lead's details and a direct link to the CRM record.

Using n8n Form Trigger Instead of Webhooks

If you do not have an existing form on your site, use the n8n Form Trigger node. It generates a hosted form page with a production URL you can share or embed. No third-party form tool required — the form submission triggers the workflow directly.

Handling Duplicate Contacts

Before creating a CRM record, add a step to check if the contact already exists. Most CRM nodes (HubSpot, Salesforce) have a search or upsert mode — they update an existing record if the email matches, and create a new one if it does not. If your CRM does not have built-in upsert, use an HTTP Request node to call the CRM API directly with the appropriate logic.

Error Handling

Add an error workflow to this automation — if the CRM API returns an error, the lead must not be silently lost. Connect an Error Trigger workflow that catches failures and sends a fallback Slack alert or email with the raw lead data so someone can manually create the record. This is the safety net every production automation needs.

What to Measure

Once the workflow is live, check the n8n execution log daily for the first week. Track: total leads processed, any execution errors, and the average time from form submission to CRM record creation. A working automation should process most leads in under 10 seconds. Anything slower points to a slow API call worth investigating.

Key takeaways
  • Lead capture is a high-frequency, rule-based sync archetype — a strong first automation to build
  • n8n Form Trigger generates a hosted form page without any third-party form tool
  • CRM upsert (update-or-create) prevents duplicate contact records from the same email address
  • Every production lead automation needs an error workflow — silently lost leads are a real business cost