# 客户拉通大表 V2 · 真实数据回填说明

生成时间：2026-11-01  
数据范围：飞书活动 `2026-07-01 ~ 2026-10-31`（源文件没有 5–6 月记录）  
权限：客户拉通大表仅刘新元可见；飞书活动商机关联页销售员可看本人活动，刘新元可看全部。

## 1. 数据源与结果

| 项目 | 数量 |
|---|---:|
| 飞书活动原始记录 | 7,524 |
| 有效回填活动 | 7,045 |
| 无客户名未纳入 | 479 |
| 其中：陌拜（无客户信息） | 333 |
| 其中：其他无客户名 | 146 |
| 真实商机（已剔除 test） | 294 |
| 活动已关联商机 | 555 |
| 活动未关联商机（可手动关联） | 6,490 |

活动类型：线上跟进 2,270；线下拜访 4,775。  
陌拜 333 条因源数据没有客户名，全部未纳入，避免生成无归属活动。

## 2. 项目场景回填

已按你的决定移除“兽药GMP注册”档；原命中兽药/GMP/疫苗的项目并入“动保”。

规则优先级（服务端脚本 `脚本/build_v2_backfill.py`）：

1. 商机/项目名称命中 `兽药/GMP/兽用/疫苗生产/生物制品` → 动保
2. 商机/项目名称命中 `动保/动物/宠物/农牧/畜牧/非洲猪瘟/水产/禽/猪/牛/羊/兽药/兽医` → 动保
3. 客户名称命中高校/研究院所 → 科研客户
4. 客户归属诊断原料部门，或产品线为诊断原料 → 三类证注册
5. 其余 → 其他

商机分布：

| 场景 | 商机数 |
|---|---:|
| 三类证注册 | 241 |
| 动保 | 51 |
| 科研客户 | 2 |
| 其他 | 0 |

活动分布：

| 场景 | 活动数 |
|---|---:|
| 三类证注册 | 2,567 |
| 科研客户 | 3,625 |
| 动保 | 681 |
| 其他 | 172 |

说明：
- 当前 294 个真实商机没有归到“其他”的项目；活动中有 172 条来自未落到第一层商机的客户。
- 科研客户活动数偏高，是因为高校/研究院所客户的历史活动量本身较大，不代表商机数量。
- 项目场景自动回填后，保留销售手动调整入口（后续在商机/活动上补充）。

## 3. 活动内容回填

| 活动内容 | 数量 |
|---|---:|
| 项目需求挖掘 | 4,014 |
| 订单跟进 | 2,166 |
| 测试结果跟进 | 508 |
| 其他 | 281 |
| 客户档案完善 | 76 |

内容类型由活动正文关键词判定，不是飞书原始字段；需要在页面上人工抽检。

## 4. 手动关联商机

新增入口：客户管理 → 飞书活动关联。

- 只展示近 6 个月、尚未关联商机的活动。
- 销售员只看到本人活动；刘新元可看到全部。
- 选择该客户名下的飞书商机后保存，关联结果写工作台 `数据/activity_opp_links.json`。
- 关联后项目场景按所选商机的第一层场景继承。
- 6 个月以前的活动不再处理。

接口：
- `GET /api/customer-rollup/unlinked?limit=100&offset=0`
- `POST /api/customer-rollup/link`，body `{id, opp}`；`opp` 为空表示解除关联。

## 5. 已知缺口

1. 真实商机缺少 v11 第一层需要的节点进度、商机规模、商机性质、技术支持、竞对信息；当前这些列为空或“待判”。
2. 飞书导出没有 5–6 月数据，实际覆盖 4 个月，不是完整 6 个月。
3. L3 任务闭环、L4 活动质量仍是演示页，尚未接真实数据。
4. 活动内容分类是关键词规则，需按抽检结果修正。
5. 6,490 条未关联活动需销售员/刘新元人工关联；系统不做猜测性归属。

## 6. 文件与接口

- 数据：`数据/customer_rollup_v2.json`（8.9 MB）
- 关联映射：`数据/activity_opp_links.json`
- 核对报告：`资料/客户拉通大表_V2_场景回填报告_20261101.csv`
- 构建脚本：`脚本/build_v2_backfill.py`
- 数据接口：`GET /api/customer-rollup/data?limit=500&offset=0`，仅刘新元
- 大表页面：`工具/客户拉通大表_demo_v11_活动录入V2同步_20261101_V01.html`
- 关联页：`工具/飞书活动商机关联.html`
- 工作台入口：客户管理 → 客户拉通大表（仅刘新元）；客户管理 → 飞书活动关联（销售本人/刘新元）
