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

# 7. Calls

Calls 是门店所有客户来电和去电的总账本。每通电话被 AI 打上大类、细分、结果、有没有收到卡、是谁接的、值不值得辅导，店长不用听录音就能筛出"哪类电话在流失、谁接的电话没收到卡、哪些真人对话值得辅导"。

## 1 Calls 工作台

### 1.1 顶部工具栏：重置、日期、搜索与排序

按截图从左到右排列：

| 元素                        | 含义与操作                                                   |
| ------------------------- | ------------------------------------------------------- |
| Reset                     | 清除搜索及筛选，恢复按通话时间从新到旧排序和每页 100 条；保留当前日期范围                 |
| 日期范围                      | 按通话开始时间选择范围，如 Today。没有链接参数或已保留的日期选择时，默认最近 7 天；日期边界按门店时区 |
| 搜索框                       | 匹配客户电话、来去电号码、联系人名或姓，不搜索逐字稿和摘要                           |
| Sort: Time / Contact name | 按通话时间或联系人姓名排序                                           |
| 上下箭头                      | 切换当前排序的升序或降序，默认 Time 降序，即最新在前                           |
| `1–75 of 75`              | 当前页范围及符合条件的总记录数；每页 100 条，用左右箭头翻页                        |

### 1.2 表头筛选

筛选入口放在带下拉箭头的列头，不另设统一 Filters 按钮。Phone 列仅展示号码。

| 列头入口                   | 筛选内容                                                           |
| ---------------------- | -------------------------------------------------------------- |
| # 旁的箭头                 | 通话方向                                                           |
| Contact                | 客户生命周期，如 Lead / Member / Churned / Unknown                     |
| Category / Subcategory | 通话大类与细分主题                                                      |
| Card                   | 是否收到信用卡，以及是否尝试过收卡                                              |
| Open Task              | Yes / No，或 Yes · no cc captured、Yes · needs manager approval   |
| Time                   | After Hours / Business Hours / Not assessed                    |
| Outcome                | 本通电话主要诉求的处理结果                                                  |
| Staff                  | 员工姓名                                                           |
| Coaching               | 是否有辅导时刻                                                        |
| State                  | Live Call / Voicemail / No Answer / Busy / Error / No RC Audio |

各选项旁的数量表示在当前其他条件下，该选项匹配的通话数。Time 的营业时间筛选要求完整的开始、结束日期，且范围不超过 45 天；当天没有可用营业时间表时为 Not assessed。

### 1.3 通话列表：一行一通记录

列表包含当前门店客户互动的通话，自动回拨先打给员工的内部一腿不计入。未接、占线、出错的记录也会出现，因此列表总数不一定等于报表中的有效通话数。

| 列           | 含义                                                                                                                            |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------- |
| 方向箭头        | 向下 = Inbound（客户打进来），向上 = Outbound。方向是按"哪一头是门店号码"重新判定的，不信电话系统的原始方向                                                             |
| Contact     | 头像 + 姓名（没名字显示电话）+ 生命周期标签 Lead / Member / Churned / Unknown（取自客户档案，不是 AI 对单通电话的判断）                                             |
| Phone       | 客户一侧的电话                                                                                                                       |
| Category    | AI 判定的大类：Revenue / Service / Scheduling / Other                                                                               |
| Subcategory | AI 判定的细分主题（如 Intro Booking、Cancel、Class Booking）                                                                              |
| Card        | 这通电话有没有收到客户信用卡：Yes / Attempted（要过但没成）/ No                                                                                     |
| Open Task   | 这个客户在本店当前有没有未关闭的任务。有则显示红色 Yes，点了去 Tasks 打开；下面可能再挂 no cc captured、needs manager approval 两个小标签。**数的是这个号码名下的未关闭任务，不是这通电话生成的任务** |
| Time        | 通话开始时间（门店时区）；落在营业时间之外时加 After Hours 标签                                                                                        |
| Outcome     | AI 判定的主要诉求结果：Success / Attempted / Cancelled / Retained / Pending Follow-up；无法评估（如语音留言）显示 —                                   |
| Staff       | AI 从录音里识别出的员工姓名；识别不出显示 unidentified                                                                                           |
| Coaching    | AI 有没有为这通电话找出值得辅导的瞬间。Yes 可点，跳到 Coaching 并定位                                                                                   |
| State       | 这通电话实际是什么：Live Call（真人对话）/ Voicemail / No Answer / Busy / Error / No RC Audio（电话系统没给录音也没被分析）                                  |

点击通话行打开右侧详情。Open Task 和 Coaching 的 Yes 是独立跳转入口，分别进入对应任务和辅导记录。

### 1.4 State、Outcome 与报表数量

**State 回答“电话是否接通、是否留言”；Outcome 回答“主要业务诉求处理得怎样”。** Live Call 不代表业务成功，Voicemail 也不代表客户已经完成取消或购买。

**"一通电话"的口径（产品决定 2026-06-10）**：报表里一通电话 = 真人对话或语音留言，no-answer / busy / error 永远不算。判定优先用 AI 标签；AI 没分析过的老记录按电话系统结果兜底（Call connected → 真人对话，Voicemail → 留言，其余排除）。这套判定在 Calls 的 State 筛选、Dashboard Calls 页签、Team 表、My Stores 里只定义一次、共用；从 Dashboard 的数字点进来时，URL 会带 State = Live Call（不含留言）或 Live Call + Voicemail（含留言），保证落地列表和卡片数字一致。

**分类体系**：4 个大类、35 个细分。Revenue 含体验课预约、会籍购买、升级、套餐、冻结、取消、降级、复会、挽留、低使用率、扣款失败、账单争议、取消费争议；Service 含政策咨询、设施反馈、会员支持、预约确认、投诉；Scheduling 含订课、取消课、改课、课程咨询、候补、时间冲突；Other 含一般信息、营业时间与位置、停车、责任、安全、技术支持、失物、资料更新、转介绍、公司询价等。

**Outcome 两套口径**：普通主题只会是 Success / Attempted / —；取消类主题只会是 Cancelled / Retained / Pending Follow-up。AI 只判"完成 / 尝试 / 无法评估"三选一（有意做成最机械的判断），由系统按细分推导：取消类完成 → Cancelled，未完成或只是留言表达取消意向 → Pending Follow-up（避免虚增流失）；挽留成功 → Retained。

## 2 通话详情

### 2.1 Overview / History

点一行后右侧打开详情，两个页签：**Overview**（本通电话）和 **History**（这个客户的全部来往）。

| Overview 区块     | 内容                                                                                                                                                      |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Call Details    | Contact（可跳 Contacts）、Staff（旁边铅笔可修正员工名）、Phone、Time（含 After Hours）、Direction、State、Category、Subcategory；电话系统给了失败原因时红框显示                                   |
| 录音播放器           | 播放/暂停、拖动进度、0.5x–2x 变速；Space 播放暂停，← → 前后跳 5 秒；播放中逐字稿跟着高亮。录音链接 20 分钟有效。拿不到录音时按原因提示：含敏感信息主动屏蔽、未接通、应有录音但没找到、加载失败。找不到通话录音而结果像留言时，系统会去同号码前后 10 分钟内的语音留言里找音频顶上 |
| Call Summary    | AI 写的这通电话摘要                                                                                                                                             |
| Coaching Moment | 辅导场景 + 情境 + "Could have said" + 为什么；按钮 "mm:ss coaching moment" 跳到那一秒。只有真人对话且有真实场景才有                                                                     |
| Transcript      | 逐字稿，每段带时间戳、说话人（AI 认出名字显示名字，否则 Staff / Customer）；点某段录音跳到该处                                                                                               |

**History** 页签：这个客户号码在本店的全部电话和短信时间线，不限当前日期范围；当前这通电话在时间线里高亮并自动定位；默认折叠只显示最近 5 条，往上滚展开并加载更早的；语音留言合并到对应通话；时间线上插一条 Lead arrived 标记线索到达时间。

另有一个独立的通话详情页（地址 `/call/<通话 ID>`），从 Tasks 里 AI 审批对话框的证据链接点进来：头部有方向、客户类型、员工名（可修正，改过的标 Amended），下面是录音、带置信度的逐字稿和分析数据；找不到时显示 Call not found。

**Amend Staff Name**（点 Staff 旁的铅笔）：只有门店 Owner / Editor 可改；列出本店在职员工名和 (No staff)，可填原因；改动带完整审计历史（谁、什么时候、从谁改成谁）。只能改员工名，不能改分类、结果等其他 AI 字段。

### 2.2 复盘与处理入口

| 要做什么     | 使用入口                                                                                      |
| -------- | ----------------------------------------------------------------------------------------- |
| 了解这通电话   | Overview 中的 Call Summary，再结合录音和 Transcript 核实                                             |
| 找辅导片段    | Coaching Moment 的定位按钮；需要写辅导笔记、归档时进入 [Coaching](/funding-strategy/02-产品说明书/05-coaching.md) |
| 查看客户前后沟通 | 切换 History，查看该号码在本店的电话与短信                                                                 |
| 修正员工归属   | Staff 旁的铅笔，选择正确员工并按需填写原因                                                                  |
| 继续跟进客户   | 列表 Open Task 的 Yes，进入 [Tasks](/funding-strategy/02-产品说明书/03-tasks.md) 对应任务                |

## 3 当前限制

- 工具栏没有 Call result、Needs follow-up 这两个可见控件；这两个条件只能通过 URL 参数生效，页面上也不显示筛选标签，只能靠 Reset 按钮变亮察觉。
- 方向图标只区分 Inbound 与"其他"：电话系统给的 Internal / Unknown 方向在列表里显示成 Outbound 箭头。
- Coaching 列的 Yes 不知道店长是否已在 Coaching 页 Remove，被移出的仍显示 Yes。
- Contact 列的生命周期筛选按客户档案的当前阶段过滤，而下拉里的数字按通话记录上快照的阶段统计，两者理论上可能不一致。
- 详情面板里不显示 AI 的 Priority、客户类型、Other Topics、Follow-up Required 等字段，只能在列表列里看。
- 接口返回了未接数和平均时长，页面没有展示。
- 前端细分枚举与共享分类体系有漂移：新细分（扣款失败、账单争议）在列表里以自动转换的名字显示，筛选下拉只在本期确实出现该值时才列出。
- 页面没有 Help 弹窗或说明文字。

## 4 实现依据

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

[通话列表页](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/calls-v3/index.vue) · [表格与列筛选](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/calls-v3/components/calls-table.vue) · [列表接口与口径](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/calls.ts) · ["一通电话"的定义](https://github.com/retaintive/callytics-infrastructure/blob/main/packages/task-engine/src/metrics/call-filter-buckets.ts) · [分类体系](https://github.com/retaintive/callytics-infrastructure/blob/main/packages/common/src/taxonomy/call-analysis/values.ts) · [通话详情与录音](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/calls-detail.ts) · [修正员工名](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/calls-amend.ts)
