workflow recipe

n8n Form Lead to CRM Workflow With Validation

Use Form Trigger to collect a lead, IF to validate required fields, Set to normalize the CRM payload, and HTTP Request or a CRM node to create or update the record.

Independent third-party notes. n8n is a trademark of its owner and is referenced only for compatibility and troubleshooting context.

Quick Answer

Use Form Trigger to collect a lead, IF to validate required fields, Set to normalize the CRM payload, and HTTP Request or a CRM node to create or update the record.

Problem Pattern

Form-to-CRM workflows fail when forms send inconsistent field names, missing email addresses, duplicate leads, or raw payloads that the CRM API rejects.

Key Facts

Entry point
Form Trigger can collect structured form submissions inside n8n.
Validation need
Email, source, consent, and required custom fields should be checked before a CRM write.
Payload shaping
Set makes the CRM request body stable and readable.
CRM option
Use a native app node when available, or HTTP Request for a custom CRM API.

Recommended Steps

  1. Create a Form Trigger with only the fields the CRM actually needs.
  2. Add IF checks for required fields such as email, name, consent, and source.
  3. Use Set to normalize field names and default values.
  4. Send the normalized payload to the CRM with a native node or HTTP Request.
  5. Return or send an internal notification only after the CRM write succeeds.

Verification

  • A valid form submission creates or updates one CRM record.
  • A submission without email is rejected or routed for review.
  • The CRM payload field names match the CRM schema.
  • A duplicate submission does not create an unwanted duplicate contact.

Warnings

  • Do not send leads to a CRM without validating consent and required fields.
  • Duplicate lead handling belongs in the workflow or CRM settings, not in a spreadsheet after the fact.
  • HTTP Request errors can come from CRM schema mismatches, not only credentials.

Best For

  • Simple website lead capture
  • Internal request forms
  • CRM systems with a clear API or native n8n node

Not For

  • Complex attribution pipelines without deduplication and consent handling
  • Regulated lead capture without legal review

Common Mistakes

  • Passing raw form field names directly into the CRM.
  • Skipping consent and source checks.
  • Creating a new contact every time instead of checking for an existing email.
  • Hiding CRM API errors behind a generic success response.

Examples

Validated lead flow Use HTTP Request when the CRM does not have a dedicated node.
Form Trigger: name, email, company, consent, source
IF: email exists and consent == true
Set: crm_email, crm_name, crm_company, lead_source
HTTP Request: create or update CRM contact
Slack: notify sales when qualified

FAQ

Should I use HTTP Request or a CRM app node?

Use a native node when it supports the exact operation. Use HTTP Request when the CRM API or endpoint is custom.

Where should duplicate checks happen?

Prefer checking by email before creating a contact, or use the CRM's upsert behavior if it supports it.

Sources