Back to skills
SKILL.md
Online Cs Daily Report
ASecurity当用户要求生成「XXXX年XX月XX日在线客服部日报表」或「某天在线客服部报表/每日报表/日报统计」时使用——拉取当天企微「报备群」里咨询师发的报备消息原文(query_daily_report_messages),逐条解析出 咨询师/今日门诊/明日门诊(项目)/今日触点数量/今日社群邀约打标情况,再按「咨询师→组别」映射填组别后聚合。预约门诊=今日门诊;项目=明日门诊(项目)里的项目名;今日触点=今日触点数量;今日社群入群=今日社群邀约打标情况。数据经 crm-data-gateway MCP 的 query_daily_report_messages 查询。
- 417 stars
- 0 votes
- 0 copies
- 0 views
- Added November 8, 2026
Works with
Security analysis
100/100Pro scans all 3 files and shows the line behind each finding
npx -y skills add infometa/workbuddyskills --skill online-cs-daily-report --agent claude-codeAre you the author of Online Cs Daily Report?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/infometa-online-cs-daily-report)---
name: online-cs-daily-report
description: 当用户要求生成「XXXX年XX月XX日在线客服部日报表」或「某天在线客服部报表/每日报表/日报统计」时使用——拉取当天企微「报备群」里咨询师发的报备消息原文(query_daily_report_messages),逐条解析出 咨询师/今日门诊/明日门诊(项目)/今日触点数量/今日社群邀约打标情况,再按「咨询师→组别」映射填组别后聚合。预约门诊=今日门诊;项目=明日门诊(项目)里的项目名;今日触点=今日触点数量;今日社群入群=今日社群邀约打标情况。数据经 crm-data-gateway MCP 的 query_daily_report_messages 查询。
version: "2.0.1"
author: "CRM 数据网关"
display_name: "在线客服部日报表"
display_name_en: "Online CS Daily Report"
description_zh: "生成指定日期的在线客服部日报表:拉取当天企微报备群(query_daily_report_messages)里咨询师报备消息原文,解析 咨询师/今日门诊/明日门诊(项目)/今日触点数量/今日社群邀约打标情况,按 咨询师→组别 映射填组别后聚合。预约门诊=今日门诊;项目=明日门诊(项目)里的项目名;今日触点=今日触点数量;今日社群入群=今日社群邀约打标情况。数据源为 linkwechat_prod 企微群报备(服务端固定报备群清单),解析/聚合由本 skill(生成日报的 LLM)完成。"
description_en: "Produce the Online Customer Service daily report for a given date: pull the raw 报备 (check-in) messages that consultants post in the WeCom 报备群 via query_daily_report_messages, parse out 咨询师/今日门诊/明日门诊(项目)/今日触点数量/今日社群邀约打标情况, map each consultant to a group, and aggregate. 预约门诊=today's outpatient count; 项目=project name from 明日门诊(项目); 今日触点=today's touch-point count; 今日社群入群=today's community-invite count."
visibility: "public"
---
# 在线客服部日报表
> ⛔ **本 skill 已暂停使用(2026-09-20)**:网关默认不再暴露 `query_daily_report_messages`(MCP `list_tools` 里看不到,调用报 Unknown tool,属预期行为,勿重试变通)。用户要生成日报时,如实告知「日报数据源暂时关闭,如需恢复请联系管理员在网关 `.env` 设 `EXPOSE_DAILY_REPORT_TOOL=true` 重启」。以下流程在开关恢复后依然有效。
## 这个 Skill 做什么
把「某年某月某日在线客服部日报表」这句话,翻译成一次对 `crm-data-gateway` MCP 的查询 + 文本解析 + 分组聚合,最后**按固定模板输出一张日报表**。
数据来源是**企微「报备群」**:咨询师每天在群里发一条报备消息,报告自己当天的门诊、触点、社群邀约等数字。日报表 = 把当天报备群里的这些报备消息拉出来、解析、按「咨询师→组别」填组别、聚合。表头固定为:
**组别 | 咨询师 | 预约门诊 | 项目 | 今日触点 | 今日社群入群**
并在末尾附一行/一块**汇总**。
**核心原则**:一切查询走 MCP 工具 `query_daily_report_messages`(数据桶 `company`),不直连数据库、不读本地文件、不用训练知识编造数据。该工具**只回当天报备群的原始报备文本**,解析与聚合由本 skill(生成日报的 LLM)完成;权限/审计由网关服务端强制,查不到或被拒就如实转述,绝不换字段绕过权限。
## 口径定义(务必遵守,别自由发挥)
**预约门诊的权威口径 = 报备消息里的「今日门诊」数字。** 咨询师在报备群发的报备文本形如:
```
咨询师:周垣宏
今日门诊:1
明日门诊(项目):1痘坑
今日触点数量:120今日社群邀约打标情况:1
```
字段映射(用户已确认):
| 报表项 | 报备字段 | 取值/规则 |
|---|---|---|
| 数据源 | `query_daily_report_messages` | 企微群 `im_msg_room`(linkwechat_prod),服务端固定报备群 room_id 清单、只回当天员工(from_type=1)文字消息原文 |
| 组别 | 咨询师 → 组别 映射 | 由报备里的「咨询师」名字查 `references/consultant-groups.md` 映射得到组别;未收录 → 「未分组」并标注 |
| 咨询师 | `咨询师:` | 报备消息里的咨询师姓名 |
| 预约门诊 | `今日门诊:` | 该咨询师当天预约门诊数(整数,求和) |
| 项目 | `明日门诊(项目):` 里的项目名 | 值形如 `<数字><项目名>`(如 `1痘坑` → 项目名 `痘坑`);取**非数字后缀**为项目名 |
| 今日触点 | `今日触点数量:` | 该咨询师当天触点数量(整数) |
| 今日社群入群 | `今日社群邀约打标情况:` | 该咨询师当天社群邀约打标数(整数) |
> ⚠️ 与旧「网电预约查询」版的关系:旧数据源(Oracle `ct_crm_precontract` / 工具 `query_channel_precontracts`)**已不再用于本日报**。数据源已整体切换到企微报备群消息。不要再用 `query_channel_precontracts` 出日报,也不要回退任何 cfintent/bulidtype 估算口径。
## 前置自检
- 不确定身份/权限时先调 `get_my_profile`(确认有 `company` 数据桶)。
- 用 **`query_daily_report_messages`**(数据桶 `company`)。**不要**误用 渠道客户/到院/新客线索/回访/网电预约 数据集出日报。
- 若 `list_available_datasets` 里没有 `query_daily_report_messages`:说明网关**还没部署新工具**,如实告知用户需先在网关服务器(172.17.32.94)更新到含 `query_daily_report_messages` 的版本(含 `gateway/mysql.py`、`REPORT_ROOM_IDS`、MySQL 连接配置)并重启。
- 若工具返回 `CONFIG_MISSING`:网关 `.env` 的 `REPORT_ROOM_IDS` 未配置,告知需管理员先填报备群 room_id 清单。
## 生成步骤
### 1. 确认日期 D
- 用户说「今天」→ 取当天;说「2026年9月2日 / 2026-09-02」→ 解析成 `D = YYYY-MM-DD`。
- 工具参数 `date` 直接传 `"YYYY-MM-DD"`;工具内部取 `[D 00:00:00, D+1 00:00:00)`,不用你自己写时间范围。
### 2. 拉取当天报备消息原文(分页拉全)
```json
query_daily_report_messages(date: "<D>", limit: 1000, offset: <0,1000,2000,...>)
```
- **必须分页**:`limit` 单次上限 1000(`meta.row_count` 受 limit 封顶)。循环 `offset += 本批行数`,直到某批返回行数 < 1000 为止(设安全上限,如累计超 5000 条就停下询问)。
- 返回 `data` 为消息列表,每行含 `text`(报备原文)、`msg_time`(发送时间)、`from_id`(发送者企微 id)、`room_name`(群名)等。**只有 `text` 是解析对象**。
- 量级参考:一个组织一天的报备消息通常几十到几百条。
### 3. 逐条解析 `text` → 咨询师记录
对每条 `text`,用正则/键值对提取以下字段(键名可能在同一行连续出现、也可能换行分隔,解析要容忍两种):
- `咨询师` —— 姓名
- `今日门诊` —— 整数(= 预约门诊)
- `明日门诊(项目)` —— 值 `<数字><项目名>`,拆出项目名(非数字后缀;如 `1痘坑` → `痘坑`;若只有数字无项目名 → 项目名空)
- `今日触点数量` —— 整数(= 今日触点)
- `今日社群邀约打标情况` —— 整数(= 今日社群入群)
合并规则:
- **同一条报备里多个「明日门诊(项目)」**:收集全部项目名(默认合并展示,见第 4 步)。
- **同一咨询师当天多条报备**:默认**以最后一条为准**(视为更正后的最终值),并在结果里标注该咨询师当天有多条报备;如需按「求和」或「多项目拆行」处理,先与人工确认口径。
- **`咨询师:` 缺失**:无法确定归属,归入「未识别」并在结果里标注该条 `msg_time`/`room_name`,不要硬猜名字。
- 数字解析失败(空/非数字)按 0 计,并标注异常。
### 4. 填组别 + 聚合
- 用报备里的「咨询师」名字查 `references/consultant-groups.md` 映射 → 得到组别。未收录 → 组别填「未分组」并在结果里标注「请补录映射」。
- **一位咨询师一行**:
- `预约门诊` = 该咨询师当天 `今日门诊`(和)
- `项目` = 该咨询师 `明日门诊(项目)` 的项目名(多个用「、」连接,如 `痘坑、玻尿酸`;空则 `—`)
- `今日触点` = `今日触点数量`
- `今日社群入群` = `今日社群邀约打标情况`
- **组小计**:同一组别下全部咨询师行的数值逐列求和(预约门诊/今日触点/今日社群入群)。放在该组明细开头作为一行。
- **总计**:所有组小计之和。放在表格最后作为一行。
- **表格外汇总块**:
- `今日门诊合计`(= 全部咨询师 预约门诊 之和 = 表总计)
- `今日触点合计`、`今日社群邀约入群合计`
- `报备人数`(= 参与报备的咨询师人数)
### 5. 按模板输出
明细表用 **HTML `<table>`** 输出。每一「组别」的结构为:**组小计行(组首)→ 该组明细行**;全部组之后加一行**总计**。组别列做单元格合并(`rowspan`)。
规则:
1. 先排序使同一组别的行**相邻**:组别 → 咨询师。未分组/未识别排最后。
2. **组小计行**(每组第一行):
- 组别格 = `<td rowspan="N"><b>组名</b></td>`,`N` = **1(组小计行本身)+ 该组明细行数**;
- 咨询师格 = `<b>组小计</b>`;预约门诊/今日触点/今日社群入群 = 该组逐列求和(加粗);**项目**列留空。
3. **明细行**(组小计之后):不再输出组别格(已被合并格占据);其余列照常。
4. 换下一组时,重新输出一个组小计行 + 组别合并格。
5. **总计行**(表格 `<tbody>` 最后一行,所有组之后):第一格 `<td colspan="2"><b>总计</b></td>`(横跨 组别+咨询师 两列);预约门诊/今日触点/今日社群入群 = 全表逐列求和(加粗);**项目**留空。
6. 数量列加 `align="center"`。务必保证 `rowspan` 数正确(= 组小计 1 + 该组明细行数),否则表格会错乱。
```html
<!-- 明细表骨架(示意):每组=组小计行+明细行;组别已合并;末尾总计行 -->
<table border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse">
<thead>
<tr><th>组别</th><th>咨询师</th><th>预约门诊</th><th>项目</th><th>今日触点</th><th>今日社群入群</th></tr>
</thead>
<tbody>
<!-- 无创IP抖音组:rowspan=3 = 组小计1行 + 明细2行 -->
<tr>
<td rowspan="3"><b>无创IP抖音组</b></td>
<td><b>组小计</b></td><td align="center"><b>3</b></td><td></td><td align="center"><b>350</b></td><td align="center"><b>5</b></td>
</tr>
<tr><td>周垣宏</td><td align="center">1</td><td>痘坑</td><td align="center">120</td><td align="center">1</td></tr>
<tr><td>徐仙敏</td><td align="center">2</td><td>玻尿酸、痘坑</td><td align="center">230</td><td align="center">4</td></tr>
<!-- 总计行 -->
<tr>
<td colspan="2"><b>总计</b></td><td align="center"><b>3</b></td><td></td><td align="center"><b>350</b></td><td align="center"><b>5</b></td>
</tr>
</tbody>
</table>
```
标题与表格外汇总照常输出(可用 Markdown 文字,跟在表格下方):
```
## 在线客服部日报表 · 2026-09-02
<上述 HTML 表格>
**汇总**
- 报备人数:24
- 今日门诊合计:3
- 今日触点合计:350
- 今日社群邀约入群合计:5
```
输出真实值即可,不必追求与示例一致;示例只示范格式与口径(组小计/总计 = 明细逐列求和)。
> 兜底:若执行环境的聊天窗口**不渲染内联 HTML**(表格显示成源码),退回 Markdown 大表写法——每一组先输出一行「**组小计**」、再输出明细(同组别只首行填组名、其余行该列留空),最后输出「**总计**」行,并告知用户「当前环境不支持 HTML 表格,已用组别留空近似」。
## 常见边界与错误处理
| 情况 | 处理 |
|---|---|
| 当天一条报备都没有 | 如实说「该日报备群无咨询师报备消息」,提示可能为休息日/停业/尚未报备,不要编数字 |
| `list_available_datasets` 无 `query_daily_report_messages` | 网关未部署新工具。告知需在 172.17.32.94 更新到含 `query_daily_report_messages` 的版本并重启后再查,不要退回旧网电预约/booking 口径 |
| `CONFIG_MISSING` | 网关 `.env` 的 `REPORT_ROOM_IDS` 为空。告知需管理员先填报备群 room_id 清单 |
| `PERMISSION_DENIED` | 按 error 的 `missing_bucket`/`hint` 转告用户找管理员开通 `company` 数据桶,不要试图绕 |
| `QUERY_FAILED` | 多半是 MySQL 未配置/连不通。告知用户检查网关 `.env` 的 `MYSQL_HOST/PORT/USER/PASSWORD/DB`,如实转述不要猜 |
| 咨询师名字未在映射表 | 组别填「未分组」并标注「请补录 consultor-groups 映射」,勿硬猜组别 |
| 同一咨询师多条报备 | 默认以最后一条为准,标注「该咨询师当天多条报备(已取最后一条)」;口径如需叠加先问人工 |
| 某条报备解析失败/字段缺失 | 归「未识别」,列出其 `msg_time`/`room_name`,不要丢弃后假装没看到 |
| 数字与人工不一致 | 先核对:是否分页拉全;是否同一咨询师多条报备被重复/遗漏;是否「明日门诊(项目)」项目名拆错;再核对人工是否按报备消息数人工统计(本表按解析后的数字求和) |
## 相关参考
- 报备消息文本格式、字段映射、解析正则、返回信封格式见 `references/fields.md`。
- 咨询师 → 组别映射表见 `references/consultant-groups.md`(占位,待业务方提供后填写)。
- 本报表是 channel-customer-query 的一个**任务型封装**;若用户转而要开放式查客户(按地域/顾问/时间筛明细、聊天、到院、线索、回访),应改用 **channel-customer-query** 技能。
Files in this skill
- SKILL.md
- references/consultant-groups.md
- references/fields.md
Attribution
Related skills
View all in business →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.