活动录入页 · 客户画像字段扩充草图

v0.1 待你拍板 · 未实施

这份草图要解决什么

刘欣的《客户画像》框架里有 23 个维度工作台完全没采集(工商/资质/战略方向 0 字段;项目级量纲全散在自由文本)。本草图给出把这些维度塞进「活动录入」页的具体形态 —— 因为它是工作台唯一的人工采集入口(「三表一书」字段虽全但不落库,是打印模板)。

20
P0 字段组
4
新增卡片
3
改动点(后端 2 处)
7
待你定版的枚举
2
后端陷阱(不改会丢数据)
🔴 重要更正 —— 我先前判断错了,这里必须说清楚
我最初以为「服务端原样落盘、不校验字段」→ 结论是只改前端即可。实测推翻了它。
脚本/销售工作台服务.py 的 _clean_block(b) 是硬编码白名单:它用 20 个 b.get('…') 逐字段重建一个新 dict,不在表内的 key 全部被丢弃。新字段若只改前端,提交后静默消失。
⚠️ 而且还有第二个更隐蔽的坑:_block_empty(bb) 会检查那 20 个旧字段是否全空 —— 如果销售只填了新卡片、旧字段没动,整个块会被判定为「空块」直接丢弃。
结论:后端必须同步改 2 处,不是 0 处。这条不修,收上来的数据会是残缺的。
🧪 实证(抽取生产代码原样执行,非推断) —— 脚本 verify_activity_block_whitelist.py 可复跑:
场景实测结果
A. 只填旧字段(基线)✅ 块保留(证明抽取逻辑正确)
B. 只填 22 个新字段存活 0 / 22 且 _block_empty → True 整块被丢弃
C. decision[] 新增 5 个子字段存活 0 / 5

一、改动面总览 2 个文件 + 1 个聚合脚本 · 后端 2 处不可省

落点函数 / 脚本加什么
活动录入
工具/活动录入.html
custBlockHtml()
「客户档案完善」卡组,现有 5 张
新增 2 张卡(工商与资质 / 决策模式 + 痛点),现有「决策链」行内加 4 个字段。卡号顺延为 1/2/3/4/5/6/7。
projBlockHtml()
「项目跟进」卡组,按商机分块
新增 1 张卡(项目画像 9 维),每块一份。
作战地图聚合
build_customer_dossier.py
位于 脚本/ 目录
DIM_LABEL / score()打分维度 5 → 12 维,把新字段纳入完善度评分。(该脚本当前 count=0,扩容不会影响任何已有渲染)
数据包merge_workbench_data.py
位于 脚本/ 目录
无需改 —— 前端按客户名取数,新 key 自动进 workbench_data.json。
后端(必改)
销售工作台服务.py
位于 脚本/ 目录 · L1849 起
_clean_block(b)把 20 个新 key 加进白名单。现有硬编码 20 个块级 key(opp/need/params/issue/feedback/competitors/prices/decision/biz_desc/revenues/suppliers/self_share/main_rival/visit_goal/visit_content/plan/test_order…),新字段不加进来 提交即丢。
同时 decision[] 子字段(现仅 name/title/role/power/phone/note)也要补 influence_tier/reports_to/attitude/comm_pref/focus_point。
_block_empty(bb)把新 key 也纳入「非空」判断。现有逻辑只看旧 20 个字段 —— 销售只填新卡片时整块会被判空直接丢弃。这是最隐蔽的丢数据路径。
📐 设计原则(三条)
1. 不新增必填 —— 全部选填。销售每天在手机上录,加必填会直接压垮填写率。
2. 已有字段优先复用 —— 能用现有枚举(如决策人态度的 kp 枚举、资质沿用三表一书 f_regStage 档位)就不新造。
3. 客观行为 > 主观评价 —— 框架里的「性格特点/家庭情况/是否接受礼品」不采,改以「沟通偏好 / 关注点 / 决策习惯」三个可复核字段替代。

二、客户档案完善 · 新增卡片 custBlockHtml() 内

新增卡片 已有卡片行内加字段 待定版 = 枚举值需你确认

6工商与资质 (成立时间 · 资本 · 融资 · 规模 · 属性 · 战略 · 资质 · 风险) 新增

框架里完全没有的 8 个维度。可去天眼查/企查查批量取,先让销售手填兜底。建议整卡默认折叠,避免压垮录入。
单位:万元
✅ 框架原话,四分类,建议直接采用
✅ 框架原话,八分类,建议直接采用
♻️ 复用三表一书 f_regStage 档位,不必新造
⚠️ 必须带来源(访谈/年报/公开司法信息),否则写成谣言无法复核

1决策链 (已有:姓名 · 职务 · 角色 · 影响力 · 联系方式 · 沟通偏好) 行内加 4 字段

框架要求「层级树」+「性格」两项。层级用 reports_to 建树(可渲染组织架构图);「性格」不采,拆成沟通偏好与关注点两个客观字段。
现有行内字段:姓名 · 职务 · 角色 · 影响力 · 联系方式 · 沟通偏好/关注点(目前是一个框)
♻️ 复用三表一书 kp 枚举

7决策模式 (6 问 · 直接决定报价与打法) 新增

框架原文点明「研发定标 → 采购再砍价 → 首轮要留空间 → 注册与优化分开」。这 6 问是报价策略的输入,目前工作台一个字都没采。

三、项目跟进 · 新增卡片 projBlockHtml() 内,按商机分块,每块一份

8项目画像 (板块 · 产品线 · 年出货量 · 体系 · 现用品牌 · 测试 · 机会/挑战/支持/突破) 新增 9 维

框架的「客户产品」板块要求按项目粒度记录量纲。目前全部无处可写 —— top_products 是「我司卖给客户的量」,不是「客户成品项目的年出货量」,两者完全不同。
定版后建议做成全局枚举字典
单位:
可由 suppliers[] / main_rival 预填

四、待你定版的 7 个枚举 ③ 你说你来定版 —— 下面是框架原文/我的建议,请直接改

字段我的建议值来源 / 需你确认的点
corp_nature
企业属性
人医 / 动保 / NGS / 其他类 框架原话,建议直接采用。⚠️ 但注意这是"客户类型"还是"客户所服务市场"?框架未明说。
strategy_focus
战略方向
综合类 / 呼吸道感染为主 / 肿瘤为主 / HPV / NGS / 法医 / 动保 / 宠物 框架原话。⚠️ 需确认:要不要加"科研试剂/高校"?(工作台有整条生命科学业务线,框架里没有对应项)
financing_status
融资上市
未融资 / 天使~A轮 / B轮及以后 / 已上市(科创·创业)/ 已上市(主板·新三板)/ 其他 框架只说"融资上市情况",未给档位 —— 我按 IVD 行业惯例拟的,请确认颗粒度。
headcount_scale
人员规模
<50 / 50~200 / 200~500 / 500~1000 / >1000 人 框架只说"人员规模",未给档位。档位若过细会误填,过粗没区分度。
segment
板块归属
IVD注册 / 公卫 / 国外 / 宠物 / 动物 / 科研 框架给了前 5 个,"科研"是我加的(生命科学业务线需要)。⚠️ 这几个板块是否互斥?一个项目能否跨板?
influence_tier
决策层级
决策人 / 技术把关 / 采购执行 / 影响者 / 使用者 框架描述的是"研发总监→经理→人员"的组织树,我加的是角色功能分类。两者可以并存(树用 reports_to 建,功能用此字段)——请确认是否都要。
test_status
测试状态
未测试 / 测试中 / 已通过 / 未通过 / 曾测试已停用 框架说"过往测试情况",未给状态机。⚠️ 要不要跟工作台已有的「测试反馈」模块对齐口径?(避免同一件事两套说法)

五、明确不采的 3 项 框架里有,但建议不建字段

框架中的项结论理由
是否接受礼品不建字段 商业贿赂红线。写进公司系统即形成"可检索的行贿风险清单",对内审/合规/客户审计都是负资产;销售也会因抗拒而不再填整张卡(污染整表可达性)。客户礼品往来走已有的礼品台账即可。
家庭情况
(已婚 · 2孩 · 养猫)
不建字段 属《个人信息保护法》下的个人信息,婚姻/家庭属敏感个人信息,处理需单独同意且须"必要"。采集无任何可举证的业务必要性。⚠️ 其出处是 AI 知识库里的华为《客户关系规划工具包》 —— 华为能采 ≠ 宝锐能采(体量、法务资源、行业惯例都不同)。
性格特点
(进取型 · 稳健型 · 开朗)
不建字段 主观人格评价,写进系统等于留下难以撤回的人格评价记录;且同一人不同销售评价会互相矛盾,聚合出来是噪声,没有决策价值。
✅ 替代设计 —— 这三项的真实作战意图用 3 个客观行为字段承接,效果不降反升:
comm_pref 沟通偏好(如"只认可量化数据,需提前发对比表")· focus_point 关注点(性能/价格/账期/技术支持)· decision_style_personal 决策习惯(如"先看数据再谈价,不走人情")
客观描述可复核、可传承、客户看到界面也不产生纠纷,比"性格开朗"有用得多。

六、实施顺序与风险

步动作验收 / 风险
1你先定版第四节的 7 个枚举不定版就动手 → 销售各填各的,一个月后统计口径就飘了,返工代价远大于等一天。
2⚠️ 先改后端 _clean_block() + _block_empty()
必须在第 3 步之前
顺序不能反。若前端先上、后端白名单没加,销售填的一切当场静默消失且无人报错 —— 等一周后看数据是空的才发现,白填一周。
验收:脚本直接 POST 一个含新 key 的 payload,读回 数据/activities/ACT*.json 确认新 key 原样存在。
3改 custBlockHtml() 加 2 张卡 + 决策链行内 4 字段验收:只填新卡片、旧字段全留空提交一条 → 确认该块没有被丢弃(专门验 _block_empty 那条路径)。
4改 projBlockHtml() 加项目画像卡多商机时每块一份,注意别让页面过长(建议卡片默认折叠)。
5扩 build_customer_dossier.py 5 → 12 维该脚本当前 count=0,扩容零回归风险。改完跑一次确认 JSON 结构正常。
6(可选)灰度给 3~5 个销售试填一周⚠️ 技术之外的最大风险是填写率。加卡不加必填,且建议折叠,否则销售会绕过这张卡。
⚠️ 一个需要你拍的取舍
本草图把「工商与资质」做成手填卡(因为改前端当天就能收数)。但成立时间/注册资本/人员规模这类可公开获取的量,让销售手填必然填不全。
报告的 P2 建议是:天眼查/企查查 API 自动采工商信息 → 销售只需核对与补充。即:本卡的字段先建,但数据将来由外部源自动填,手工录入只是过渡。
→ 请确认:是"先手填、后续接自动源",还是"直接等自动源、不建手填卡"?
宝锐生物 · 销售工作台 | 活动录入页字段扩充草图 v0.1 · 2026-09-29 |  基于刘欣《客户画像》框架(xmind 70 节点) | 待拍板,未实施