客户活跃度监控大屏(一键版)v3.10
一键拉取泛微OA中本人负责的全部客户数据,自动计算活跃度评分和关注度分类,生成交互式HTML监控大屏。 自带登录、数据拉取、评分计算、大屏生成全流程,无需依赖其他技能。
触发词
客户活跃度大屏 客户活跃度监控 活跃度监控大屏 生成活跃度大屏 客户活跃度分析 一键生成大屏
前置条件
- 已安装 Python 3.8+ 并添加到 PATH
- 已安装依赖:
pip install requests urllib3 playwright && python -m playwright install chromium - 有泛微OA账号(能扫码登录)
使用步骤
方式一:在 WorkBuddy 对话中触发
直接说"生成客户活跃度大屏",WorkBuddy 会自动执行:
python "{SKILL_DIR}/scripts/generate_dashboard.py"
方式二:命令行直接运行
cd <输出目录>
python ~/.workbuddy/skills/客户活跃度监控大屏(一键版)_v3.0/scripts/generate_dashboard.py
方式三:双击运行
双击 scripts/run.bat,自动安装依赖并执行。
执行流程
脚本自动完成以下 9 个步骤:
- 登录验证:检查 Cookie 是否有效,过期则弹出二维码扫码登录
- 拉取客户列表:通过 e-builder API 获取本人名下全部负责客户
- 拉取联系记录:分年度拉取近1年联系记录(排除"主动邮件")
- 拉取签约合同:逐客户拉取全部签约数据(维护类+增值类)
- 拉取工单记录:逐客户查询问题提交处理列表
- 拉取E10工单:并发拉取E10客户问题提交处理数量
- 拉取合同收款:通过业绩核算-合同收款 getListDatas API 拉取全部收款记录,仅保留「常规客服收款」「非常规客服收款」两类,按客户汇总
- 计算活跃度评分:综合联系频率+工单+维护合同+增值合同四维度评分
- 生成大屏:将数据注入HTML模板,生成 dashboard.html + dashboard_standalone.html 并自动打开浏览器
活跃度评分算法
A类客户(服务期内,5档)
- 联系频率 30% + 工单数量 25% + 维护合同 25% + 增值合同 20%
- 非常活跃 >=70 | 活跃 >=45 | 中等 >=25 | 一般 >=8 | 沉默 <8
C类客户(暂停服务,3档)
- 联系频率 40% + 工单数量 30% + 增值合同 30%
- 活跃 >=50 | 一般 >=15 | 沉默 <15
关注度分类(v3.1 更新)
基于「最近维护合同额」和「活跃度」两个维度综合评定,将客户分为三类:
维度分级标准
| 维度 | 高 | 中 | 低 | |------|-----|-----|-----| | 维护合同额 | ≥5万 | 1万~5万 | <1万/无合同 | | 活跃度 | 非常活跃 | 活跃 | 中等/一般/沉默 |
分类矩阵
| 金额\活跃度 | 高(非常活跃) | 中(活跃) | 低(中等/一般/沉默) | |:---:|:---:|:---:|:---:| | 高 (≥5万) | 标准关注 | 标准关注 | 重点关注 | | 中 (1~5万) | 重点关注 | 标准关注 | 标准关注 | | 低 (<1万/无) | 重点关注 | 标准关注 | 一般关注 |
维护合同额取产品类型明细含"维护"的最近一次签约金额
输出文件
所有文件输出到当前工作目录(WorkBuddy技能模式下为用户项目目录):
| 文件 | 说明 |
|------|------|
| dashboard.html | 监控大屏(用浏览器打开,需配合chart.umd.min.js) |
| dashboard_standalone.html | 独立单文件版(内嵌Chart.js,可直接发送给他人打开) |
| chart.umd.min.js | Chart.js图表库(自动复制) |
| 负责客户列表.csv | 客户原始数据 |
| 联系记录_明细_近1年.csv | 联系记录明细 |
| 客户问题提交处理列表_v2.csv | 工单明细 |
| contracts_all.json | 签约数据 |
| contract_collections.json | 合同收款汇总数据(含全部记录+按客户汇总) |
| 合同收款_明细.csv | 合同收款明细(常规+非常规客服收款) |
| dashboard_data.json | 计算后的评分数据 |
大屏功能
KPI 卡片(12个)
- 负责客户总数(A类/C类分布)
- 有联系记录客户数(含占比)
- 有工单记录客户数(含工单总数)
- 非常活跃/中等/一般/沉默客户数(各档显示占比)
- 评分模式(v2:5源 / v1:4源)
- 常规客服收款(金额+笔数)v3.2新增
- 非常规客服收款(金额+笔数)v3.2新增
- 收款合计(总金额+总笔数)v3.2新增
- 有收款客户数v3.2新增
图表(4个)
- 活跃度占比分布(环形图):悬停显示分级+客户数+占比;图例直接标注「42家(37.8%)」格式
- 活跃度 × 客户属性(堆叠柱状图):A类/C类各分级对比
- 客户关注度分布(水平条形图):重点关注/标准关注/一般关注三档,标签内嵌显示数量+占比,长条自动内部显示
- 活跃度排名 Top 20(横向堆叠柱状图):联系+工单排名
表格功能
- 支持排序(点击表头)、搜索(客户名称)
- 筛选器:客户属性 / 活跃度 / 关注度 / 客服负责人(搜索输入框+下拉联想,v3.10)
- 关注度列表头 ℹ 图标:悬浮显示分类规则说明(维度标准+矩阵表)
- 最近维护合同额列:显示金额(万元)和签订日期,无合同时显示
-并悬浮提示「未签订过运维合同」 - 维护金额变化列:显示增减趋势箭头,悬浮显示近3份合同详情
- 维护到期列:已过期红色、90天内橙色
- 弹窗详情:点击客户名称查看评分明细、联系记录、工单、合同、合同收款明细(v3.2新增)
合同收款管理层逻辑(v3.9 新增)
- 管理层(隋清、尧娟、刘雪梅、刘晓璇):选择任一人时收款 KPI 显示全团队数据(常规 211.12 万),因收款数据无客服负责人字段,100/166 家客户无法归因到个人
- 其余负责人:按各自负责客户精确过滤,显示个人名下收款数据
- 客户名称匹配使用智能模糊算法(较短名≥3字符且≥较长名的50%),防止"上海"等短名误匹配
合同收款筛选器(v3.2 新增)
- 预设按钮:近一年 / 近半年 / 近三月 / 全部
- 自定义月份:输入起止年月(YYYY-MM格式)
- 4个收款KPI卡片随日期范围实时刷新
- KPI与下方客服负责人等筛选器联动刷新,使用模糊名称匹配(互相包含)解决收款客户名与客户列表名称不一致问题
看板与列表筛选联动(v3.0 新增)
- 下拉筛选器(客户属性/活跃度/关注度/客服负责人)变更时,上方 KPI 和图表同步刷新为筛选后数据
- 客服负责人筛选器为搜索输入框(v3.10),输入关键字即时过滤,点击选中后联动刷新
- 搜索框仅联动列表,不影响 KPI/图表,避免频繁重绘
- 筛选时客户关注度分布切换为「按客户数」统计
- 筛选状态提示条显示当前筛选条件
- 数据来源标注:泛微 OA | 统计周期:近一年联系记录(剔除联系方式为"主动邮件"的数据) + 近两年签约记录 | 含客户工单 | 离线模式可直接打开
登录说明
- 首次运行需要扫码登录泛微OA
- 登录后 Cookie 自动保存到
~/.workbuddy/ecology_cookies.json - Cookie 有效期内(约数小时)免重复登录
- 每人登录后只能拉取自己负责的客户数据
文件结构
客户活跃度监控大屏(一键版)_v3.0/
├── SKILL.md ← 本文件
└── scripts/
├── generate_dashboard.py ← 一键生成脚本(自包含,含全部API逻辑+独立版生成)
├── dashboard_template.html ← 大屏HTML模板(含 EMBEDDED_DATA 注入点)
├── chart.umd.min.js ← Chart.js 图表库
├── quick_generate.py ← 快速生成(跳过数据拉取,用已有数据重新生成大屏)
├── run.bat ← Windows一键启动脚本
└── requirements.txt ← Python依赖清单
注意事项
- 本地运行零 Token 消耗:双击「刷新数据.bat」或命令行执行
python generate_dashboard.py时,所有操作均在本地 Python 环境完成,不经过 AI 对话,零 Token 消耗。日常刷新数据推荐此方式。仅在 WorkBuddy 对话中触发技能时才消耗 AI Token - 脚本使用
requests库调用所有API(客户列表、联系记录、签约数据、工单、E10、合同收款) - 签约数据需先通过
getActionParamsAPI 获取customer_lastNum(最终用户编号),再调合同列表API;Cookie过期会导致该API返回400 - 工单记录需逐客户查询,100+客户约需3-5分钟
- 合同收款使用
getListDatasAPI 分页拉取,注意hasMore字段不可靠,需用返回行数判断是否还有更多数据 - 合同收款金额使用
skje(收款金额)字段而非kfskje(客服收款金额),后者部分记录为空 - 如 Cookie 过期,重新运行会自动弹出扫码登录
dashboard.html需与chart.umd.min.js在同一目录才能显示图表dashboard_standalone.html为独立单文件版,无需额外文件,可直接发送给同事打开- 浏览器缓存可能导致显示旧版,按 Ctrl+Shift+R 强制刷新
微信扫一扫