category: new_service_inquiry service_line: general tier: warm urgency: urgent summary: [WARM] ... Roof repair, urgent
Workflow · lead qualification · HITL
ai-intake-qualifier
Raw form submissions become normalized, scored, CRM-ready leads—while uncertain or unreachable cases stop in a human-review queue.
Public · synthetic demoThe problem
A high lead score is useless if nobody can reach the lead.
Automated intake often stops after classification. This pipeline makes contact validity, ambiguity, and review routing explicit so an urgent inquiry is not silently dropped or misfiled.
Input
One synthetic urgent service inquiry
{"lead_id":"L-1006","name":"Tom Baker",
"email":"tom.baker[at]outlook","phone":"",
"service_type":"Roof repair",
"message":"Need a quote to fix a leaking roof after the storm. Fairly urgent."}The money shot
Strong intent, explicit qualification, safe routing
Lead score53 / 100Warm tier
Overall confidence0.568Below auto-route trust
Bundled run6 auto · 4 review10 synthetic leads
→ needs_review
- No valid contact (email or phone)
- Email malformed:
tom.baker[at]outlook
| Committed output | Rows | Meaning |
|---|---|---|
| qualified_leads.csv | 6 | Auto-routed |
| review_queue.csv | 4 | Human decision required |
How it's verified
Transparent rules own the routing decision.
Normalization checks email and phone validity; classification exposes confidence; qualification uses legible 0–100 signals; the final gate tests reachable contact, known intent, sufficient content, and uncertain spam. Nothing sends a reply automatically.
Honest limitations
- The ten leads are hand-written synthetic edge cases; real traffic is messier.
- Offline classification and scoring are simple, tuneable rules—not a universal sales policy.
- Budget parsing is best effort and intentionally ignores unmarked numbers.
- Suggested replies are drafts; a human approves and sends them.