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

# 10. Lead Line

Lead Line 是嵌在左侧导航下方的新线索联系面板，帮助员工查看哪些线索还需要第一次联系，以及自动提醒电话进行到了哪一步。它没有独立页面或导航链接；员工直接查看侧栏卡片，点击卡片进入对应任务。

## 1 Lead Line 侧栏面板

### 1.1 位置与展开方式

Lead Line 位于功能导航下方、Feedback 和账号区域上方。当前门店开启 Lead Line 后显示；门店配置尚未加载完成或开关关闭时不显示。

| 界面状态   | 展示与操作                                 |
| ------ | ------------------------------------- |
| 侧栏展开   | 上方显示 Lead Line 标题栏，下方显示客户卡片列表         |
| 面板收起   | 点击标题栏右侧箭头，只保留标题栏；再次点击展开列表             |
| 侧栏整体收起 | 变成带数量角标的电话图标；点击后在右侧弹出客户列表             |
| 调整空间   | 拖动功能导航与 Lead Line 之间的横向分隔线，调整两部分占用的高度 |
| 卡片较多   | 列表内部滚动，上下箭头提示相应方向还有内容                 |

下图仅示意布局，姓名、数量和时间均为示例：

```text
┌─────────────────────────────────┐
│ ☎  Lead Line  ⓘ           3   ⌃ │
│ ┌─────────────────────────────┐ │
│ │ JD  Jane Doe        2:35 PM │ │
│ │     +1 (212) 555-0100       │ │
│ │     Store call in 03:20     │ │
│ └─────────────────────────────┘ │
│ ┌─────────────────────────────┐ │
│ │ AS  Alex Smith      2:30 PM │ │
│ │     +1 (212) 555-0101       │ │
│ │     Needs first outreach    │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘
```

### 1.2 标题栏

从左到右依次是电话图标、Lead Line、说明按钮、待联系数量、展开 / 收起箭头。

| 元素              | 含义与操作                                    |
| --------------- | ---------------------------------------- |
| 电话图标与 Lead Line | 标识新线索联系队列                                |
| 说明按钮            | 点击显示说明：新线索会留在这里，直到门店首次拨打电话、发送短信，或接听线索来电  |
| 数量角标            | 当前门店任务仍开放、非 DNC、尚未完成首次联系的线索数；为 0 时不显示角标  |
| 数量上限显示          | 展开侧栏超过 99 显示 `99+`；收起侧栏的图标角标超过 9 显示 `9+` |
| 右侧箭头            | 展开或收起 Lead Line 列表                       |

### 1.3 客户卡片

每条线索是一张紧凑的圆角卡片，整张卡片可点击。

| 位置     | 显示内容                         |
| ------ | ---------------------------- |
| 左侧圆形头像 | 客户姓名首字母                      |
| 第一行左侧  | 客户姓名，较长时截断                   |
| 第一行右侧  | 线索到达时间                       |
| 第二行    | 格式化后的电话号码，有号码时显示             |
| 第三行    | 首次联系或自动电话状态，可能带计划时刻、倒计时或通话时长 |

卡片背景和状态文字随进度变化：普通等待与已安排电话使用浅蓝提示，临近拨打的倒计时使用浅黄提示，员工已接起、正在拨客户和已接通使用浅绿提示。颜色表示电话进度，不表示任务已完成或客户已转化。

列表优先显示正在进行的电话，其次是已安排的电话，最后是待首次联系的线索。同类中先按计划拨打时间排序，再按线索到达时间从新到旧排列。

### 1.4 状态文字与员工操作

| 状态文字                                          | 含义                    | 员工可以做什么           |
| --------------------------------------------- | --------------------- | ----------------- |
| Needs first outreach                          | 仍需首次联系，目前没有已预告的自动电话   | 打开任务，主动联系客户       |
| Store call at 3:40 PM                         | 已安排自动提醒电话，显示计划拨打门店的时刻 | 查看安排，准备接听或提前主动联系  |
| Store call in mm:ss                           | 距计划拨打不超过 5 分钟，显示倒计时   | 留意门店电话            |
| Store call placed · 时间                        | 已记录拨出请求，但尚无明确的两端通话状态  | 等待状态更新；此时不代表已接通   |
| Store phone ringing                           | 门店电话正在响铃              | 接听门店电话            |
| Ready to connect · Press 1                    | 员工已接听，系统等待确认          | 在电话上按 1，让系统继续拨给客户 |
| Calling 客户姓名                                  | 系统正在拨打客户电话            | 等待客户接听            |
| Connected · mm:ss                             | 两端已接通；有接通时间记录时显示时长    | 与客户沟通             |
| Needs first outreach · auto reminders stopped | 自动提醒已达到次数上限，仍需首次联系    | 人工跟进，系统不再自动拨打     |

倒计时、计划时刻和接通时长来自真实记录。未安排电话时不显示预计时间；按 1 是电话上的操作，卡片本身不是拨号按钮。

### 1.5 点击卡片后打开什么

通常点击卡片进入 [Tasks](/funding-strategy/02-产品说明书/03-tasks.md)，打开对应任务详情。

列表组件还处理两种情况：没有任务且非 DNC 时，弹出 **New lead — task on the way**，展示客户和来源邮件；DNC 且没有任务时，进入对应线索页面。不过当前侧栏会先过滤出任务开放、非 DNC 的线索，这些分支不代表未生成任务或 DNC 的线索一定会出现在侧栏中。

### 1.6 哪些线索留下，哪些退出

Lead Line 跟踪的是**本次线索提交之后的首次联系**，提交之前的历史联系不算。当前侧栏只保留本店任务开放、非 DNC、尚无首次联系记录的线索；可见卡片进一步限制为今天和昨天到达的线索。

符合条件的首次联系包括：

- 拨给客户的电话，结果为接通、无人接或已留语音等系统认可的外呼结果。
- 已发送或已送达的外发短信；排队中或发送失败不算。
- 客户打进来且真正接通的电话。
- 自动提醒电话中，客户一端已实际尝试联系并形成符合条件的结果；只拨到门店不算。

系统记录到首次联系后，线索退出队列；任务关闭或客户成为 DNC 时也不再显示。点击卡片、查看详情本身不会让它退出。这里的首次联系口径也不应直接等同于 Tasks 的 attempt 计数。

### 1.7 空状态

| 显示内容                                                                      | 含义                                 |
| ------------------------------------------------------------------------- | ---------------------------------- |
| No new leads today or yesterday.                                          | 已配置线索邮件，但当前列表没有符合条件的卡片；不等于门店没有历史线索 |
| 联系 [contact@retaintive.ai](mailto:contact@retaintive.ai) 设置 lead tracking | 当前账号返回的配置状态中没有已配置的线索邮件，需要联系开通      |

面板未显示与面板显示空状态是两回事：前者要检查 Lead Line 是否开启、配置是否加载完成，后者表示面板可用但没有可见卡片。

## 2 自动提醒电话（RingOut）怎么打

### (1) 流程与条件

**两腿电话**：第一腿先打门店自己的主线（MAIN 号码），员工接起并听到提示后按 1，系统才拨第二腿给线索，两边接通即桥接。线索看到的来电号码是门店主线。员工接起就是拨给线索前的人工确认。门店腿没人接（无人接、忙线、拒接）时线索的电话根本没响，**不算触达，但这次拨出仍计入 3 次上限**（2026-08-08 起）。

| 条件层    | 规则                                                                                                                                  |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| 两道总开关  | Retaintive 内部的环境级策略必须处于 running（参数缺失或读取失败一律按暂停处理，失败即关）；门店自己的 Lead Line 开关为 On 且门店已激活。任一关掉只停新电话，已拨出的继续查状态到结束                         |
| 哪些线索   | 邮件线索生成的任务，类型为 Lead Outreach 或 Lead Follow-up，任务未关闭，本次提交在 2 天以内                                                                      |
| 门店条件   | 必须录有营业时间（没有营业时间视为"不知道有没有人在"，不拨）；当前在营业时间内且距打烊超过 60 分钟；距本店上一通自动电话至少 20 分钟；门店必须有 MAIN 主线号码                                             |
| 单条线索条件 | 线索进来已满 15 分钟、不超过 48 小时；自预告以来没人动过这条任务（任何备注、状态、指派改动都视为有人接手，电话取消）；任务的 Next action 为空或已到点；本次提交后还没有任何合格触达；联系人不是 DNC；已拨出次数少于 3 次；没有已排队的电话 |
| 选人     | 多条线索都符合时先拨最新进来的那条                                                                                                                   |

**先预告、再拨打**：系统每分钟一跳，先处理到点的电话，再预告下一通。预告写在拨打前 10 分钟——这 10 分钟就是留给员工自己去联系的窗口。每家门店同一时间只保留一个未完成的电话承诺。到点拨打前把全部门槛重跑一遍，再向 RingCentral 发请求。拨出后持续查两腿状态：门店响铃 → 员工接起（Press 1）→ 线索响铃 → 接通；终态有接通、门店腿忙/未接/拒接、线索未接、服务商失败。"请求被接受"永远不会被显示为 Connected。

**拨完之后**：只有客户腿真的被拨出（接通或线索未接）才算完成首次触达，线索才从 Lead Line 消失。同一条线索最多自动拨 3 次（RingCentral 拒绝的请求不计）；3 次都没打到客户则停止，侧栏显示 auto reminders stopped。RingCentral 明确拒绝时同一条预告顺延 10 分钟再试；结果不明（可能已接受但响应丢了）时记为失败且不自动重试，等人工对账——因为这个接口没有幂等键，重试可能打两通。

### (2) 管理价值

线索进来 15 分钟仍没人联系，系统兜底打门店主线把员工接给客户；预告的 10 分钟窗口和"动过任务即取消"让主动跟进的员工不会被系统抢先或打扰。

## 3 Setup 里的开关与状态

| 元素                       | 含义                                                                                                                                   |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| Lead Line 开关             | 门店级总开关，说明文字 "Remind staff about new leads until the first outreach is completed."；在编辑门店弹窗的 Automation 区，门店已激活时可用                     |
| Automatic staff calls 徽章 | 自动电话此刻的实际状态：Active（可用）/ Paused by system（Retaintive 内部暂停，偏好已保存）/ Unavailable（配置检查中）/ Store inactive / Off。On/Off 是门店偏好，徽章是系统合成后的有效状态 |
| Send lead notifications  | 与 Lead Line 并列但独立的浏览器推送开关，只控制推送提醒，不控制自动电话；用户还要在 Account Settings 里打开 Lead notifications                                              |

后端还会往门店的 RingCentral 团队聊天里发一张滚动的线索看板卡片（"\{门店} — N leads waiting"，最近 2 天的未处理线索，每行姓名、到达时间、联系摘要；被预告电话的那一行置顶提示 "We are preparing this redirect call — please be ready to pick it up."）。

## 4 与其他模块的关系

- **Leads**：Leads 页有一列复用同一套状态，筛选项 All / Active store call / Store call scheduled / Store call rescheduled / Needs first outreach / Not in Lead Line，另有 Sort: Lead Line；门店 Off 时整列隐藏。
- **Tasks**：RingOut 和人工任务队列听同一个时钟——任务 Next action 在未来时不拨，为空且是新版任务时视为现在可拨。客户腿有结果后，通话处理程序在任务上记一条活动，并按联系节奏自动写下一次 Next action（规则见 Tasks 篇）；若算出的时间超过任务 Deadline，则清空 Next action 并写提示 "Review the Deadline and choose the next follow-up. Automatic RingOut is paused."，等员工手动选新的时间。Tasks 页的 Now to call 按任务字段判断（必须有首次回应时限的证据），Lead Line 按线索提交后的电话/短信/RingOut 证据实时算，两者都围绕"第一次联系"但不是同一套判定。
- **Calendar**：节奏策略写的 Next action 直接体现在日历上；被 Deadline 复核暂停的任务因 Next action 被清空，落进日历的 Needs attention 抽屉。
- **Dashboard Speed to Outreach**：量的是从线索进入到首次触达的时间；RingOut 请求本身不算触达，只有客户腿真的被拨出/接通才计入，与 Lead Line 的"合格触达"是同一套口径。

## 5 当前限制

- Setup 接口和数据库里有 "Retry after N 分钟"（默认 15，可设 5–60）这个字段，但自动电话的整条链路里没有任何读取，Setup 页也不展示；2026-08-10 文档明确它不控制 15 分钟 / 10 分钟 / 20 分钟规则。不要把它当 Lead Line 参数。
- 侧栏角标计的是 48 小时窗口内的未触达线索数，列表只显示今天和昨天（按浏览器时区），极端情况下角标可能略大于可见行数。
- 提醒行的到达时间和今天/昨天的划分按浏览器时区，不按门店时区。
- 与 Speed to Outreach 口径一致的说法基于两处代码注释，未逐行核对该报表的 SQL。

## 6 实现依据

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

[侧栏提醒中心](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/components/app-sidebar/nav-lead-notifications.vue) · [提醒列表与状态文案](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/components/lead-notifications/LeadNotificationList.vue) · [状态机](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/utils/lead-line-status.ts) · [拨打门槛](https://github.com/retaintive/callytics-infrastructure/blob/main/lambda/lead-processor/src/core/ring-out-gates.ts) · [每分钟调度](https://github.com/retaintive/callytics-infrastructure/blob/main/lambda/lead-processor/src/core/ring-out-ticker.ts) · [运行策略与开关](https://github.com/retaintive/callytics-infrastructure/blob/main/lambda/lead-processor/src/ring-out-runtime.ts) · [首次触达的定义](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/notifications.ts) · [Setup 开关](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/StoreEditDialog.vue)
