Lead Capture Forms: Fields, Routing and Speed-to-Lead
Design a lead capture form that converts: choose the right lead form fields, add qualifying questions, track UTM sources and send leads to your CRM fast.
5 min read

A lead capture form should collect the minimum information needed to qualify and contact a prospect, record where the lead came from, and deliver it instantly to whoever follows up. Everything else, including extra fields, clever design and long dropdowns, is secondary to those three jobs.
Whether you are building a quote request for a local business, a demo request for a SaaS product or a B2B lead form for an agency, the same principles apply. This guide covers field strategy, qualification, routing, attribution tracking and spam, with code you can copy.
What makes a lead capture form work
A lead generation form is a trade. The visitor gives you their time and contact details; you promise something worth it, such as a quote, a call, a download or an answer. The form converts when:
- The promise is clear and specific ("Get a quote within one business day").
- The effort feels proportional to the reward.
- The visitor trusts you with their details.
- Nothing breaks, confuses or surprises them.
The form converts into revenue when the lead reaches the right person quickly with enough context to respond well.
Choosing lead form fields
Start from the follow-up. For every field, ask: will this answer change what we do next? If not, cut it.
| Field | Keep it when | Skip it when |
|---|---|---|
| Name | Almost always | Pure newsletter signups |
| Always | Never | |
| Phone | Sales calls are the next step | You only reply by email |
| Company | B2B, pricing depends on company size | Consumer services |
| Budget or project size | You need to filter or route by size | It scares off early-stage visitors |
| Timeline | Urgency changes priority | Every lead is handled the same way |
| Message | You need context to reply well | A booking or download form |
Make optional fields clearly optional, or better, remove them. Every field you add is another reason to leave; our guide on form abandonment covers the details.
Qualifying questions
One or two well-chosen questions do more than five generic ones. Good qualifying questions:
- Use a dropdown or radio buttons with a few clear options, not free text.
- Map directly to an action, such as routing to a team or prioritizing urgent work.
- Avoid wording that feels like a test ("What is your annual revenue?" reads differently than "Roughly how big is the project?").
<label for="size">Project size</label>
<select id="size" name="project_size" required>
<option value="">Choose one</option>
<option>Under $5k</option>
<option>$5k to $20k</option>
<option>Over $20k</option>
<option>Not sure yet</option>
</select>Always include an escape option like "Not sure yet" so honest prospects are not forced to guess.
Progressive profiling
You do not need everything on the first form. Progressive profiling means asking for the basics first and collecting more later: on a second form, during the discovery call, or in a follow-up email. A short first form captures more leads; the conversation fills in the rest.
Tracking lead sources with hidden fields
Knowing which campaign produced a lead is what makes marketing spend measurable. The simplest approach is to capture UTM parameters and the landing page into hidden inputs.
<form id="lead-form" action="https://formsubmit.app/f/YOUR_FORM_ID" method="POST">
<label for="name">Name</label>
<input id="name" name="name" autocomplete="name" required>
<label for="email">Work email</label>
<input id="email" type="email" name="email" autocomplete="email" required>
<input type="hidden" name="utm_source">
<input type="hidden" name="utm_medium">
<input type="hidden" name="utm_campaign">
<input type="hidden" name="landing_page">
<input type="hidden" name="_subject" value="New lead from the website">
<input type="text" name="_gotcha" tabindex="-1" autocomplete="off" style="display:none">
<button type="submit">Request a quote</button>
</form>const params = new URLSearchParams(window.location.search);
const form = document.getElementById("lead-form");
["utm_source", "utm_medium", "utm_campaign"].forEach((key) => {
const value = params.get(key) || sessionStorage.getItem(key);
if (value) {
sessionStorage.setItem(key, value);
form.elements[key].value = value;
}
});
form.elements.landing_page.value =
sessionStorage.getItem("landing_page") || window.location.pathname;
sessionStorage.setItem("landing_page", form.elements.landing_page.value);Storing the values in sessionStorage keeps attribution intact when the visitor browses a few pages before converting. The _subject control field sets a recognizable email subject; see the control fields docs for the others.
Routing leads: email, chat, sheets and CRM
A lead sitting unread in a shared inbox is a lead going cold. Decide where each lead should land before you launch the form.
- Email is the baseline. Make sure Reply-To is set to the prospect's address so whoever replies is talking directly to them.
- Slack or Discord gets the whole team's eyes on new leads in real time. See the Slack integration.
- Google Sheets or Airtable gives you a lightweight pipeline with filters, owners and status columns, without buying a CRM. See form to Google Sheets.
- Mailchimp or Kit adds leads to a nurture sequence if they are not ready to buy yet. Only do this with clear consent.
- Webhooks let you send leads to a CRM. Post each submission to Zapier, Make, n8n or your own endpoint and map fields into the CRM's API.
Speed-to-lead and the autoresponder
Responding quickly is one of the most reliable ways to win more of the leads you already get. Interest fades fast once a visitor closes the tab, and the first company to reply often sets the terms of the conversation.
Practical steps:
- Send leads where your team already works, such as a chat channel or phone notifications, not a rarely checked inbox.
- Assign an owner for each lead source so nobody assumes someone else replied.
- Send an immediate confirmation email that says what happens next and when.
- Follow up personally within the time you promised.
An autoresponder handles step 3 automatically. Keep it short: thank the person, restate their request, set expectations ("We reply within one business day") and give an alternative contact method for urgent questions.
Keeping spam out of your lead pipeline
Spam in a lead form is worse than spam in a contact form, because it pollutes your sheets, CRM and nurture lists. Use layered protection: a honeypot, a timing check, content filtering and, if needed, a captcha. Our guide on how to stop form spam walks through each layer. Make sure spam is filtered before it reaches integrations, not after.
Lead capture form checklist
- A specific promise next to the form
- Only fields you will act on
- One or two qualifying questions with an escape option
- Correct
typeandautocompleteattributes for faster filling - Hidden UTM and landing page fields
- Instant routing to where your team works
- An autoresponder with clear next steps
- Spam filtering before integrations
- A tested submission end to end, including the CRM mapping
FormSubmit covers the backend side of this list: email notifications with Reply-To set to the lead, an autoresponder, spam filtering, and Slack, Google Sheets, Airtable, Mailchimp, Kit and webhook integrations on every plan. Start with the quote request template or build your own in the form generator.
Last updated .


