AutomateSmith

Menu

Automation Tutorials

How to automate lead capture from website forms to a CRM with AI

A practical pipeline from a website form to a CRM: consent, spam, classification, a draft reply, and a person who still owns the lead.

By Sandun BalasooriyaLast updated 6 min read

This article contains affiliate links. If you buy through them, AutomateSmith may earn a commission at no extra cost to you. Opinions are Sandun Balasooriya's. Read the affiliate disclosure.

On this page
  1. The pipeline, in one pass
  2. Design the form before the workflow
  3. Choose where the record lives
  4. The AI step, kept small
  5. Wire it in the tool you chose
  6. What “done” looks like
  7. Frequently asked questions

A form that lands in a single inbox feels fine until the inbox is also full of receipts. The lead is not captured when the email arrives. It is captured when someone can see who it was, what they wanted, and whether anyone replied. Automation can do the filing. It should not do the judgement on day one.

This is the pipeline I would build for a small UK or US business. It works in Zapier, Make or n8n. The screens differ. The decisions do not. If you have not picked the tool, read Make vs Zapier vs n8n first. If you are putting n8n on a server, do that from the Docker guide before you wire the form to a laptop that sleeps.

The pipeline, in one pass

  1. The form collects only what you will use, with a privacy notice and a honeypot.
  2. The form sends a webhook, or the automation polls a form tool, into Zapier, Make or n8n.
  3. A filter drops empty and obvious spam submissions.
  4. An AI step classifies the message and writes a two-line summary and a draft reply.
  5. The CRM gets a create-or-update on the email address.
  6. You get a notification that includes the summary, the category, and a link to the draft.
  7. You send the reply, or you do not.

Nothing in that list posts to the public internet on the lead’s behalf. That is deliberate.

Design the form before the workflow

Fields worth having: name, email, a short “what do you need”, and optionally a company name and a phone number. A dropdown for the kind of work helps the classifier and helps you when the model is wrong. Do not ask for a date of birth, a full address, or a file upload on a first enquiry unless you have a reason you can say out loud.

On a UK site, put a short notice next to the button: who you are, that you will reply about this enquiry, a link to the privacy policy, and a plain sentence if an AI tool will read the message to draft that reply. If you add people to a newsletter from the same form, that needs its own unticked checkbox. An enquiry is not permission to market.

Add a honeypot field: a text input hidden with CSS, named something boring like company_website, that humans never see. If it is filled, the automation stops. It will not catch every bot. It will catch the clumsy ones, which is most of them. Also reject submissions with no email, or with a message that is only a URL.

Choose where the record lives

A spreadsheet with columns for date, name, email, category, status and URL of the source page is a legitimate CRM for one person. Protect the sheet. Do not leave it link-shared to anyone.

When you outgrow it, a hosted CRM such as HubSpot’s free tools is a common next step. Check the current free plan on HubSpot’s CRM page before you promise yourself custom objects or round-robin assignment. Those are the features that quietly sit on paid tiers.

Whatever you pick, decide the match key. Email address is the right default for a small business. Phones are typed inconsistently. Names are not unique. The automation should search by email and update the existing contact’s latest enquiry, not create a twin.

The AI step, kept small

Send the model only the message, the selected category from the form, and the page URL. Do not send your whole CRM. Ask for a fixed shape of answer so the next node can read it. In n8n or Make, a structured output or a strict prompt that says “reply in JSON with keys category, summary, draft” is enough. In Zapier, use the AI step your plan actually includes, or call the model over HTTP if you are comfortable storing the key.

A prompt that behaves:

  • Categories allowed: sales, support, partnership, job, spam. Nothing else.
  • Summary: two sentences, no new facts.
  • Draft: polite, short, no prices, no dates you did not supply, no claim that you can take the work.
  • If the category is spam or job, draft should be empty.

That last rule matters. You do not want a charming reply to a recruiter blast or a phishing mail.

The model will still make mistakes. The notification to you should show the category and the summary above the draft, so you can ignore the draft when the category is wrong. Store the raw message on the CRM record. The summary is a convenience, not the archive.

Wire it in the tool you chose

The nodes are the same idea everywhere.

Trigger. Webhook if the form can POST JSON. Native form trigger if you live inside the tool. Keep the webhook URL out of public screenshots.

Normalise. Map name, email, message, source into consistent fields. Trim whitespace. Lowercase the email before you search.

Stop early. If the honeypot is set, or the email is blank, end the workflow with a log line and no CRM write.

Classify. The AI step above. If it errors, do not drop the lead. Write the CRM record with category “unclassified” and notify you that the draft failed. A missing draft is annoying. A missing lead is how you lose the job.

Upsert. Search the CRM by email. Update if found, create if not. Append the summary to a note rather than overwriting the person’s history.

Notify. Email or Slack to you: name, email, category, summary, link to the CRM record. Put the draft in the notification so you can copy it. Do not send it to the lead from this workflow yet.

Deduplicate the notification if the form tool retries webhooks. n8n, Make and Zapier can all see the same submission twice. Use the form’s submission id as an idempotency key if one exists. If not, ignore a second event with the same email and the same message inside ten minutes.

Zapier

Trigger
Form app or webhook
Branching
Paths, fine for a few cases
AI step
Built-in AI action if your plan has it
When it errors
Zap history, set an error notification

Make

Trigger
Webhook or form module
Branching
Router, easier to see
AI step
AI module, or HTTP
When it errors
Error handler route

n8n

Trigger
Webhook node
Branching
IF and Switch nodes
AI step
OpenAI node or HTTP request
When it errors
Error workflow, do not drop the lead

What “done” looks like

Run five tests: a normal sales enquiry, a support question, a blank message, a honeypot fill, and the same person submitting twice. You want one CRM contact for the duplicate, no contact for the honeypot, a draft only for the real messages, and a notification you can understand without opening the canvas.

Then write the failure down. If the CRM is down, the workflow should retry or tell you. If you are on holiday, a colleague should know the notification mailbox. A workflow with a single owner who is you is a process risk, not an automation.

Pros

  • Leads land in one place with a source and a status
  • A draft removes the blank-page delay without sending anything risky
  • The same shape works in Zapier, Make or n8n

Cons

  • An AI step is another processor and another bill
  • Webhook retries will duplicate records if you skip the match on email
  • A clever classifier is useless if nobody reads the notification

When the replies themselves become the bottleneck, the next guide is an AI email assistant that still creates drafts. If several of these chores are stacking up, look at ten tasks you can automate this week and pick one, not all of them. Support questions that arrive through the same form should be routed, not sold to: the customer support guide is the other queue.

Frequently asked questions

Do I need a CRM, or is a spreadsheet enough?

A spreadsheet is a fair CRM for a solo freelancer who can see every row. Move to a real CRM when two people need the same list, or when you are losing track of who was emailed. HubSpot's free CRM is a common first step. Check what the free plan includes today before you design around a feature it does not have.

Should the AI email the lead automatically?

Not in the first version. Have it classify the enquiry and draft a reply. You send the reply. Automatic email is a later decision, and only for the categories that were consistently right, with a suppression list and a real unsubscribe path.

What consent do I need on a UK form?

Tell people who you are, why you are collecting the fields, and link to your privacy notice. If you will pass the text to an AI provider, say so. A pre-ticked box is not consent. If you rely on legitimate interests for a business enquiry instead of consent, you still need a notice and a way to object. This is not legal advice. If the form collects anything sensitive, talk to someone who advises on UK GDPR.

Which automation tool should run this?

Zapier or Make is enough for a straight form-to-CRM path. Use n8n if you want the workflow on your own server or you are already hosting it. The comparison guide is the decision. The tool is the least interesting part. The fields, the spam check and the human step matter more.

How do I stop duplicate contacts?

Match on email address before you create a contact. If the CRM has a native "create or update" action, use it. If not, search first and branch. Write the rule down. Two records for one person is how follow-ups become embarrassing.

Get the next practical guide

Short notes when a new tutorial goes up. No invented case studies in the inbox either.

Occasional notes on AI automation for small teams. No drip course. Unsubscribe any time.