How to Cut Lead Routing Time With AI Scoring
A step-by-step guide to moving lead routing from a manual inbox queue to an automated workflow with an AI scoring step, rules-based assignment and a human fallback.
Most slow lead routing is not a scoring problem. It is a queue problem. A form submission lands in a shared inbox or a CRM view, someone checks it when they get to it, reads the company name, guesses at fit, and assigns it. The delay is the time between “the lead arrived” and “a person looked at it”, and that time grows with every meeting, holiday and busy week.
Automating the routing removes that wait. An AI scoring step is useful in the middle of the workflow, but it is the smallest part of the build. This guide walks through the whole thing.
What the workflow has to do
Before building anything, write down the decision your team makes by hand today. For most B2B teams it looks like this:
- Is this a real lead, or spam, a student, a job seeker or a vendor pitch?
- Is the company a fit (size, industry, region, use case)?
- Which segment or territory does it belong to?
- Who in that segment is available to take it?
- How fast should they respond, and through which channel?
Questions 1, 2 and part of 3 involve judgement on messy text. That is where a language model helps. Questions 3 to 5 are lookups and rules, and they should stay deterministic so you can explain every assignment.
Step 1: Capture and normalise the lead
Trigger the workflow on the event itself (a form webhook, a new CRM record, a chat transcript ending), not on a schedule. A polling trigger every 15 minutes puts back part of the delay you are trying to remove.
Then clean the payload before any scoring:
- Lowercase and trim the email; extract the domain.
- Flag free email domains (gmail.com, outlook.com and similar) instead of dropping them; some real buyers use them.
- Look up the domain in your CRM to see whether the company is already a customer or an open opportunity. Existing accounts usually skip scoring and go straight to the owner.
- Enrich the domain with firmographics if you have an enrichment source. Keep the raw form fields alongside the enriched ones so the scoring step sees both.
Step 2: Add the AI scoring step
Give the model a narrow job and a fixed output format. A prompt that asks “is this a good lead?” returns prose you cannot route on. A prompt that asks for structured fields returns something a branch can read.
An illustrative output schema (an example, not a recommendation for your thresholds):
{
"is_spam": false,
"lead_type": "buyer",
"fit": "high",
"segment": "mid-market",
"reason": "Ops lead at a logistics company asking about CRM-to-ERP sync"
}
Practical rules for this step:
- Put your ICP in the prompt as plain criteria, not as examples of past customers. Criteria are easier to update when the ICP changes.
- Keep the categories few. Three fit levels are easier to act on and audit than a 0–100 score that people learn to second-guess.
- Always ask for a short reason. It is what the rep reads first and what you use to debug bad assignments.
- Validate the output. If the JSON does not parse or a field is missing, route to the fallback queue rather than guessing.
- Do not let the model assign owners. It sees the lead, not your team’s capacity, holidays or territory rules.
Step 3: Route with rules
After scoring, use ordinary branching:
is_spam = trueorlead_typeis a vendor or job seeker: close the record with a reason, no notification.- Existing customer or open opportunity: assign to the current account owner.
fit = high: assign within the segment using round robin, skipping people who are out of office or over their open-lead limit.fit = medium: assign to the segment’s queue, or to a nurture sequence if your team does not work medium-fit leads by hand.fit = low: nurture, no rep notification.
Store the capacity data (who is in which segment, who is away, open-lead counts) in a table the workflow reads, not hard-coded in the branches. Otherwise every team change becomes a workflow edit.
Step 4: Notify where people already work
Assignment alone does not get a lead answered. Send the notification to the channel the rep actually watches, usually a Slack or Teams direct message, with the company, the reason from the scoring step, the original message and a link to the record. Put the reason first; it saves the rep opening three tabs.
Add a follow-up check: if the record is still untouched after a set time, notify the segment lead or reassign. Pick that time based on what your team can actually meet, not on a benchmark from someone else’s team.
Step 5: Keep a human fallback
Every automated router needs a place for leads it cannot handle: model errors, unparseable output, an unknown region, nobody available in the segment. Send those to a named fallback queue owned by one person, and alert on it. A silent fallback is how leads disappear for a week.
Step 6: Measure and tune
Log, for every lead: arrival time, scoring output, assigned owner, assignment time and first-touch time. That gives you three things to watch:
- Time to assignment. Should drop to seconds once the trigger is event-based. If it does not, look for a polling step or a slow enrichment call.
- Time to first touch. This is the number that matters to the buyer, and automation only helps it if the notification reaches the right person.
- Reassignment rate. When reps keep handing leads back, read the scoring reasons on those records. Usually the ICP criteria in the prompt are stale or too vague.
Review a sample of scored leads by hand every couple of weeks, especially the ones marked spam or low fit. Those are the errors nobody else will see.
Trade-offs to decide up front
- Speed versus enrichment depth. Each enrichment call adds latency. Enrich only what the scoring prompt actually uses.
- Automation versus explainability. If sales leadership needs to justify territory decisions, keep assignment in rules and limit the model to classification.
- Cost per lead. A model call on every form fill, including spam, adds up. A cheap rules filter for obvious junk before the AI step keeps the model on leads worth reading.
- When not to automate. If you get a handful of inbound leads a week and one person reads them all within the hour, a router adds maintenance without much gain. Automate when the queue, not the decision, is the bottleneck.
A minimal first version
If you want something running this week, build only this: webhook trigger, domain lookup against the CRM, one AI step returning is_spam, fit and reason, round robin within one segment, a Slack message, and a fallback queue. Add segments, capacity limits and the follow-up check once the basic path has run on real leads for a while.
Stay in the loop
Get workflow automation playbooks, integration recipes, and product updates delivered to your inbox.
No spam. Unsubscribe anytime.