> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 5. Coaching

Coaching 是店长复盘通话、辅导员工的工作台。左侧选择一条辅导记录，右侧结合录音、通话摘要、Coaching Moment 和逐字稿查看具体场景，写下笔记，再按需要标记已读、归档或移出。

## 1 Coaching 工作台

### 1.1 顶部分类：Active / Archived

| 标签       | 显示内容                   | 数量含义                          |
| -------- | ---------------------- | ----------------------------- |
| Active   | 尚未归档、也未移出的辅导记录，包含未读和已读 | `N unread` 为未读数，`N read` 为已读数 |
| Archived | 已归档的辅导记录，可恢复到 Active   | 页签旁显示归档记录数                    |

两个页签在本次页面使用中分别保留自己的筛选、搜索和排序。页签数量跟随各自筛选条件变化；侧栏 Coaching 角标是当前门店全时段的未读数，不跟随页面筛选。默认进入 Active，不限制通话日期。

**已读不等于已辅导完成。** 点击未读卡片会标记已读，但记录仍留在 Active；只有归档后才进入 Archived。桌面端自动选中第一条并展示详情，不会因此自动标记已读。

### 1.2 顶部工具栏：批量操作、筛选、排序与搜索

工具栏从左到右是选择框与批量按钮、Filters、Sort、搜索框和分页。

#### 选择与批量操作

| 操作                                    | 作用                                       |
| ------------------------------------- | ---------------------------------------- |
| 选择框 / Select all visible              | 勾选当前页可见记录，不是全部搜索结果                       |
| Clear selection                       | 取消当前勾选；下拉菜单同时显示已选数量                      |
| Mark selected as read / unread        | 批量标记已读或未读，仅 Active 显示                    |
| Archive selected / Unarchive selected | Active 中归档，Archived 中恢复到 Active          |
| Remove selected from coaching         | 将勾选记录移出 Coaching；Active 和 Archived 都不再显示 |

未勾选记录时，批量操作按钮不可用。翻页或筛选后，已不在当前列表中的记录会退出勾选。

#### Filters

| 筛选项       | 含义                              |
| --------- | ------------------------------- |
| Staff     | 按记录中的员工姓名筛选                     |
| Status    | All / Unread / Read，仅 Active 显示 |
| Call Time | 按通话发生日期选择 From / To，日期边界按门店时区   |

已选条件在工具栏下方显示为标签，可以单独清除。Filters 内的 Reset 清除筛选条件，Done 关闭面板。

#### Sort、搜索与分页

| 元素           | 说明                                                                                          |
| ------------ | ------------------------------------------------------------------------------------------- |
| Sort         | Call Time 按最新在前，Staff Name 按 A–Z；另一项作为次级排序。点击 Apply sorting 应用，Cancel 放弃本次调整，Reset 恢复默认排序选择 |
| 搜索框          | 匹配辅导场景、通话摘要、电话号码和联系人姓名                                                                      |
| `1–100 of N` | 当前页显示的记录范围及筛选后的总数；每页 100 条，用左右箭头翻页                                                          |

### 1.3 左侧辅导卡片

每张卡片对应一通有辅导场景的通话。点击卡片打开右侧详情，当前选中的卡片以边框突出显示；左侧勾选框用于批量操作，与打开详情是两种操作。

| 位置    | 内容                                                              |
| ----- | --------------------------------------------------------------- |
| 第一行左侧 | 勾选框、员工头像和姓名；姓名为空时显示 Unassigned staff，已有 `unidentified` 等文字则原样显示 |
| 第一行右侧 | 通话时间及 Unread / Read / Archived 状态                               |
| 客户信息行 | 客户姓名或电话、Lead / Member 标签和电话号码；有号码时可点击进入 Contacts                |
| 场景说明  | AI 提炼的辅导场景一句话，可能是需要改进的行为，也可能是值得复制的好表现                           |
| 右下角按钮 | 标记已读或未读、归档或恢复、移出 Coaching；Archived 卡片不显示已读切换按钮                  |

**如果卡片已被勾选，点击它的状态按钮会对当前整批勾选记录执行同一操作。** 未勾选卡片的按钮只操作该条记录。

归档会同时标记已读；恢复归档会回到 Active。Remove from coaching 仅表示移出辅导队列，界面没有恢复入口，不等于删除原通话。

### 1.4 右侧 Coaching detail：顶部操作

| 操作        | 作用               |
| --------- | ---------------- |
| View call | 跳到 Calls 并定位对应通话 |
| 展开 / 还原图标 | 扩大详情查看区域，再次点击还原  |
| 关闭图标      | 收起详情面板，不会归档或移出记录 |

### 1.5 右侧 Coaching detail：内容

宽屏下，左列按录音、Call Summary、Coaching Moment、Notes 排列，右列显示 Transcript。

| 区块                 | 看什么、怎么用                                                                                 |
| ------------------ | --------------------------------------------------------------------------------------- |
| 录音播放器              | 播放通话录音，并联动逐字稿。无法播放时显示对应原因；截图中的 Unable to load audio 表示录音加载失败，不表示没有辅导内容                  |
| Call Summary       | AI 生成的通话摘要，帮助了解客户诉求和处理经过                                                                |
| Coaching Moment    | 加粗显示场景标题，下方结合情境、建议话术和理由解释该如何处理；也可用于肯定值得复制的表现                                            |
| Coaching moment 按钮 | 有可定位时间时显示 `MM:SS coaching moment`，点击跳转录音和对应逐字稿；没有时间时只显示 Coaching moment，不能据此认为一定能定位到某一秒 |
| Notes              | 为当前通话记录复盘笔记，最多 2000 字符，点击 Save 保存；切换记录各自保留笔记                                            |
| Transcript         | 显示带时间戳和说话人的逐字稿，辅导对应片段会标注；没有返回逐字稿时显示 No transcript returned                              |

录音、逐字稿与辅导文字可能分别可用，某一项缺失不代表其他内容不存在。

## 2 哪些通话会进 Coaching

### 2.1 生成与入队规则

| 环节           | 规则                                                                                                                                                                              |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 进 AI 辅导分析的门槛 | 只有真人通上话、且时长超过 30 秒的通话才进 AI 的辅导阶段。语音留言、公司或供应商来电一律不辅导；预约确认、订课/取消/改课、候补、政策解释、会员支持、一般咨询这类例行电话，如果结果成功、不需要跟进、摘要里又没有投诉/退款/账单/取消会籍/冻结/异议/定价/升级等信号，也不辅导。代码注释明说门禁"故意偏保守"，防止模型为低价值通话编造辅导时刻 |
| AI 选什么       | 只选这通电话里"最有业务影响的一个时刻"：收入（约课、留卡、购买信号、升级、挽回）、留存（取消挽留、冻结/降级、投诉、账单争议）、信任（错误政策解释、没给下一步、语气差），或特别好的表现值得复制。要求辅导"行为"而不是只看结果，禁止编造门店政策或价格；没有明确时刻必须返回"无"，不能硬凑                                |
| 进队列的口径       | 本店客户可见的通话（自动外呼先打给员工的那一腿不算）+ 有真实的辅导场景 + 没被店长移出。**没有时长要求**——20 秒的电话只要有真实场景照样进队列。Calls 页的 Coaching 列和筛选与队列同口径                                                                      |

AI 给每通进队列的电话五样东西：辅导场景一句话（标题）、当时员工原话、情境、"可以直接照念的替代话术"、为什么这样说更好。

## 3 与其他模块的关系

- **Calls**：有辅导时刻的通话在 Calls 列表的 Coaching 列显示 Yes，点了跳进 Coaching 并选中；Calls 详情顶部有 View in Coaching；Calls 的筛选可以只看有/没有辅导时刻的通话。Calls 详情里的 Call Summary / Coaching Moment / Transcript 三张卡和 Coaching 页是同一份内容。
- **Ask AI**：两个工具——"最近 N 天队列里 active / archived / unread 各多少、哪些员工有可辅导通话"（默认 7 天、最多 30 天）和"具体该辅导哪通电话、员工说了什么、可以怎么说"（最多 5 条，用的是"时长 >60 秒且有员工归属"的精选口径，不是队列全集）。

## 4 当前限制

- **没有评分维度**。AI 只输出一个场景标题和五个文字字段，不存在按维度打分的功能；审阅时能记录的只有已读/未读、归档/移出、自由文本笔记。
- Dashboard 目前没有辅导卡片：后端有 coaching-highlights 接口（本期最新 3 通、时长 >60 秒、有员工归属），前端没有任何页面调用它。
- Calls 页的 Coaching 列 "Yes" 不知道店长是否已 Remove，被移出的通话在 Calls 页仍显示 Yes（代码注释：这通电话确实有过辅导时刻，narrow by design）。
- 员工姓名为空时显示 Unassigned staff；已有 `unidentified` 等文字会原样显示，不代表已确认员工身份。
- Lead / Member 标签判定很粗：客户类型含 lead 或 prospect 算 Lead，其余全算 Member，不代表真实会籍。
- AI 提示词写死的是 Orangetheory 的话术和政策（30 天通知、冻结规则、intro booking 流程）；面向其他品牌门店需注明。
- 详情栏不提供已读、归档或移出按钮；这些操作在列表卡片或顶部批量工具栏完成。
- 卡片通话时间目前按浏览器本地时区显示；Call Time 日期筛选按门店时区，跨时区使用时需要留意。

## 5 实现依据

本篇按本地代码核查，页面实际启用情况以部署版本为准。

[辅导门禁与 AI 提示](https://github.com/retaintive/callytics-infrastructure/blob/main/lambda/ai-analysis-processor/src/core/stages/coaching.ts) · [队列口径](https://github.com/retaintive/callytics-infrastructure/blob/main/packages/task-engine/src/metrics/coaching.ts) · [审阅状态](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/coaching-reviews.ts) · [收件箱页面](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/coaching/index.vue) · [工具栏与筛选](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/coaching/components/coaching-toolbar.vue) · [Coaching Moment 卡片](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/coaching/components/coaching-moment-panel.vue)
