Back to skills
extension
Category: Data & AnalyticsNo API key required

客户活跃度监控大屏(限泛微内部使用)

一键拉取泛微OA中本人负责的全部客户数据,自动计算活跃度评分和关注度分类,生成交互式HTML监控大屏。触发词:客户活跃度大屏、客户活跃度监控、活跃度监控大屏、生成活跃度大屏、客户活跃度分析、一键生成大屏。

personAuthor: user_a8e710echubcommunity

客户活跃度监控大屏(一键版)v3.10

一键拉取泛微OA中本人负责的全部客户数据,自动计算活跃度评分和关注度分类,生成交互式HTML监控大屏。 自带登录、数据拉取、评分计算、大屏生成全流程,无需依赖其他技能。

触发词

客户活跃度大屏 客户活跃度监控 活跃度监控大屏 生成活跃度大屏 客户活跃度分析 一键生成大屏

前置条件

  1. 已安装 Python 3.8+ 并添加到 PATH
  2. 已安装依赖:pip install requests urllib3 playwright && python -m playwright install chromium
  3. 有泛微OA账号(能扫码登录)

使用步骤

方式一:在 WorkBuddy 对话中触发

直接说"生成客户活跃度大屏",WorkBuddy 会自动执行:

python "{SKILL_DIR}/scripts/generate_dashboard.py"

方式二:命令行直接运行

cd <输出目录>
python ~/.workbuddy/skills/客户活跃度监控大屏(一键版)_v3.0/scripts/generate_dashboard.py

方式三:双击运行

双击 scripts/run.bat,自动安装依赖并执行。

执行流程

脚本自动完成以下 9 个步骤:

  1. 登录验证:检查 Cookie 是否有效,过期则弹出二维码扫码登录
  2. 拉取客户列表:通过 e-builder API 获取本人名下全部负责客户
  3. 拉取联系记录:分年度拉取近1年联系记录(排除"主动邮件")
  4. 拉取签约合同:逐客户拉取全部签约数据(维护类+增值类)
  5. 拉取工单记录:逐客户查询问题提交处理列表
  6. 拉取E10工单:并发拉取E10客户问题提交处理数量
  7. 拉取合同收款:通过业绩核算-合同收款 getListDatas API 拉取全部收款记录,仅保留「常规客服收款」「非常规客服收款」两类,按客户汇总
  8. 计算活跃度评分:综合联系频率+工单+维护合同+增值合同四维度评分
  9. 生成大屏:将数据注入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个)

  1. 活跃度占比分布(环形图):悬停显示分级+客户数+占比;图例直接标注「42家(37.8%)」格式
  2. 活跃度 × 客户属性(堆叠柱状图):A类/C类各分级对比
  3. 客户关注度分布(水平条形图):重点关注/标准关注/一般关注三档,标签内嵌显示数量+占比,长条自动内部显示
  4. 活跃度排名 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、合同收款)
  • 签约数据需先通过 getActionParams API 获取 customer_lastNum(最终用户编号),再调合同列表API;Cookie过期会导致该API返回400
  • 工单记录需逐客户查询,100+客户约需3-5分钟
  • 合同收款使用 getListDatas API 分页拉取,注意 hasMore 字段不可靠,需用返回行数判断是否还有更多数据
  • 合同收款金额使用 skje(收款金额)字段而非 kfskje(客服收款金额),后者部分记录为空
  • 如 Cookie 过期,重新运行会自动弹出扫码登录
  • dashboard.html 需与 chart.umd.min.js 在同一目录才能显示图表
  • dashboard_standalone.html 为独立单文件版,无需额外文件,可直接发送给同事打开
  • 浏览器缓存可能导致显示旧版,按 Ctrl+Shift+R 强制刷新