Inbound leads software is the stack that captures a visitor who raises a hand (a form, a chat, a trial signup, a demo request), stores the record, enriches and scores it, and routes it to the right person. It is a chain of five layers rather than one product, and the weakest link is the first one: the form accepts whatever is typed. Inbound addresses are the cleanest lead source there is, and they still arrive 5 to 10% invalid from typos and throwaway addresses, with 14.5% invalid across all business lead lists in the BounceZero corpus, April to October 2026. This guide compares the layers, the connections between them, and the one API call that fixes the first link.
Products overlap, but every inbound stack does these five jobs. Tool names are examples of each layer, not endorsements, and costs are typical market ranges for a team of five to twenty.
| Layer | Job | Examples | Typical monthly cost | What breaks here |
|---|---|---|---|---|
| Capture | Forms, chat, scheduling, trial signup | HubSpot forms, Typeform, Intercom, Drift, Calendly, your own signup | $0 to $300 | Typos, throwaways, bots, role addresses accepted |
| Store | The CRM record and its history | HubSpot, Salesforce, Pipedrive, Close | $0 to $150 per seat | Duplicates, stale fields |
| Enrich | Company and person data from the email domain | Clearbit, Apollo, ZoomInfo, Clay | $50 to $500 | Enriching dead records; freemail domains enrich to nothing |
| Score and route | Fit plus intent plus usage into a number and an owner | Native CRM scoring, MadKudu, custom | $0 to $400 | Scoring unreachable leads; round-robin to the wrong region |
| Engage | Sequences, chat follow-up, meeting booking | Native CRM sequences, Outreach, Apollo, Chili Piper | $50 to $100 per seat | Bounces on first touch; no-shows |
A sixth, invisible layer sits between capture and store: validation. A real-time check at the form returns valid, invalid, catch-all, unknown, disposable or role before the record is created.
Everything downstream inherits what the form accepts. A typo in the address means the confirmation email bounces, the sequence bounces, the rep calls a number from a record that will never reply, and the enrichment credit was spent on a domain that does not exist. A throwaway address means a trial account that never activates and a scored, routed, worked lead that was never a person.
Inbound is the best source there is, which is why the losses are easy to miss. The corpus average for non-freemail (business and ISP) addresses across all lead sources was 14.5% invalid, with 27% unconfirmable; inbound runs far better, at 5 to 10% invalid, because the owner typed it with intent. But 5 to 10% of a month's demo requests is a material number of meetings that were never going to be booked, and every one of them went through the scoring and routing layers first. The by-source numbers are on the benchmarks page.
A validation call at the form is one HTTP request that takes well under a second on most domains and returns a result the form can act on: block disposable and invalid, accept valid, accept but flag catch-all and unknown, and ask for a work address when the domain is freemail and the product is B2B. The integration is described on the validation API page.
The form does not need to reject anything it cannot confirm. It needs to label the record so the layers below treat it correctly.
Create the record, send the confirmation, score and route normally. This is most inbound submissions.
Show an inline message asking the visitor to check the address. Most typos are fixed on the spot. Do not create a record until a valid address is entered.
Block for trials and demo requests; a temporary mailbox is never a buyer. Allow for newsletter signups if you prefer, but tag it.
Accept, tag, route to a generic queue rather than a named rep. Not a person.
Accept and tag. The mailbox could not be confirmed because the domain accepts anything. Score normally, cap below sales-ready until a reply.
Accept and tag. The server would not answer; common on corporate gateways. Re-check in a day. Never treated as valid or invalid; the result is honest.
The order of operations for one inbound submission, with the integration point at each hop.
A client-side or server-side call to the validation API with the typed address. Server-side is safer because the key stays private; client-side gives inline feedback. Many teams do both.
The CRM record carries email_status (valid, catch-all, unknown, role) as a property. Invalid and disposable never reach the CRM. Native integrations for the main CRMs: HubSpot, Salesforce, Pipedrive.
Company size, industry, location, stack. Skip enrichment for freemail domains; it returns nothing useful and costs a credit.
Fit and intent points as usual. Catch-all and unknown cap the score; the model is laid out in the SaaS lead scoring guide.
By territory, segment and score band. Role addresses go to a shared queue. Sales-ready leads trigger a meeting link or a call task within minutes.
The confirmation email and the first sequence step send to an address known to exist, which keeps the inbound domain's bounce rate near zero.
Three reference stacks. The validation call is the same in all three; the rest scales with headcount.
| Team | Capture | Store | Enrich and score | Engage | Validation |
|---|---|---|---|---|---|
| Founder-led, 1 to 3 | Own signup form or Typeform, Calendly | HubSpot free or Pipedrive | Manual lookup, no scoring | Native CRM email | API call at the form; free tier covers low volume |
| First sales hires, 4 to 15 | HubSpot forms, Intercom, Chili Piper | HubSpot or Pipedrive | Clearbit or Apollo, native scoring | Native sequences | API call at the form plus monthly re-check of open leads |
| Scaled team, 15 plus | Custom forms, chat, product signup events | Salesforce or HubSpot Enterprise | ZoomInfo or Clay, MadKudu or custom model | Outreach or Salesloft | API at every entry point; bulk re-verification of the database before every send and at least monthly |
Accepting freemail addresses on a B2B demo form without asking for a work address. The enrichment layer returns nothing for gmail.com, scoring has no fit data, and routing sends a possibly serious buyer to the bottom of the queue. Ask once, inline, and accept the freemail address if they insist.
Routing before validating. A round-robin that fires on form submit assigns a rep to a typo. Validate first, route second; the delay is under a second.
Never re-checking. An inbound lead from January has a January address. By the time the quarterly nurture goes out, some of those contacts have moved on, at the decay rate the BounceZero study measured for every B2B address (19.2% still valid after 90 days). Bulk re-verification of open leads before each campaign keeps the nurture domain clean; see bulk email validation.
Treating chat leads as lower quality than forms. A chat conversation that ends with an email address is an address typed under the same intent as a form. Validate it the same way, at the moment it is captured.
Inbound is the cleanest lead source and still arrives 5 to 10% invalid. One validation call at the form, before the record exists, is the cheapest fix in the stack.
The real-time call at the form, with code samples
Fit, intent, usage and the reachability gate
Lead types, sources and routing
Where the result lands in the CRM
Why throwaway addresses are blocked at trials
Where AI tools sit in the inbound stack
Five layers: a capture tool (forms, chat, scheduling or your own signup), a CRM to store the record, an enrichment source for company data, scoring and routing (native in most CRMs at first), and an engagement tool for sequences and meetings. Small teams run all five inside HubSpot or Pipedrive. The one piece that is not bundled is a real-time email validation call at the form.
Validate the address at submission with an API call that returns valid, invalid, disposable, role, catch-all or unknown. Show an inline prompt on invalid so the visitor corrects the typo, block disposable addresses for trials and demos, and tag the rest so scoring and routing treat them correctly. The call takes well under a second on most domains.
Yes. Inbound leads carry an intent signal by definition, so the model weights intent and product usage more and fit less, and thresholds can be lower. The reachability gate is the same: a lead whose address is invalid scores zero whatever the intent, and catch-all or unknown addresses are capped until a reply confirms the contact.
For teams under fifteen, HubSpot and Pipedrive cover capture, storage, basic scoring and sequences in one product. Salesforce fits teams that need custom routing, territories and a data model beyond the defaults. Whichever you choose, write the validation result into a field on the record so every later layer can read it.
Before any campaign to leads older than thirty days, and at least monthly for the whole open-lead database. Business addresses decay fast, with only 19.2% of addresses still valid 90 days after verification in the BounceZero decay study, so a nurture sent to last year's inbound leads without a re-check bounces on a meaningful share and damages the domain the confirmation emails come from.
One API call returns valid, invalid, disposable, role, catch-all or unknown. 100 free checks a month, native CRM integrations, unknowns refunded.
Ayoub built BounceZero's 5-stage validation pipeline, its dedicated BGP-announced IP infrastructure, and the Patroni HA PostgreSQL cluster behind every verification. Previously built high-volume email delivery infrastructure. Trained at 1337 Benguerir (École 42 network, 2019). Open-source: bgp_analyzer.
Scoring, qualification, list building and the outbound and inbound stacks
Lead qualification frameworks compared for 2026
The operating playbook for an outbound lead generation agency in 2026
Cold email lead generation agency guide
Eight methods ranked by return
Six steps and the tools for each
SaaS lead scoring guide 2026
Continue through related topics