# 客户画像框架 × 宝锐销售工作台 落地分析

- **框架来源**：刘欣 2026-09-29 提供的 xmind《客户画像》（实为**通用模板**，全篇无具体客户名，含 `。。。。。。`/`子主题2`/`产品1` 等占位符）
- **对比对象**：宝锐销售工作台（`~/Desktop/Hermes输出-工作类/`，index.html 双入口 + app.html，JSON 驱动）
- **分析日期**：2026-09-29　**分析方式**：只读盘点（未修改任何现有文件，未部署、未执行生产管道脚本）
- **结论口径**：`已覆盖` = 工作台有**独立字段**且已落库、可聚合渲染；`部分` = 仅有自由文本/近似字段/模板页未落库；`无` = 找不到任何采集位置

---

## 〇、盘点到的「客户信息」现有采集通道（本次比对的事实基础）

| 通道 | 文件 | 落库 | 说明 |
|---|---|---|---|
| 客户360档案 | `数据/customer_360.json`（1262 客户）+ `工具/客户360档案.html` | ✅ | 全自动聚合（ERP/飞书 MCP）。字段：name/short/group/sales/sales_line/level/tier/total/orders/contacts(仅人数)/latest_date/y2024-26/h2_2026/top_products/activities/opps/opp_sandbox/complaints/recent_orders/risks。**risks 全部为交易类**（今年无采购 349、客诉进行中 104、采购大幅下滑 39、ERP新增客户 58/7） |
| 活动录入（人工唯一入口） | `工具/活动录入.html` → 服务端落 `数据/activities/*.json` + CloudBase `activities` 集合 | ✅ | 3 类分块：`projBlockHtml()` 项目跟进 / `purBlockHtml()` 采购跟进 / **`custBlockHtml()` 客户档案完善**（客户维度、不挂商机、强制单块）。已用 key：`decision[]`(姓名·职务·角色·影响力·联系方式·沟通偏好)、`biz_desc`、`revenues[]`(year·amt·source)、`suppliers[]`(name·project·amt·pct)、`self_share`、`main_rival`、`need`、`issue`、`feedback`、`visit_goal`、`visit_content`、`plan[]`、`prices[]` |
| 作战地图聚合 | `脚本/build_customer_dossier.py` → `数据/customer_dossier.json` | ⚠️ 结构在、**当前 count=0** | 只认 `type=='客户档案完善'` 的活动；5 维度各 20 分（决策链/主营业务/近三年营收/TOP3供应商/我司份额）；输出 penetration / gap_wan / top3_pct / score / missing |
| 客户档案完善活动缓存 | `数据/profiles/*.json`（95 个）+ `数据/mcp_customers.json`（1745）+ `数据/customer_contacts.json`（8804 联系人，**仅姓名+飞书id**） | ✅ 只读 | 飞书 MCP 拉取。profiles 有 `contacts[{name,id}]`、`opps[{name,status,node,owner,decision_url}]`、`pricing`、`sales_2024-26`、`region`、`decision_url` |
| 商机/项目 | `数据/opps_by_customer.json`、`数据/customer_order_context.json`、`customer_360.opps` | ✅ | 项目名·状态·节点·创建人·飞书链接 |
| 特殊要求库 | `数据/customer_special_requirements.json`（2865 条）+ `工具/特殊要求复核.html` | ✅ | 类别：搭配规则/配方·体系/包装·标签/交付·物流/质检·文件/价格·账期/其他（由 GLM 从 ERP 备注 + 活动文本提取） |
| 三表一书 | `工具/宝锐三表一书.html` | ❌ **不落库** | 读 `/api/feishu/customer_data`（`数据/customer_feishu_data.json` **仅 1 个客户缓存**），无保存/提交/写接口。字段最全（f_industry/f_productLine/f_regStage/f_currentSupplier/f_painPoints/f_priority/KP1-3/t2_*），但**目前是一份打印/展示模板，不是采集通道** |
| 拜访卡 | `工具/拜访卡模板.html`（占位符模板，由 `build_fosun_visit_brief.py` 填充）+ `工具/拜访卡管理.html` | 半自动 | 有 decisionChainLinks / attitudeChange / compMatrix / crossIntel，**明确提示"该客户暂无飞书决策链链接（需在飞书销售管理补充）"** |
| 测试台账 | `工具/测试台账_7货号5客户.html`（460KB 离线静态页） | ❌ | 未接入客户维度，是单人一次性分析页 |
| AI助手知识库 | `数据/kb_index.json` | ✅ | 含华为《客户关系规划工具包》原文（"个人基本信息：性别、年龄、教育情况、**家庭情况**、个人履历、兴趣爱好"）→ 框架中隐私项的来源；KB 内 `成立时间` 仅出现在**竞品**档案（艾科瑞等），不是客户 |

---

## 一、逐维度对照表（框架 31 个叶子维度）

| # | 框架大类 | 框架维度 | 工作台是否已收集 | 在哪收集（无则写『无』） |
|---|---|---|---|---|
| 1 | 客户概况·工商 | 成立时间 | 无 | 无。（全库唯一命中在 `数据/kb_index.json` 的**竞品**档案里，非客户） |
| 2 | 客户概况·工商 | 注册资本 | 无 | 无 |
| 3 | 客户概况·工商 | 融资/上市情况 | 无 | 无 |
| 4 | 客户概况·工商 | 人员规模 | 无 | 无。（`数据/_sr_input*.json` 命中仅为活动原文散文，无字段） |
| 5 | 客户概况·工商 | 资金链/经营风险 | 部分 | `customer_360.risks` 仅 4 类**交易类**风险（今年无采购/客诉进行中/采购大幅下滑/ERP新增客户），无资金链、无经营状况 |
| 6 | 客户概况 | 企业属性（动保/人医/NGS/其他） | 部分 | 近似：`工具/宝锐三表一书.html` `f_industry`（分子诊断IVD/免疫诊断/POCT/NGS/科研高校/经销商/动物检疫·宠物/其他，口径≠框架四分类，且不落库）；`customer_360.sales_line`（da/ls 业务线）；`数据/profiles/LS_*.json` 前缀 |
| 7 | 客户概况 | 资质情况（注册/在注册产品） | 部分 | `三表一书` `f_regStage`（已有注册证/注册检·临床中/研发阶段/不涉及报证）——仅 4 档、不落库；`活动录入` `biz_desc` placeholder 要求写"资质、注册证数"但只是自由文本 |
| 8 | 客户概况 | 企业战略方向（综合/呼吸道/肿瘤/HPV/NGS/法医/动保/宠物） | 无 | 无。**有问无存**：`工具/宝锐销售Copilot.html` 的研发/老板提问清单里有"公司战略方向：今年有无新报证计划或产线扩张？"，但没有任何字段承接答案 |
| 9 | 组织架构 | 角色清单（姓名·职务·角色） | ✅ 已覆盖 | `活动录入`「客户档案完善」`decision[]`、`三表一书` KP1-3（name/role/care/attitude）、飞书决策链 URL（`profiles.decision_url`）；但 `数据/customer_contacts.json` 8804 条仅姓名+id |
| 10 | 组织架构 | 层级/汇报关系（总监→经理→人员） | 无 | 无。decision[] 是**扁平列表**，无上下级字段 |
| 11 | 组织架构 | 联系方式 | 部分 | `活动录入` `decision[].联系方式`（自由文本）；`customer_contacts.json` 无电话/微信 |
| 12 | 组织架构 | 沟通偏好/关注点 | 部分 | `活动录入` `decision[]` 有"沟通偏好/关注点"**合并在一个输入框**；`三表一书` `kp*_care` |
| 13 | 组织架构 | 决策人态度（支持/中立/抵触） | ✅ 已覆盖 | `三表一书` `kp1/2/3_attitude`、`拜访卡模板` attitudeChange |
| 14 | 组织架构 | 性格特点（进取型/稳健型） | 无 | 无（**不建议收集**，见第四节） |
| 15 | 组织架构 | 是否接受礼品 | 无 | 无（**不建议收集**） |
| 16 | 组织架构 | 家庭情况（已婚/2娃/养猫） | 无 | 无（**不建议收集**） |
| 17 | 组织架构 | 在管项目 / 遇到的问题 | 部分 | `活动录入` `need`（客户需求）、`issue`（遇到的问题）、`opps.owner` |
| 18 | 组织架构 | 决策模式（性能优先/价格优先·备选供应商·研发定标·采购再砍价·首轮报价留空间·注册与优化分开） | 无 | 无结构化字段。仅 `self_share`/`main_rival`（卡位逻辑）和 `revenues.source` 沾边 |
| 19 | 组织架构 | 客户内部痛点（人员不足/进口成本高想替换） | ✅ 已覆盖 | `三表一书` `f_painPoints`（替换意愿·痛点）、`f_priority`（客户当前最重要的事）；`活动录入` `need`。均为自由文本 |
| 20 | 客户产品 | 板块归属（IVD注册/公卫/国外/宠物/动物） | 无 | 无字段。仅能从商机名（`sales_line` da/ls + 项目名）间接猜 |
| 21 | 客户产品 | 项目/产品线清单 | ✅ 已覆盖 | `数据/opps_by_customer.json`、`profiles[].opps`、`customer_360.opps/opp_sandbox`、`customer_order_context.json` |
| 22 | 客户产品 | 项目阶段/节点 | ✅ 已覆盖 | `profiles[].opps[].status/node`、`opps_by_customer.json.status` |
| 23 | 客户产品·9维 | 年出货量（300万T/100万T） | 无 | 无。`top_products` 是**我司卖给他的量**，不是客户成品项目的年出货量 |
| 24 | 客户产品·9维 | 体系（25ul / 单管全预混） | 无 | 无字段。仅 `特殊要求库` 的「配方/体系」类别（2865 条）含零散描述 |
| 25 | 客户产品·9维 | 现用原料品牌 | ✅ 已覆盖 | `活动录入` `suppliers[]`(name/project/amt/pct)、`main_rival`、`三表一书` `f_currentSupplier`、专项价格情报页 |
| 26 | 客户产品·9维 | 竞对份额/金额 | ✅ 已覆盖 | `suppliers[].amt/pct` → `customer_dossier.metrics.top3_amt_wan/top3_pct/gap_wan` |
| 27 | 客户产品·9维 | 我司份额/渗透率 | ✅ 已覆盖 | `活动录入` `self_share` → `dossier.metrics.penetration`（我司累计采购额/客户最新年营收） |
| 28 | 客户产品·9维 | 过往测试情况 | 部分 | `活动录入` `issue`/`feedback`（自由文本）、`特殊要求库`「质检/文件」；`工具/测试台账_7货号5客户.html` 是离线页、未接画像 |
| 29 | 客户产品·9维 | 现状 / 机会 / 挑战 | 部分 | `活动录入` `need`/`visit_content`；`三表一书` `t2_background`/`t2_blocker`/`t2_competeSit`（**均不落库**）；`opps.status` 仅状态码 |
| 30 | 客户产品·9维 | 需要的支持 / 突破方向 | 部分 | `活动录入` `plan[]`（事项·负责人·时间节点）、`三表一书` `t2_nextAction`/`f_value`/`f_advantage`（不落库） |
| 31 | 客户产品·板块 | 板块级营收规模/增长率（IVD 1亿 / 公卫 5000万 / 国外 3000万+30%） | 部分 | 只有**客户整体**近三年营收：`活动录入` `revenues[]`(year/amt/source)。**分板块、分产品线的规模与增长率无字段** |

**统计：已覆盖 8 个，部分覆盖 10 个，完全无 13 个 → 缺口总数 23 个。**

---

## 二、缺口清单（按落地成本分级）

### P0 —— 表单加字段即可（改 `工具/活动录入.html` + 扩 `脚本/build_customer_dossier.py` 的 key 白名单，无新页面）

| 缺口 | 落点 | 建议英文 key |
|---|---|---|
| 成立时间 | 客户档案完善卡（`custBlockHtml()`）新增「工商与资质」卡片 | `founded_year` |
| 注册资本 | 同上 | `registered_capital_wan` |
| 融资/上市情况 | 同上（单选） | `financing_status` |
| 人员规模 | 同上（单选档位） | `headcount_scale` |
| 企业属性 | 同上（单选，对齐框架四分类） | `corp_nature` |
| 企业战略方向 | 同上（多选） | `strategy_focus` |
| 资质/注册在研产品 | 同上（单选沿用 f_regStage 档位 + 计数 + 文本） | `license_status` / `license_count` / `registering_products` |
| 资金链/经营风险 | 同上（文本 + 来源标注） | `risk_notes` / `risk_note_source` |
| 决策链层级与汇报关系 | `decision[]` 行内加两个输入 | `influence_tier` / `reports_to` |
| 沟通偏好 vs 关注点（拆分） | `decision[]` 现有单框拆为两框 | `comm_pref` / `focus_point` |
| 决策人态度结构化 | `decision[]` 行内加下拉（复用 kp 枚举） | `attitude` |
| 决策模式 6 问 | 客户档案完善卡新增「决策模式」卡片 | `price_priority` / `require_backup_vendor` / `vendor_decider` / `negotiation_rounds` / `quote_buffer` / `phase_split_reg_opt` |
| 内部痛点分类 | 客户档案完善卡把 `f_painPoints` 思路字段化 | `pain_labor_shortage` / `pain_import_cost` / `pain_notes` |
| 板块归属 | 项目跟进卡（`projBlockHtml()`，按商机分块）加下拉 | `segment` |
| 产品线 | 同上 | `product_line` |
| 年出货量 | 同上 | `annual_volume_t` / `volume_unit` |
| 体系 | 同上 | `reaction_system` |
| 项目级现用品牌 | 同上（可预填 `suppliers[]`/`main_rival`） | `incumbent_brand` |
| 过往测试情况 | 同上（下拉 + 文本） | `test_status` / `test_feedback` |
| 机会/挑战/需要的支持/突破方向 | 同上（四个文本域，对应 t2_blocker/competeSit/nextAction/background） | `opportunity` / `challenge` / `support_needed` / `breakthrough` |

### P1 —— 需新字段 + 新聚合（新 JSON / 扩聚合脚本 / 扩渲染）

| 缺口 | 落点 | 建议 key / 文件 |
|---|---|---|
| 客户定性画像总档聚合 | 扩 `脚本/build_customer_dossier.py`：`DIM_LABEL` 由 5 维扩到 12 维（工商/资质/战略/决策链/决策模式/痛点/营收/供应商/份额），`score()` 同步扩容 | `数据/customer_dossier.json` 新增 `profile{...}` 节点 |
| 客户×项目×9维 矩阵 | 新建聚合脚本（或扩 dossier）读 activities 的 `segment/product_line/annual_volume_t/...` | `数据/customer_project_map.json`（key = 客户名 → 板块 → 产品线 → 9 维） |
| 分板块/分产品线营收规模与增长率 | 需在 P0 的 `revenues[]` 行内加 `segment` 维度，再按板块汇总 | `revenues[]` 增 `segment`；聚合进 `customer_project_map.json` 的 `segment_size_wan` / `segment_growth_pct` |
| 过往测试情况接入客户维度 | 把 `工具/测试台账_7货号5客户.html` 的口径脚本化，按 客户×货号 聚合 | `数据/customer_test_feedback.json`（复用现有 ERP 备注 + 活动文本，不新采） |
| 资金链/经营风险评估 | 需外部数据源（天眼查/企查查公开工商·司法·被执行信息）。建议只做"风险标签 + 来源 + 更新时间" | `数据/customer_business_risk.json`（`risk_tags[]` / `risk_source` / `risk_updated_at`） |
| 客户画像完善度看板 | 扩 `工具/客户360档案.html`：把 dossier 的 `score/missing` 从 5 维改 12 维，新增"待补项"清单 | `工具/客户360档案.html`（作战地图Tab） |

### P2 —— 需新模块或新页面

| 缺口 | 建议 |
|---|---|
| 组织架构与决策链**层级可视化** | 新页面 `工具/客户组织架构.html`：由 `decision[].influence_tier/reports_to` 渲染成树（研发总监→研发经理→人员 / 供应链→采购经理→采购 / 老板 / 副总），节点挂 态度徽章 + 沟通偏好 + 在管项目 |
| 客户画像**主视图**（板块 × 产品线 × 9 维） | 新页面 `工具/客户画像矩阵.html`，消费 `数据/customer_project_map.json`。与 `工具/客户360档案.html` 分工：360 看交易+档案完善度，画像矩阵看"客户在做什么产品、卡在哪、往哪打" |
| 工商信息**自动采集**模块 | 天眼查/企查查 API（公开工商信息，合规可采）→ 定时刷新 `数据/customer_business_risk.json`；**不做人工录入**（成立时间/注册资本/人员规模 这类可自动化的量，让销售手填必然填不全） |
| 决策模式 →**报价策略建议** | 基于 `quote_buffer`/`negotiation_rounds`/`require_backup_vendor` 生成下单页（`baoyu-order-entry`）的报价提示条；属增强，非采集 |
| 板块标准字典 | `segment`/`strategy_focus`/`corp_nature` 三个枚举需先由市场部定版（框架本身只给了示例值），否则统计口径会飘 |

**P0/P1/P2 计数：P0 20 项（合并展示后 20 个字段组）、P1 6 项、P2 5 项。**

---

## 三、落地路径（建议实施顺序）

1. **第 1 步（P0，最小改动）**：只改 `工具/活动录入.html` 的 `custBlockHtml()` 与 `projBlockHtml()`，加卡片与 `data-f` / 下拉。新增 key 会**自动**进入 `blocks[0]` 被服务端原样落盘（服务端不校验白名单），因此**前端改完当天即可开始收数**，聚合可后补。
2. **第 2 步（P1）**：扩 `脚本/build_customer_dossier.py` 的 `DIM_LABEL`/`score()`/输出结构（该脚本目前 `count=0`，正好可以顺手把 5 维扩到 12 维而不影响任何已有渲染）。
3. **第 3 步（P1）**：新增 `数据/customer_project_map.json` + 对应聚合脚本，把「客户产品」三大板块落到项目粒度。
4. **第 4 步（P2）**：新增 `客户组织架构.html` 与 `客户画像矩阵.html` 两个页面，均走自包含 HTML（工作台铁律：不依赖外网 CDN，数据走 `/数据/*.json` 相对路径 + 登录 token 鉴权）。
5. **贯穿约束**：新增字段一律挂在**客户名**上；渲染时按现有权限作用域过滤（销售只看自己名下客户，`baoyu-sales-data-isolation`），不要新增跨销售可见的客户画像页。

---

## 四、不建议收集的部分及理由

| 框架中的项 | 建议 | 理由 |
|---|---|---|
| **是否接受礼品** | ❌ 不建字段 | 商业贿赂红线。写入公司系统即形成"可检索的行贿风险清单"，对内审/合规/客户审计都是负资产；销售也会因抗拒而**不再填整张卡**（污染整表可达性）。客户层面的礼品往来走已有的礼品台账/促销台账（`礼品下单系统`）即可 |
| **家庭情况**（已婚、2个小孩、养猫） | ❌ 不建字段 | 属《个人信息保护法》下的个人信息，婚姻/家庭属敏感个人信息，处理需单独同意且须"必要"；采集这类信息无任何可举证的业务必要性，一旦泄露是实打实的合规事故。注意其来源是 KB 里华为《客户关系规划工具包》，**华为的工具包不等于宝锐可以照搬** |
| **性格特点**（进取型/稳健型/开朗/正直/较真） | ❌ 不建字段，改造为客观行为 | 性格是主观评价，写进系统等于留下难以撤回的人格评价记录；且同一人不同销售的评价会互相矛盾，聚合出来是噪声，没有决策价值 |
| 性别 / 年龄 / 教育 / 个人履历 / 兴趣爱好 | ❌ 不采 | 同上（PIPL + 无业务必要性）。**替代**：只保留"技术背景/是否有决策权/是否技术型把关"这类**与交易角色直接相关**的客观描述 |
| 客户人员的负面评价（"不接受礼品""比较麻烦""不好打交道"） | ⚠️ 降级 | 改用中性、可复核的行为描述（"仅通过邮件响应""决策只看数据，需量化对比表"），既达到同样作战目的，又能在客户看到界面时不产生纠纷 |
| 竞对员工的个人信息 | ❌ 不采 | 无任何业务必要，且风险与上同 |

**替代设计（推荐）**：把"性格/家庭/礼品"三项的**真实作战意图**用三个可合规字段承接——
- `comm_pref`（沟通偏好：如"只认可量化数据，需提前发对比表"）
- `focus_point`（关注点：性能/价格/账期/技术支持）
- `decision_style_personal`（决策习惯：如"先看数据再谈价，不走人情"）

---

## 五、一句话结论

框架的**「客户组织架构与决策链」「客户产品×9维」两块，工作台的字段骨架已经具备**（决策链、供应商份额、我司份额、项目阶段可直接落位）；**真正的窟窿在两头**：一头是**工商/资质/战略方向**（0 字段，且 Copilot 已经在问却没有存），另一头是**项目级的量纲**（年出货量、体系、板块归属、机会/挑战/支持/突破四个分栏），目前全都散在自由文本或根本无处可写。落地时先把 P0 的 20 个字段塞进 `工具/活动录入.html` 的两个已有卡片函数（当天可收数），再补 P1 聚合与 P2 两个页面。框架里 **"是否接受礼品 / 家庭情况 / 性格特点"三项建议不采**（合规红线 + 销售阻力），改以三个客观行为字段替代。
