PRD_LEAD_DISCOVERY.md 30 KB

PRD:客户发掘系统 - 从线索到客户建档及价值判断

版本:v1.0
创建日期:2026-02-12
产品经理:待定
技术负责人:待定


一、产品概述

1.1 产品背景

外贸业务员每天收到大量询盘邮件,需要快速判断哪些值得跟进、如何跟进。现有系统存在以下问题:

  • nanchi 背调系统:流程过重(3-8分钟),信息过载,缺少分层机制
  • demo-nanchi 画像系统:快速筛选太粗,深度分析是空壳,缺少行动指导

1.2 产品定位

"10秒告诉你值不值得跟进,3分钟帮你准备好跟进弹药"

一个以行动为导向的线索价值判断与跟进准备系统,通过三层漏斗(信息提取 → 快速研判 → 深度调研)帮助业务员高效处理询盘。

1.3 目标用户

  • 主要用户:外贸业务员(每天处理 20-50 封询盘)
  • 次要用户:销售主管(查看团队线索质量与跟进情况)

1.4 产品目标

目标 指标
提升效率 单封邮件处理时间从 5-10 分钟降至 1-3 分钟
提升准确度 线索价值判断准确率 ≥ 85%(与业务员直觉一致)
提升转化率 S/A 级线索跟进率 ≥ 90%,B 级线索跟进率 ≥ 50%

二、功能需求

2.1 第一层:邮件摄入 & 信息提取

2.1.1 功能描述

将非结构化邮件自动解析为结构化数据,提取关键信息。

2.1.2 输入方式

  • 方式一:上传 .eml 文件(支持拖拽)
  • 方式二:手动录入(复制粘贴邮件内容)
  • 方式三:API 接入(未来支持邮箱集成)

2.1.3 提取维度

维度 提取规则 数据格式 优先级
联系人 签名块解析(姓名 + 职位) { name: string, title: string } P0
公司名 签名块 + 邮箱域名推断 string P0
邮箱 From 字段 string P0
邮箱域名 @ 后缀提取 string P0
国家 签名块地址 + 域名后缀推断 string P0
产品需求 正文 + 附件 NLP 提取 Array<{ product: string, quantity: number, unit: string }> P0
数量级 数字提取 + 单位识别 { total: number, unit: string } P0
认证要求 关键词匹配(FDA/CE/ISO/OSHA等) Array<string> P0
贸易术语 关键词匹配(FOB/CIF/DDP等) Array<string> P1
紧迫性信号 截止日期提取 + 催促语气识别 { hasDeadline: boolean, deadline?: Date, urgencyLevel: 'high'\|'medium'\|'low' } P0
附件清单 文件名 + 类型 + 大小 Array<{ name: string, type: string, size: number, isImportant: boolean }> P0

特殊标注规则

  • 附件文件名包含 "Company Profile" / "Requirements Spec" / "Tender" / "RFP" → isImportant: true
  • 邮件中有具体数量(如 "5,000 units/year")→ 自动计算预估年采购额

2.1.4 输出数据结构

interface EmailExtractionResult {
  emailId: string;                    // 邮件唯一ID
  extractedAt: string;                // 提取时间
  source: 'eml_file' | 'manual' | 'api';
  
  // 基础信息
  contact: {
    name: string;
    title?: string;
    email: string;
    phone?: string;
    address?: string;
  };
  company: {
    name: string;
    domain?: string;
    country?: string;
  };
  
  // 需求信息
  productRequirements: Array<{
    product: string;                   // 产品名称/描述
    quantity: number;                  // 数量
    unit: string;                      // 单位(units/year, pieces, etc.)
    specifications?: string[];          // 规格要求
  }>;
  certifications: string[];           // 认证要求
  tradeTerms: string[];                // 贸易术语
  
  // 紧迫性
  urgency: {
    hasDeadline: boolean;
    deadline?: string;                 // ISO 8601
    urgencyLevel: 'high' | 'medium' | 'low';
    urgencySignals: string[];          // 催促性语言片段
  };
  
  // 附件
  attachments: Array<{
    name: string;
    type: string;
    size: number;
    isImportant: boolean;               // 是否为公司资料/需求文档
  }>;
  
  // 原始内容(保留)
  originalEmail: {
    subject: string;
    body: string;                      // 纯文本
    htmlBody?: string;                  // HTML(如有)
    from: string;
    to: string[];
    cc?: string[];
    date: string;
  };
  
  // 元数据
  metadata: {
    hasSignature: boolean;             // 是否有完整签名块
    hasAttachments: boolean;
    ccCount: number;                    // 抄送人数
    mentionsTradeShow?: string;         // 提到的展会
  };
}

2.1.5 验收标准

  • 支持 .eml 文件解析,准确率 ≥ 95%
  • 联系人/公司名提取准确率 ≥ 90%
  • 产品需求提取准确率 ≥ 85%(有具体数量时)
  • 附件重要度标注准确率 ≥ 90%
  • 单封邮件处理时间 < 5 秒

2.2 第二层:快速研判(核心功能)

2.2.1 功能描述

基于五维评分体系,10 秒内给出线索价值判断和行动建议。

2.2.2 五维评分体系

维度一:需求明确度(Demand Clarity)

信号 得分 检测规则
提到具体产品名 +20 NLP 识别产品关键词(IFAK, cabinet, refill 等)
有明确数量 +25 数字 + 单位(如 "5,000 units/year")
有规格要求 +15 关键词(MOLLE, MARCH-P, custom, etc.)
有认证要求 +10 认证关键词(FDA, CE, ISO, OSHA 等)
询问价格/MOQ/交期 +15 关键词(pricing, MOQ, lead time, FOB, etc.)
只说"send catalog" +5 仅包含 "catalog" / "brochure" 等
无任何具体需求 0 以上均无

维度二:可信度(Credibility)

信号 得分 检测规则
企业域名邮箱 +15 域名非 gmail/hotmail/yahoo 等免费邮箱
免费邮箱 -10 gmail/hotmail/yahoo/outlook 等
完整签名块 +20 包含职位 + 电话 + 地址
有附件(公司资料) +20 附件文件名包含 "Company Profile" / "Profile"
有附件(需求文档) +15 附件文件名包含 "Requirements" / "Spec" / "Tender"
有抄送 +10 CC 字段非空
提到展会/面谈 +15 关键词(trade show, expo, meeting, conversation)
无附件+无签名+模糊 0 以上均无

维度三:商业规模(Business Scale)

信号 得分 检测规则
提到公司规模/营收 +20 数字 + 单位(如 "$45M revenue", "200 employees")
提到下游客户数量 +15 数字 + 客户类型(如 "120 hospitals")
年采购量 > $100K +25 基于产品需求 × 我方单价计算
年采购量 $30K-$100K +15 同上
年采购量 < $30K +5 同上
无法判断规模 0 无相关信号

维度四:供需匹配(Product Fit)

信号 得分 检测规则
提到的产品我方有对应 SKU +25/匹配项 产品关键词匹配我方产品库
认证要求我方可满足 +15 认证列表匹配我方认证库
需要定制但我方有能力 +10 关键词(OEM, custom, private label)且我方支持
产品完全不匹配 -20 无任何匹配

维度五:紧迫度(Urgency)

信号 得分 检测规则
有明确截止日期 +30 日期提取(如 "March 15, 2026")
催促性语言 +15 关键词(ASAP, urgent, prompt, immediate)
提到正在比价/选供应商 +10 关键词(looking for, selecting, comparing)
提到长期合作/代理 +5 关键词(long-term, distributor, agent)
无紧迫信号 0 以上均无

2.2.3 综合评级算法

// 权重配置
const WEIGHTS = {
  demandClarity: 0.25,
  credibility: 0.25,
  businessScale: 0.20,
  productFit: 0.15,
  urgency: 0.15
};

// 总分计算
const totalScore = 
  demandClarity * WEIGHTS.demandClarity +
  credibility * WEIGHTS.credibility +
  businessScale * WEIGHTS.businessScale +
  productFit * WEIGHTS.productFit +
  urgency * WEIGHTS.urgency;

// 等级判定
function getGrade(totalScore: number, credibility: number, demandClarity: number): 'S' | 'A' | 'B' | 'C' {
  if (totalScore >= 80 && credibility >= 60) return 'S';
  if (totalScore >= 60 && demandClarity >= 40) return 'A';
  if (totalScore >= 35) return 'B';
  return 'C';
}

等级定义

  • S级(立即跟进):总分 ≥ 80 且可信度 ≥ 60 → 24h 内跟进
  • A级(3天内跟进):总分 ≥ 60 且需求明确度 ≥ 40 → 3 天内跟进
  • B级(7天内跟进):总分 ≥ 35 → 7 天内跟进
  • C级(归档观察):总分 < 35 → 归档,定期群发营销邮件

2.2.4 客户画像识别(P1-P6)

识别逻辑(不再只看关键词,综合考虑邮件结构特征):

画像 核心识别逻辑 置信度阈值
P1 医药分销商 企业邮箱 + ("distributor"/"wholesale") + (FDA/ISO需求) + 有具体SKU级需求 ≥ 70%
P2 工业安全供应商 (OSHA/ANSI) + (壁挂箱/急救站需求) + 企业客户导向 ≥ 70%
P3 政府/机构采购 (标书编号/招标通知) + ("tender"/"procurement"/"lot") + 有截止日期 ≥ 80%
P4 品牌OEM客户 ("OEM"/"private label"/"custom branding") + 有品牌设计要求 + 关注打样 ≥ 70%
P5 电商/零售商 (Amazon/Shopify/FBA) + 关注单品利润率 + 小批量 ≥ 70%
P6 低质量/无效 免费邮箱 + 无具体需求 + 无附件 + 模糊语言 ≥ 60%

画像判断依据(展示给业务员):

  • 匹配的关键词列表
  • 邮件结构特征(附件/签名块/抄送)
  • 置信度百分比

2.2.5 产品匹配

匹配逻辑

  1. 提取客户需求中的产品关键词
  2. 与我方产品库进行语义匹配(支持同义词)
  3. 返回匹配产品列表,包含:
    • 产品名称 + SKU
    • 匹配度(0-100%)
    • 匹配依据(客户提到的关键词)

预估采购额计算

estimatedAnnualValue = sum(
  productRequirements.map(req => 
    req.quantity * matchedProduct.wholesalePrice
  )
);

2.2.6 输出:快速研判卡片

UI 组件结构

┌─────────────────────────────────────────────────────┐
│  [公司Logo/图标] 公司名                     [国旗] 国家 │
│  ─────────────────────────────────────────────────── │
│  [画像标签] [等级标签] [行动标签]                      │
│                                                      │
│  📦 需求摘要                                         │
│  · 产品1 × 数量1                                     │
│  · 产品2 × 数量2                                     │
│  💰 预估年采购额:$XXX,XXX                           │
│                                                      │
│  ✅ 可信度:[高/中/低]                               │
│  · 企业邮箱 · 完整签名块 · X份附件(含公司简介)     │
│                                                      │
│  🎯 我方匹配产品                                     │
│  · 产品A (SKU) → 匹配 需求X                          │
│  · 产品B (SKU) → 匹配 需求Y                          │
│                                                      │
│  📊 评分详情(可展开)                               │
│  · 需求明确度:XX分                                  │
│  · 可信度:XX分                                      │
│  · 商业规模:XX分                                    │
│  · 供需匹配:XX分                                    │
│  · 紧迫度:XX分                                      │
│                                                      │
│  📌 推荐行动                                         │
│  [时效]内发送:[文件1] + [文件2] + [文件3]           │
│                                                      │
│  [📧 查看原文]  [🔍 深度调研]  [✅ 确认并建档]       │
└─────────────────────────────────────────────────────┘

数据结构

interface QuickAssessmentResult {
  leadId: string;
  assessedAt: string;
  
  // 画像与等级
  persona: {
    type: 'P1' | 'P2' | 'P3' | 'P4' | 'P5' | 'P6';
    confidence: number;                 // 0-100
    reasoning: string[];                // 判断依据
  };
  grade: 'S' | 'A' | 'B' | 'C';
  followUpDeadline: string;             // ISO 8601(基于等级计算)
  
  // 五维评分
  scores: {
    demandClarity: number;              // 0-100
    credibility: number;
    businessScale: number;
    productFit: number;
    urgency: number;
    total: number;
  };
  
  // 需求快照
  demandSnapshot: {
    products: Array<{
      name: string;
      quantity: number;
      unit: string;
    }>;
    estimatedAnnualValue: number;       // USD
    certifications: string[];
  };
  
  // 产品匹配
  matchedProducts: Array<{
    productName: string;
    sku: string;
    matchReason: string;                // 为什么匹配
    matchScore: number;                 // 0-100
  }>;
  
  // 推荐行动
  recommendedActions: {
    timeframe: string;                  // "24h内" / "3天内" / "7天内"
    filesToSend: string[];               // 文件列表
    keyPoints: string[];                // 重点强调的内容
  };
}

2.2.7 验收标准

  • 快速研判耗时 < 10 秒
  • 五维评分准确率 ≥ 85%(与业务员直觉一致)
  • 画像识别准确率 ≥ 80%
  • 产品匹配准确率 ≥ 75%
  • 预估采购额误差 ≤ 30%(基于我方产品单价)

2.3 第三层:深度调研(按需触发)

2.3.1 触发条件

  • 自动触发:S/A 级线索(快速研判后自动执行)
  • 手动触发:B 级线索(业务员点击"深度调研"按钮)
  • 不触发:C 级线索(直接归档)

2.3.2 按画像差异化的调研策略

P1 医药分销商 → 重点调研:渠道覆盖 + 认证匹配

async function deepResearchP1(context: ResearchContext): Promise<ResearchResult> {
  // 1. 搜索公司官网
  const website = await scrapeCompanyWebsite(context.domain);
  const companyProfile = {
    productLines: extractProductLines(website),
    coverage: extractCoverage(website),        // 覆盖区域
    partners: extractPartners(website),        // 合作品牌
  };
  
  // 2. 检查 LinkedIn
  const linkedInData = await fetchLinkedInProfile(context.company);
  const companyScale = {
    employees: linkedInData.employeeCount,
    foundedYear: linkedInData.foundedYear,
  };
  
  // 3. 匹配认证
  const certificationMatch = checkCertificationMatch(
    context.requiredCerts,
    ourCertifications
  );
  
  // 4. 生成报价建议
  const pricingSuggestion = calculatePricing(
    context.productRequirements,
    ourProducts,
    { volumeDiscount: true }
  );
  
  return {
    companyProfile,
    companyScale,
    certificationMatch,
    pricingSuggestion,
    recommendedFiles: [
      '完整产品目录.pdf',
      'FDA_510k证书.pdf',
      'ISO_13485证书.pdf',
      'CE_Marking证书.pdf'
    ],
    suggestedScript: generateScript('P1', context),
  };
}

P3 政府/机构采购 → 重点调研:资质准备 + 投标要点

async function deepResearchP3(context: ResearchContext): Promise<ResearchResult> {
  // 1. 解析标书附件
  const tenderDoc = await parseTenderDocument(context.attachments);
  const tenderAnalysis = {
    technicalSpecs: tenderDoc.technicalRequirements,
    scoringCriteria: tenderDoc.scoringCriteria,
    deadline: tenderDoc.deadline,
    lots: tenderDoc.lots,                      // 标段
  };
  
  // 2. 检查资质要求
  const qualificationCheck = checkQualifications(
    tenderDoc.requiredQualifications,
    ourQualifications
  );
  
  // 3. 计算报价
  const quote = calculateQuote(
    tenderDoc.lots,
    ourProducts,
    { includeShipping: true, includeCert: true }
  );
  
  return {
    tenderAnalysis,
    qualificationCheck,
    quote,
    recommendedFiles: [
      '资质文件包.zip',
      '投标方案.pdf',
      '合规性检查报告.pdf'
    ],
    actionPlan: {
      deadline: tenderDoc.deadline,
      tasks: [
        { task: '准备资质文件', dueDate: '...' },
        { task: '准备投标方案', dueDate: '...' },
        { task: '提交投标', dueDate: tenderDoc.deadline },
      ],
    },
    suggestedScript: generateScript('P3', context),
  };
}

P4 品牌OEM客户 → 重点调研:品牌调性 + 定制可行性

async function deepResearchP4(context: ResearchContext): Promise<ResearchResult> {
  // 1. 搜索品牌官网
  const brandWebsite = await scrapeBrandWebsite(context.domain);
  const brandProfile = {
    positioning: extractBrandPositioning(brandWebsite),
    targetMarket: extractTargetMarket(brandWebsite),
    designStyle: extractDesignStyle(brandWebsite),  // 从图片/色彩分析
  };
  
  // 2. 评估定制需求
  const customizationReq = context.customRequirements;  // 从邮件提取
  const feasibility = assessCustomizationFeasibility(
    customizationReq,
    ourCapabilities
  );
  
  // 3. 计算打样成本
  const sampleCost = calculateSampleCost(
    customizationReq,
    ourProducts
  );
  
  // 4. 查找类似案例
  const similarCases = findSimilarOEMCases(
    brandProfile,
    ourOEMHistory
  );
  
  return {
    brandProfile,
    feasibility,
    sampleCost,
    similarCases,
    recommendedFiles: [
      'OEM方案书.pdf',
      '打样报价单.pdf',
      '类似案例参考.pdf'
    ],
    suggestedScript: generateScript('P4', context),
  };
}

P6 低质量线索 → 不执行深度调研

// 直接归档,不执行任何调研
function handleP6(context: ResearchContext): void {
  archiveLead(context.leadId);
  scheduleBulkEmail(context.email, 'marketing_template');
}

2.3.3 输出:跟进准备包

UI 组件结构

┌─────────────────────────────────────────────────────┐
│  📋 跟进准备包 — [公司名]                            │
│  ─────────────────────────────────────────────────── │
│                                                      │
│  🏢 公司画像                                         │
│  · [公司简介]                                        │
│  · 覆盖区域:[区域]                                  │
│  · LinkedIn: [员工数]                                │
│  · 官网产品线:[产品线列表]                          │
│                                                      │
│  👤 联系人画像                                       │
│  · [姓名] — [职位]                                   │
│  · 决策权限:[高/中/低]                              │
│  · LinkedIn: [背景摘要]                              │
│                                                      │
│  📦 需求 vs 我方产品匹配                             │
│  ┌──────────────┬──────────────┬──────────┐          │
│  │ 客户需求      │ 推荐产品      │ 年采购额  │         │
│  ├──────────────┼──────────────┼──────────┤          │
│  │ [需求1]      │ [产品1]      │ $XXX,XXX │          │
│  │ [需求2]      │ [产品2]      │ $XXX,XXX │          │
│  └──────────────┴──────────────┴──────────┘          │
│  💰 预估年采购总额:$XXX,XXX                         │
│                                                      │
│  ✅ 认证匹配检查                                     │
│  · [认证1] → ✅ 我方已有 / ❌ 我方无                  │
│  · [认证2] → ✅ 我方已有 / ❌ 我方无                  │
│                                                      │
│  🎯 建议跟进策略                                     │
│  1. [时效]内回复邮件,附上:                          │
│     · [文件1]                                        │
│     · [文件2]                                        │
│     · [文件3]                                        │
│  2. 邮件中[具体建议]                                 │
│  3. 重点强调:[要点1], [要点2]                       │
│                                                      │
│  📝 建议回复话术(可编辑)                           │
│  ──────────────────────────────────────              │
│  [AI 生成的个性化回复草稿]                            │
│  ──────────────────────────────────────              │
│                                                      │
│  [✏️ 编辑话术]  [📧 发送邮件]  [✅ 建档并设置提醒]   │
└─────────────────────────────────────────────────────┘

数据结构

interface DeepResearchResult {
  leadId: string;
  researchedAt: string;
  persona: 'P1' | 'P2' | 'P3' | 'P4' | 'P5' | 'P6';
  
  // 公司画像
  companyProfile: {
    description: string;
    coverage?: string[];
    employees?: number;
    foundedYear?: string;
    productLines?: string[];
    website?: string;
  };
  
  // 联系人画像
  contactProfile: {
    name: string;
    title: string;
    decisionPower: 'high' | 'medium' | 'low';
    linkedInSummary?: string;
  };
  
  // 产品匹配详情
  productMatching: Array<{
    customerNeed: string;
    recommendedProduct: {
      name: string;
      sku: string;
    };
    annualValue: number;
  }>;
  totalEstimatedValue: number;
  
  // 认证匹配
  certificationMatch: Array<{
    required: string;
    status: 'matched' | 'missing';
    ourCert?: string;                   // 我方证书名称
  }>;
  
  // 跟进策略
  followUpStrategy: {
    timeframe: string;
    filesToSend: string[];
    keyPoints: string[];
    additionalActions?: string[];
  };
  
  // 回复话术
  suggestedScript: {
    draft: string;                      // AI 生成的草稿
    editable: boolean;
  };
  
  // 特殊字段(按画像类型)
  personaSpecificData?: {
    // P1: 报价建议
    pricingSuggestion?: any;
    // P3: 投标计划
    tenderActionPlan?: any;
    // P4: 打样成本
    sampleCost?: any;
  };
}

2.3.4 验收标准

  • 深度调研耗时:P1/P2/P4 ≤ 2 分钟,P3 ≤ 3 分钟
  • 公司画像准确率 ≥ 80%(与官网信息一致)
  • 联系人决策权限判断准确率 ≥ 75%
  • 认证匹配准确率 100%(基于我方认证库)
  • 回复话术生成质量:业务员直接使用率 ≥ 60%

2.4 客户建档(自然沉淀)

2.4.1 数据模型

interface Lead {
  // === 基础信息(第一层自动填充) ===
  id: string;
  createdAt: string;
  updatedAt: string;
  
  contact: {
    name: string;
    title?: string;
    email: string;
    phone?: string;
    address?: string;
  };
  company: {
    name: string;
    domain?: string;
    country?: string;
  };
  
  originalEmail: {
    subject: string;
    body: string;
    attachments: Array<{ name: string, url: string }>;
    emailId: string;
  };
  
  // === 快速研判结果(第二层自动填充) ===
  persona?: {
    type: 'P1' | 'P2' | 'P3' | 'P4' | 'P5' | 'P6';
    confidence: number;
    reasoning: string[];
  };
  grade?: 'S' | 'A' | 'B' | 'C';
  scores?: {
    demandClarity: number;
    credibility: number;
    businessScale: number;
    productFit: number;
    urgency: number;
    total: number;
  };
  demandSnapshot?: {
    products: Array<{ name: string, quantity: number, unit: string }>;
    estimatedAnnualValue: number;
    certifications: string[];
  };
  matchedProducts?: Array<{
    productName: string;
    sku: string;
    matchScore: number;
  }>;
  
  // === 深度调研结果(第三层按需填充) ===
  deepResearch?: DeepResearchResult;
  
  // === 跟进状态 ===
  status: 'new' | 'assessed' | 'researched' | 'contacted' | 'replied' | 'quoted' | 'archived';
  followUpDeadline?: string;
  assignedTo?: string;                 // 业务员ID
  
  // === 跟进记录(持续积累) ===
  communications: Array<{
    date: string;
    type: 'email' | 'call' | 'meeting';
    summary: string;
    attachments?: string[];
  }>;
  quotes: Array<{
    date: string;
    products: Array<{ sku: string, price: number, quantity: number }>;
    status: 'sent' | 'accepted' | 'rejected' | 'pending';
  }>;
  samples: Array<{
    date: string;
    product: string;
    status: 'sent' | 'received' | 'approved' | 'rejected';
  }>;
  notes: Array<{
    date: string;
    author: string;
    content: string;
  }>;
  
  // === 销售验证 ===
  salesFeedback?: {
    verifiedPersona?: 'P1' | 'P2' | 'P3' | 'P4' | 'P5' | 'P6';
    verifiedGrade?: 'S' | 'A' | 'B' | 'C';
    notes?: string;
    verifiedAt?: string;
  };
}

2.4.2 状态流转

new (邮件摄入)
  ↓
assessed (快速研判完成)
  ↓
researched (深度调研完成,可选)
  ↓
contacted (业务员确认并建档)
  ↓
replied (客户回复)
  ↓
quoted (已报价)
  ↓
[成交] / [归档]

2.4.3 验收标准

  • 线索自动创建(邮件摄入后)
  • 数据逐层自动填充(无需手动录入)
  • 状态流转清晰,支持回退
  • 跟进记录可追溯

三、非功能需求

3.1 性能要求

指标 要求
邮件解析 < 5 秒
快速研判 < 10 秒
深度调研 P1/P2/P4 ≤ 2 分钟,P3 ≤ 3 分钟
页面加载 首屏 < 2 秒
API 响应 P95 < 500ms

3.2 可用性要求

  • 系统可用性 ≥ 99.5%
  • 支持并发用户数 ≥ 50
  • 数据备份:每日自动备份

3.3 安全要求

  • 邮件内容加密存储
  • 用户权限控制(业务员只能看自己的线索)
  • 审计日志(记录所有操作)

3.4 兼容性要求

  • 浏览器:Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
  • 移动端:响应式设计,支持手机查看

四、用户流程

4.1 主流程:邮件处理

1. 业务员上传 .eml 文件
   ↓
2. 系统自动解析邮件(< 5秒)
   ↓
3. 系统自动执行快速研判(< 10秒)
   ↓
4. 显示快速研判卡片
   ↓
5a. S/A 级 → 自动触发深度调研
5b. B 级 → 业务员选择是否深度调研
5c. C 级 → 直接归档
   ↓
6. 显示跟进准备包
   ↓
7. 业务员确认并建档
   ↓
8. 进入跟进管道

4.2 子流程:画像验证

1. 业务员查看快速研判结果
   ↓
2. 发现画像判断有误
   ↓
3. 点击"验证画像"
   ↓
4. 选择正确画像 + 填写备注
   ↓
5. 系统记录反馈,用于模型优化

五、技术实现要点

5.1 核心技术栈

  • 前端:Angular 17+ (与现有 demo-nanchi 保持一致)
  • 后端:Node.js / Python (待定)
  • AI 服务:LLM API (用于 NLP 提取、话术生成)
  • 数据存储:PostgreSQL (结构化数据) + 文件存储 (附件)

5.2 关键算法

  • 邮件解析:使用现有 EML 解析库 + NLP 提取
  • 产品匹配:语义相似度计算(向量化 + 余弦相似度)
  • 画像识别:规则引擎 + 机器学习(未来优化)
  • 话术生成:LLM Prompt Engineering

5.3 第三方服务

  • 社媒数据:LinkedIn API(如可用)/ 网页爬取
  • 官网爬取:Firecrawl / 自建爬虫
  • 企业数据:可选集成企业信息查询 API

六、优先级与里程碑

6.1 功能优先级

优先级 功能 预计工时
P0 邮件摄入 & 信息提取 2 周
P0 快速研判(五维评分) 3 周
P0 客户画像识别(P1-P6) 2 周
P0 产品匹配 2 周
P0 快速研判卡片 UI 1 周
P1 深度调研(P1 流程) 2 周
P1 深度调研(P3 流程) 2 周
P1 深度调研(P4 流程) 2 周
P1 跟进准备包 UI 1 周
P1 客户建档(数据模型) 1 周
P2 回复话术生成 2 周
P2 画像验证机制 1 周
P2 看板视图(按等级/画像) 1 周

6.2 里程碑

里程碑 时间 交付物
M1: MVP 第 8 周 邮件摄入 + 快速研判 + 基础建档
M2: 深度调研 第 12 周 P1/P3/P4 深度调研流程
M3: 完整功能 第 16 周 全部功能上线

七、验收标准总结

7.1 功能验收

  • 邮件解析准确率 ≥ 95%
  • 快速研判耗时 < 10 秒
  • 五维评分准确率 ≥ 85%
  • 画像识别准确率 ≥ 80%
  • 产品匹配准确率 ≥ 75%
  • 深度调研耗时符合要求
  • 回复话术直接使用率 ≥ 60%

7.2 业务验收

  • 单封邮件处理时间从 5-10 分钟降至 1-3 分钟
  • S/A 级线索跟进率 ≥ 90%
  • 业务员满意度 ≥ 4.0/5.0

PRD 文档版本:v1.0
最后更新:2026-02-12