Lead scoring decision workflow with Jev
A fuzzy “how hot is this lead 1–10?” prompt hides dimensions. Ask atomic Scores (ICP fit, buying intent, timing), then weight them in code you can change without a new prompt.
This unofficial page is the decision workflow slice of the lead scoring pack. Intent: apply the Jev (TypeSafe System One) decision model to lead scoring decision workflow. Primary search language: Lead scoring Jev decision workflow. Confirm patterns on docs.typesafe.ai. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Independent angle (cover ≠ clone): Weighted Score composition in app code + eval harness + vertical compare — beats a single composite-lead-scoring recipe clone.
Lead scoring use-case context
Lead scoring is a workflow, not a chat. Assemble a narrow state, ask the primitives below, and let the revenue router branch. TypeSafe’s docs say a good question is a snap decision a knowledgeable person could make in a few seconds — not an open-ended analysis of the lead record + recent text.
Hub: Composite scoring. Compare, when the other tool is the real job: classic lead scoring.
Decision Workflow inputs
Keep only fields the questions name:
{
"lead": { "id": "L-77", "title": "VP Engineering", "company_size_bucket": "201-500" },
"form": { "message": "Need SOC2 review before Q4 bake-off." },
"firmographics": { "industry": "fintech", "in_icp_list": true }
}
Point instructions at form.message, lead.title, firmographics.industry. Drop raw MAU / ARR you should bucket in code first (company_size_bucket); the entire Marketo activity dump.
Decision signals and actions
| Id | Type | Job |
|---|---|---|
icp_fit |
Score | role + industry fit to your ICP rubric |
buying_intent |
Score | language of evaluation vs casual browse |
disqualify |
Noul | Student / competitor / obviously out of market? |
All of these share state and run in parallel. Code owns the graph:
def composite(ans, weights=(0.45, 0.55)):
if ans["disqualify"].noul >= T_DQ:
return "recycle"
fit = ans["icp_fit"].score
intent = ans["buying_intent"].score
blended = weights[0] * fit + weights[1] * intent # your arithmetic
if ans["icp_fit"].confidence < FLOOR or ans["buying_intent"].confidence < FLOOR:
return "sdr_review"
return "mql" if blended >= BLEND_CUT else "nurture"
Do not treat a Noul of 0.5 as a “medium” lead scoring score — it means yes and no are equally likely. Conjunctions stay in your code.
Guardrails and escalation
TypeSafe’s confidence-gated examples use a lower bar for recoverable reads than for irreversible actions. Those numbers are illustrations. For lead scoring, treat page_ae as the high bar (paging an AE or starting outreach). Tune on labels — see offline evaluation.
Low confidence, or a policy miss → human or safe default; do not page an AE or start outreach.
Evaluation and rollout notes
Shadow: Write Jev blend to a shadow CRM field.
Canary: Auto-MQL one segment (e.g. inbound demo form).
Pin jev-1.13.0 (the versioned id) after you fit thresholds. jev-latest and the marketing line jev-1.13 can move. Log the response model. TypeSafe’s published list price for jev-1.13 is $0.042 per million input tokens (vendor claim — confirm on the models page); output tokens are free on that same page. Unused distractors still bill as input.
Official Python and JavaScript SDKs read TYPESAFE_API_KEY and retry documented 429/529. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Pack map
| Slice | Page |
|---|---|
| Graph and primitives | you are here |
What may enter state |
input contracts |
| What to gather first | evidence collection |
| Atomic rules | policy checks |
| Act / review / abstain | confidence thresholds |
| Reviewer payload | human handoff |
| What to persist | audit trail |
| How it breaks | failure modes |
| Labeled replay | evaluation |
| Shadow → canary | production rollout |
FAQ
Does Jev execute the revenue router action? No. It returns typed answers. Your revenue router code calls queues, models, or humans.
Why several questions in one request? TypeSafe’s fan-out pattern: extra questions are cheap versus another HTTP call. ICP + intent + disqualify in one call. Speculative extras (e.g. “mentions security review?”) are cheap. Re-blend weights without a second HTTP call.
Where is the rest of the Lead scoring pack? Start with Lead scoring input contracts and Lead scoring confidence thresholds. Cluster hub: Use cases.
Why not one Score for “lead quality”? It secretly mixes ICP, intent, and timing. Atomic Scores stay inspectable; weights change in code. See composite scoring.
Can Jev compute a 0–100 predictive score like our vendor? Do not treat a 2–10 rubric as a probability of close. Keep predictive math in your model; use Jev for language judgments.
What this page does not claim
- No invented lift vs Marketo/HubSpot scores.
- Not a CRM.
- Not official TypeSafe.
- Official TypeSafe status, or that jev.pro issues API keys.
- That a schema-constrained answer is automatically factually correct.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai.
Primary documentation: https://docs.typesafe.ai. Hub: Use cases.
Sources
Public TypeSafe or adjacent documentation only. No private claims.