Jev Recipe / 销售流程

AI 线索评分实战:用 Jev 构建类型化评分与 CRM 分流

把紧凑的线索记录转成有顺序的优先级评分、高意向(hot lead)标记与 CRM 分层,阈值始终由你的业务代码掌控。

广告

实施 AI 线索评分的 6 个步骤

01只保留真正影响优先级的字段:公司规模、行业等企业属性,联系人职务,留言正文、定价页访问等意图信号;剔除与判断无关的隐私数据。
02把 Score criteria 设计成有序的 ICP 阶梯——1(低匹配)到 4(立即跟进),每一档都只对应一个明确的销售动作。
03在一次 evaluate 调用里组合多个问题:priority Score、is_hot_lead Noul(是否呼叫销售)、segment Choice(CRM 分层)。
04阈值写在业务代码里:priority ≥ 3 且 confidence ≥ 0.85 自动写入 CRM 并通知销售,其余进入 SDR 人工复核队列。
05用已成交与流失的历史线索回测,按真实转化率校准分档定义和阈值,并随 ICP 变化定期重调。
06接入 CRM:priority 映射线索状态,segment 映射客户分层字段,低于阈值的 confidence 自动生成人工跟进任务。
schema / 线索评分决策契约
{
  "priority": {
    "type": "score",
    "instructions": "评估这条线索的销售跟进优先级",
    "criteria": {
      "1": "匹配度低:客群不符,没有预算信号",
      "2": "可能匹配:痛点真实,需要培育",
      "3": "匹配度高:符合 ICP 且有明确意向",
      "4": "立即跟进:匹配度与意向都高"
    }
  },
  "is_hot_lead": {
    "type": "noul",
    "instructions": "是否应在一个工作小时内通知销售负责人?"
  },
  "segment": {
    "type": "choice",
    "instructions": "判定 CRM 客户分层",
    "criteria": {
      "enterprise": "500 人以上或企业域名",
      "mid_market": "50-499 人",
      "smb": "50 人以下",
      "self_serve": "个人或试用注册"
    }
  }
}
把一条真实线索记录作为 state 发送,检查模型返回的 priority、is_hot_lead 与 segment。
实时交互体验 / 线索评分沙盒

Jev AI 线索评分与 CRM 分流模拟器

选择一条样例线索并运行 Score schema,看置信度如何决定谁先看到它:

校准置信度已启用
priority / is_hot_lead / segment
companyAcme Cloudtitle工程副总裁 employees800 pricing_page_views_7d6 message“我们 Q4 上线前需要 SSO 和安全评审,400 个席位的报价能发我吗?”
Jev 决策输出
~95ms / $0.00004
priority · scoreconfidence
4 / 497.0%
is_hot_lead · noul true
segment · choice企业级
分流决策(策略在代码里)
PAGE_REP_NOW(立即呼叫销售)

Hot lead:priority 4 且高置信度——一个工作小时内通知负责人。

代码中的策略:priority ≥ 3 且 confidence ≥ 0.85 → 自动写入 CRM(is_hot_lead = true 时立即呼叫销售)· 其余 → SDR 人工复核队列 · priority 1 → 培育序列

线索评分基准对比:Jev 类型化评分 vs 生成式 LLM 评分

METRIC
Jev
生成式 LLM 评分
中位延迟 (P50)
~95ms

单次前向推理,无 token 生成

1500~3000ms

逐 token 生成 JSON

千条线索成本
~$0.05

仅输入计费,0 输出 token

$0.30~$1.20

输入与生成 token 双向计费

输出确定性
确定性

同一条线索每次都落在同一档

随机性

采样波动让边界线索在不同运行间换档

置信度质量
校准概率

阈值可直接驱动自动化分流

模型自报

未校准,需额外接入 logprob

格式错误率
0%

Score / Noul / Choice 为原生输出

2~8% 非法 JSON,需要解析重试循环
读懂自由文本意图
留言正文与行为信号在同一前向中评分
可行,但在线索规模下又慢又贵

生产代码:线索评分与 CRM 分流

typescript / jev 线索评分与 CRM 分流
type LeadState = {
  company: string;
  employees: number;
  title: string;
  message: string;
  pricing_page_views_7d: number;
};

// 策略写在应用代码里,而不是 prompt 中
const AUTO_ROUTE_MIN_SCORE = 3;
const AUTO_ROUTE_MIN_CONFIDENCE = 0.85;

export async function scoreLead(lead: LeadState) {
  const response = await fetch("https://api.typesafe.ai/v1/jev/evaluate", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      state: lead,
      questions: {
        priority: {
          type: "score",
          instructions: "评估销售跟进优先级",
          criteria: {
            "1": "匹配度低",
            "2": "可能匹配",
            "3": "匹配度高",
            "4": "立即跟进",
          },
        },
        is_hot_lead: {
          type: "noul",
          instructions: "是否应在一个工作小时内通知销售?",
        },
        segment: {
          type: "choice",
          instructions: "判定 CRM 客户分层",
          criteria: {
            enterprise: "500 人以上",
            mid_market: "50-499 人",
            smb: "50 人以下",
          },
        },
      },
    }),
  });
  if (!response.ok) throw new Error("Jev evaluate failed");
  const data = await response.json();

  const { priority, is_hot_lead, segment } = data;
  const confident = priority.confidence >= AUTO_ROUTE_MIN_CONFIDENCE;

  if (priority.answer >= AUTO_ROUTE_MIN_SCORE && confident) {
    return {
      route: is_hot_lead.answer ? "page_rep_now" : "crm_auto",
      priority: priority.answer,
      segment: segment.answer,
      confidence: priority.confidence,
    };
  }
  // 评分或置信度低于阈值 → 进入 SDR 人工复核队列
  return {
    route: "sdr_review",
    priority: priority.answer,
    segment: segment.answer,
    confidence: priority.confidence,
  };
}

// 典型路径:单条线索 ~95ms,仅输入计费,0% schema 错误
python / jev 批量线索评分
import requests

JEV_ENDPOINT = "https://api.typesafe.ai/v1/jev/evaluate"
AUTO_ROUTE_MIN_SCORE = 3
AUTO_ROUTE_MIN_CONFIDENCE = 0.85

QUESTIONS = {
    "priority": {
        "type": "score",
        "instructions": "评估销售跟进优先级",
        "criteria": {
            "1": "匹配度低",
            "2": "可能匹配",
            "3": "匹配度高",
            "4": "立即跟进",
        },
    },
    "is_hot_lead": {
        "type": "noul",
        "instructions": "是否应在一个工作小时内通知销售?",
    },
}

def score_lead(lead: dict) -> dict:
    resp = requests.post(
        JEV_ENDPOINT,
        json={"state": lead, "questions": QUESTIONS},
        timeout=5,
    )
    resp.raise_for_status()
    result = resp.json()
    priority = result["priority"]
    hot = result["is_hot_lead"]

    if (
        priority["answer"] >= AUTO_ROUTE_MIN_SCORE
        and priority["confidence"] >= AUTO_ROUTE_MIN_CONFIDENCE
    ):
        route = "page_rep_now" if hot["answer"] else "crm_auto"
    else:
        route = "sdr_review"

    return {
        "lead_id": lead.get("id"),
        "priority": priority["answer"],
        "confidence": priority["confidence"],
        "route": route,
    }

def score_batch(leads: list[dict]) -> list[dict]:
    # ~95ms/条:夜间同步 1 万条线索约 16 分钟跑完,
    # 且远低于 CRM API 速率限制。
    return [score_lead(lead) for lead in leads]

把评分流程接入业务