Lead intent classification Jev pattern
Route an inbound message to demo, pricing, support, partnership, or spam.

Inbound inboxes mix buyers with people who cannot log in. This Choice keeps sales automation from getting a password-reset. Put the form fields and the raw body in state. Put spam in the criteria so junk is a first-class label, not “other.”
This lead intent classification schema is a paste-ready TypeSafe Jev request for jev-latest. Copy the JSON, keep thresholds in your code, and calibrate on your labels. Jev Patterns is independent and not affiliated with TypeSafe AI.
Use lead intent classification when
- A public form, chat widget, or shared inbox needs a first split.
- Demo and pricing should go to sales; support should not.
- You would rather drop spam than have an SDR touch it.
Do not use lead intent classification when
- You need to draft the sales reply.
- Intent depends on CRM fields you did not pass in.
- The only question is “are they a fit?” — that is a different rubric.
Confidence thresholds for lead intent classification
Keep these in your code. They are not part of the model call.
| When | Action |
|---|---|
| intent.choice == 'spam' && intent.confidence >= 0.80 | Drop. Do not create a Salesforce record |
| intent.confidence >= 0.75 | Create a lead with intent.choice as the queue |
| intent.confidence < 0.75 | Create an unclassified lead for a human |
Pass examples
Demo with volume
demo. The volume is context, not a support ticket.
{
"form": {
"body": "30-minute demo for the System One API. ~80k support tickets/month."
}
}Existing customer outage
support. Do not put this on an SDR.
{
"form": {
"body": "We're on Pro and webhooks have been 500 since noon."
}
}SEO pitch
spam.
{
"form": {
"body": "I can put you on page one of Google for $499."
}
}Ambiguous examples
Pricing plus demo
Both labels fit. Pick one primary or lower the auto-route threshold.
{
"form": {
"body": "What does Enterprise cost, and can we see it Thursday?"
}
}Empty body
Not enough state. Do not guess demo.
{
"form": {
"name": "John",
"body": "."
}
}Vendor looking to sell
partnership vs spam depends on whether you take inbound vendors.
{
"form": {
"body": "We resell GPU time. Want to partner on inference?"
}
}The problem lead intent classification is for
Marketing sites still dump every form into a shared inbox and let SDRs sort demo from “what’s your SOC2.” Chat widgets then try to qualify in prose. Both waste people. Lead intent classification is a closed Choice: demo, pricing, support, partnership, spam.
CRM tools will happily store a free-text “intent” from an LLM. Then reporting breaks because Tuesday’s model said “book a call” and Wednesday’s said “demo_request.” Lead intent classification fixes the enum in the question. The CRM field is the Choice key.
This is a growth pattern, not a closer. Jev will not write the outbound sequence.
Why this lead intent classification schema uses Jev
demo means they want to see the product. pricing means they want numbers. support means they are already a customer with a problem — do not hand that to sales. partnership is vendor/agency. spam is the rest of the internet. Lead intent classification is those five doors.
Add plan hints and page path to state: /pricing plus “can we start next week” is a different distribution than /docs plus “the webhook 500s.” The Choice is only as good as the page you capture.
Confidence below 0.70 should go to a human triage queue, not to the AE’s personal Slack. Lead intent classification is allowed to be unsure.
What to put in state for lead intent classification
Capture message, company domain, employee-band if known, page path, UTM, and whether the email is already in the customer table. A known customer asking for pricing may still be expansion — pass is_customer so the criteria can say so.
Do not paste the entire chat widget log if a form field exists. The form is the request. Extra chatter adds tokens and noise.
If you sell through partners, say that in criteria for partnership. Vague “business opportunity” language is how spam leaks in.
How to wire lead intent classification in code
demo + high confidence → AE queue. pricing → send the public price page automatically and notify sales. support → the support ticket routing pattern, not the SDR. spam → drop or foldering. partnership → partnerships alias.
Never auto-send a contract from lead intent classification. The Choice is routing, not commercial authority.
Weekly, sample the spam bucket. If real demos land there, your criteria for spam are greedy.
Eval plan: pull a week of form submits your SDRs already tagged. Measure lead intent classification against those tags, not against closed-won. Routing quality is “did the right team see it in time,” not “did it close.”
Failure modes
Existing customers in the demo bucket
Pass is_customer. Lead intent classification cannot see Stripe unless you say so.
Using this to write the email
Jev will not draft the AE intro. Templates exist for that.
Too many intents
If you add twelve product lines as Choice keys, you will get a flat distribution. Keep the first split coarse; specialize later.
Copy, run, calibrate
The JSON in the rail is the lead intent classification request for jev-latest. Copy it into your stack, or open Lead intent classification in Jev Studio and draw the fixture bars. Thresholds stay in your repository. Calibrate on your labels before you auto-apply. Official model docs live at docs.typesafe.ai. Jev Patterns is independent and not affiliated with TypeSafe AI.
Related reading: Choice, Score, Noul, confidence thresholds, when not to use Jev.
Lead intent classification: FAQ
- What is lead intent classification in Jev?
- Lead intent classification is a Choice over demo, pricing, support, partnership, and spam for inbound messages. It returns a distribution your CRM can store as an enum.
- Can lead intent classification score how hot the lead is?
- Not in this schema. Add a Score if you have a BANT rubric. Do not overload the intent Choice with temperature.
- Should support requests go through lead intent classification?
- Yes as a first split so they do not hit sales. Then run support ticket routing on the support bucket.
- Does lead intent classification replace a chatbot qualifier?
- It replaces the parsing. It does not chat. If you need a conversation, that is a different product.
- What confidence should auto-route lead intent classification?
- Start at 0.75 for demo and pricing. Send the middle to a human. Spam can use a higher bar before you drop mail.
Last reviewed 21 September 2026. Independent of TypeSafe AI.
Next
Related Jev Patterns

Ops
Spam or duplicate detect
Two Nouls: is this a duplicate of recent tickets, and is it spam?

Support
Support ticket routing
Send a ticket to the right department and flag whether it should jump the queue.

Support
Escalate to human
A single Noul: should a person take this over from the bot or the junior queue?

Studio
Run Lead intent classification in Studio
Fixture bars first. Optional live call stays in this browser.