Lead intake and routing form
Multi-step intake form with scoring, Slack notifications, and a reviewer queue. Plug into your existing CRM.
What is in the box
- Multi-step form with conditional fields
- Lead scoring rules you edit in a config file
- Slack notifications routed by territory or product
- Reviewer queue with claim, dismiss, and assign actions
- Webhook out to HubSpot, Salesforce, or your CRM of choice
- Spam protection without Captcha
Most lead forms are a single page of fifteen fields that nobody fills out and nobody scores. The leads that do come through land in a spreadsheet and get fought over in Slack.
This template fixes both ends. The form is multi-step and conditional so qualified leads complete in under two minutes. The backend scores, routes, and queues so the right rep claims the right lead inside an hour.
Why multi-step beats one-page
Conversion data is consistent: multi-step forms with progress beat single-page forms for high-intent submissions. The visitor sees three short steps and finishes. The visitor sees fifteen fields and bounces.
The template ships with three steps by default: who, what, and how to reach them. You can add steps, but the default is the right starting point.
Scoring that earns its weight
Lead scoring is overrated in most stacks because it tries to do too much. The template scores on three signals: company size, intent (which page they came from), and existing customer status. Three signals are enough to route correctly. More signals create false precision.
The rules live in a single config file. Marketing edits it directly. No code deploys for a scoring tweak.
Routing without a CRM rewrite
The router fires Slack and writes to the lead inbox. From there, you can leave it (the queue is the workflow) or wire the webhook to HubSpot, Salesforce, or whatever lives downstream. The template ships sample payloads for both major CRMs.
The reason: most teams already have a CRM. The lead intake stack is what feeds it, not what replaces it.
The reviewer queue
The queue is the part that prevents lost leads. Every submission lands with a status and an owner. Reps claim from the queue. Unclaimed leads escalate after an SLA. The queue lives at /backstage/leads in the template.
This is the single most underrated piece of any intake stack. Without it, Slack becomes the source of truth, which means the lead lives in whoever last pinged about it.
How to get the template
We share the template with teams that book a discovery call. We will look at your current intake stack and tell you which pieces this template replaces and which it complements.
Included with the template
- TanStack Start route for the public form
- Server function for validation, scoring, and routing
- Supabase table for leads with status workflow
- Reviewer dashboard at /backstage/leads
- Slack webhook helper
- Sample webhook payloads for HubSpot and Salesforce
Frequently asked questions
Does this replace HubSpot or Salesforce?+
No. It feeds them. The intake stack handles the messy public-facing capture and the first-hour routing. The CRM is the system of record from there.
Spam protection?+
The template uses a combination of honeypot, time-on-page, and a server-side rate limit. Captcha is intentionally not the default because it kills high-intent conversions. Captcha can be flipped on if your form starts attracting bot traffic.
Can the form embed on a marketing site?+
Yes. The form ships with an embed helper so you can drop it into Webflow, Framer, WordPress, or any other site as an iframe. Submissions still route through the same backend.
More templates
Got an idea? We can ship it next week.
30-minute discovery call. We tell you what's possible, what it costs, and when it ships.