缓存变量
快速阅读
本文用于统一说明呼叫中心“缓存变量”的产品口径。这里的缓存变量不是面向客户直接操作的底层缓存能力,而是指在一次通话、一次 IVR 流程、一次机器人会话或一次座席协同过程中临时保存、读取和传递的运行时变量。
本文的核心结论是:
- 缓存变量适合解释“通话过程中临时可用的上下文”,例如 IVR 收号结果、机器人临时判断、TTS 待播报文本、转人工原因、随路数据等。
- 缓存变量依托通道变量、运行时上下文或会话上下文流转,不等同于内置变量、自定义变量、话单字段、推送字段或弹屏参数。
- 缓存变量通常随一次通话或一次会话有效;通话结束后,未沉淀的缓存变量不应作为长期查询、导出或对账依据。
- 如果缓存变量需要长期追溯,必须按配置进入主话单、从话单、机器人会话、推送日志、记录扩展字段或导出结果。
- 上线缓存变量相关能力时,必须确认变量来源、有效范围、消费位置、空值兜底、沉淀需求和安全边界。
阅读地图
- 如果只想理解缓存变量是什么,重点阅读“二、产品总览”和“三、核心概念”。
- 如果要理解缓存变量如何在通话过程中流转,重点阅读“四、对象关系与数据流”。
- 如果要在 IVR、TTS、机器人、弹屏或推送中使用缓存变量,重点阅读“六、产品功能说明”。
- 如果要做上线验收和排障,重点阅读“八、上线准备与运营建议”和“附录 C:实施检查清单”。
一、文档说明
1.1 文档目的
呼叫中心的一次通话中,经常会出现只在当前流程中临时使用的信息。例如:
- 客户在 IVR 中输入的订单号。
- 机器人当前轮次识别到的客户意图。
- TTS 节点准备播报的一段动态文本。
- 座席或外部系统临时设置的随路数据。
- 转人工前生成的会话摘要和转人工原因。
- 外呼任务运行过程中暂时用于座席侧承接的上下文。
这些信息可能只在当前通话或当前流程中使用,也可能按配置沉淀为话单字段、推送字段或记录字段。为了避免把“运行时临时变量”和“长期可查字段”混为一谈,本文建立缓存变量的统一产品口径。
1.2 适用对象
- 客户业务负责人:用于理解哪些变量只是通话过程中的临时上下文,哪些可用于长期追溯。
- 运营管理人员:用于判断变量能否在记录、导出、报表或质检中使用。
- 实施顾问:用于配置 IVR、TTS、弹屏、推送、机器人和随路数据时确认变量有效范围。
- 产品经理:用于统一缓存变量、通道变量、内置变量、自定义变量和话单字段之间的口径。
- 技术负责人:用于理解变量来源、生命周期、沉淀边界和对接验收。
1.3 文档范围
本文覆盖缓存变量的产品说明,包括定义、来源、生命周期、有效范围、消费位置、沉淀边界、与通道变量、内置变量、自定义变量、话单字段、推送字段、弹屏参数和 TTS 变量的关系。
本文不展开底层缓存实现、内部存储结构、代码实现和内部实现细节。涉及缓存或临时保存时,仅使用客户可理解的“运行时上下文”“会话级暂存”“按配置沉淀”等产品语言说明。
二、产品总览
2.1 什么是缓存变量
缓存变量是指在一次通话、一次会话或一次流程执行期间临时保存和读取的变量。它用于支撑当前流程判断、语音播报、弹屏展示、机器人转人工、随路数据传递和事件推送等运行时能力。
人话总结:
缓存变量就是“这通电话当前过程中临时记住的一些信息”。它可以被当前流程使用,但不一定会在通话结束后保留下来。
2.2 缓存变量解决什么问题
缓存变量主要解决“当前流程需要临时记住信息”的问题。
例如:
- IVR 收到客户输入的订单号,后续节点需要继续使用。
- 机器人识别出客户意图,转人工时需要带给座席。
- TTS 需要读取一段动态文本并播报。
- 座席设置随路数据后,后续通话过程或推送需要读取。
- 外呼任务需要在座席侧通道上带入某些临时上下文。
如果没有缓存变量,流程中的前后节点就很难共享同一份临时上下文。
2.3 缓存变量不是什么
缓存变量不应被理解为以下对象:
| 容易混淆对象 | 区别 |
|---|---|
| 内置变量 | 内置变量是平台标准提供的变量;缓存变量强调临时有效范围。 |
| 自定义变量 | 自定义变量是客户或流程写入的业务字段;缓存变量可能承载自定义变量的运行时状态。 |
| 通道变量 | 通道变量是通话上下文承载机制;缓存变量是其中一类临时使用口径。 |
| 话单字段 | 话单字段是通话结束后的沉淀结果;缓存变量不一定进入话单。 |
| 推送字段 | 推送字段是事件发送结果;缓存变量只有被推送引用时才会发送。 |
| 弹屏参数 | 弹屏参数是页面消费结果;缓存变量需要映射后才能成为页面参数。 |
2.4 核心价值
| 价值 | 说明 |
|---|---|
| 流程连续 | 让 IVR、机器人、座席协同等流程可以共享当前通话上下文。 |
| 动态交互 | 支撑 TTS 动态播报、条件判断、转人工原因传递。 |
| 临时承载 | 保存只在当前通话或当前会话中需要的信息。 |
| 按需沉淀 | 对有长期价值的变量,可按配置进入话单、推送或导出。 |
| 降低耦合 | 不必把所有临时信息都写入长期记录,减少字段膨胀。 |
三、核心概念
3.1 缓存变量
缓存变量是通话运行时或会话运行时的临时变量。它通常用于当前流程判断、临时展示、动态播报或事件传递。
缓存变量的核心特征是:
- 有明确的当前通话或当前会话范围。
- 通常不适合作为长期查询依据。
- 是否沉淀取决于后续配置。
- 变量为空、过期或未生成时,需要有兜底处理。
3.2 运行时变量
运行时变量是通话或流程执行过程中可读取的变量。缓存变量可以理解为运行时变量的一类产品口径。
运行时变量强调“当前可用”,不等于“事后可查”。
3.3 会话级暂存变量
会话级暂存变量是在一次机器人会话、IVR 流程或通话会话中暂时保存的信息。它常用于前后节点传递上下文。
例如:
- 客户已输入的订单号。
- 机器人已识别的意图。
- 客户选择的业务类型。
- 转人工原因。
- 临时查询结果。
3.4 随路数据
随路数据是随当前通话过程传递的业务数据。它可以被看作缓存变量或通道变量的一种使用方式。
随路数据常用于座席侧和非座席侧之间传递上下文,例如外部系统写入一段业务数据,后续由座席侧或推送链路读取。
3.5 TTS 缓存变量
TTS 缓存变量是被 TTS 或提示音能力读取的运行时变量。它用于动态播报文本、数字、排队位置、查询结果等内容。
如果 TTS 变量不存在或为空,可能导致播报为空或异常,因此必须配置默认提示或失败兜底。
3.6 沉淀字段
沉淀字段是缓存变量进入主话单、从话单、机器人会话、推送日志、记录扩展字段或导出结果后的形态。
只有沉淀字段才适合用于长期查询、导出、对账、报表和质检。
四、对象关系与数据流
4.1 总体关系
外部请求 / SIP Header / IVR / 机器人 / 座席操作 / 外呼任务
↓ 生成临时上下文
缓存变量
↓ 进入当前通话或会话上下文
运行时消费
├─ IVR 判断
├─ TTS 播报
├─ 弹屏展示
├─ 机器人转人工
├─ 座席随路数据读取
└─ 事件推送
↓
按配置沉淀
↓
主话单 / 从话单 / 推送日志 / 导出 / 报表4.2 生命周期
缓存变量通常经历以下生命周期:
变量生成或写入
↓
进入当前通话 / 当前会话上下文
↓
被 IVR、TTS、机器人、弹屏、推送、座席操作读取
↓
通话或会话结束
├─ 已配置沉淀:进入话单、推送日志、导出或报表
└─ 未配置沉淀:不再作为查询或对账依据4.3 与主从话单的关系
缓存变量可能来自主通道,也可能来自某个子通道或过程节点。
| 归属范围 | 适合场景 | 沉淀建议 |
|---|---|---|
| 主通道级 | 整通电话都需要使用的变量 | 如需对账,沉淀到主话单。 |
| 子通道级 | 某段座席腿、转接腿或咨询过程使用的变量 | 如需追溯过程,沉淀到从话单。 |
| 机器人会话级 | 机器人意图、摘要、转人工原因 | 沉淀到机器人会话或推送。 |
| IVR 流程级 | 收号结果、菜单选择、临时查询结果 | 按业务价值决定是否沉淀。 |
4.4 失效与清理口径
客户版产品口径中,缓存变量应按以下方式理解:
- 缓存变量随当前通话、当前流程或当前会话有效。
- 通话或会话结束后,未沉淀的缓存变量不承诺可查询。
- 如果业务需要事后追溯,必须提前配置沉淀路径。
- 不应把缓存变量作为长期对账主键。
五、能力地图
| 能力层 | 能力 | 说明 |
|---|---|---|
| 来源层 | 外部请求、SIP Header、IVR、机器人、外呼任务、座席操作 | 生成或写入缓存变量。 |
| 承载层 | 通道变量、运行时上下文、会话上下文 | 临时保存变量。 |
| 流程层 | IVR 判断、收号、脚本、机器人转人工 | 消费变量做流程控制。 |
| 播报层 | TTS、提示音、排队播报 | 读取变量生成语音内容。 |
| 展示层 | 工作台弹屏、自定义页面、Tab 页 | 将变量作为页面参数或展示字段。 |
| 推送层 | 来电、接通、挂机、IVR、机器人、录音事件 | 按事件带出变量。 |
| 沉淀层 | 主话单、从话单、机器人会话、导出、报表 | 保存需要长期追溯的变量。 |
| 治理层 | 命名、空值兜底、脱敏、变更、验收 | 保证变量可控和安全。 |
六、产品功能说明
6.1 缓存变量写入
缓存变量可通过以下方式写入:
- 外部系统发起请求时传入。
- SIP Header 透传后映射为变量。
- IVR 收号、查询或判断节点生成。
- 机器人或智能体动态设置。
- 座席或外部系统设置随路数据。
- 外呼任务名单或任务配置带入。
写入后,变量先进入运行时上下文,后续能力再按场景读取。
6.2 缓存变量读取
缓存变量可被以下能力读取:
- IVR:用于判断、分流、收号结果传递。
- TTS:用于动态播报文本或查询结果。
- 机器人:用于多轮会话和转人工上下文。
- 弹屏:用于打开业务页面。
- 推送:用于事件同步。
- 座席操作:用于读取或更新随路数据。
6.3 IVR 使用
IVR 中缓存变量常用于:
- 保存客户按键结果。
- 保存收号结果。
- 保存外部查询结果。
- 判断客户是否符合某个分支。
- 进入队列、留言、机器人或转人工。
IVR 使用缓存变量时,必须考虑变量不存在、为空、格式错误或查询失败的兜底路径。
6.4 TTS 使用
TTS 使用缓存变量时,系统会读取变量值并合成为语音。
典型场景:
- 播报订单状态。
- 播报排队位置。
- 播报客户输入的编号。
- 播报机器人生成的提示语。
- 播报业务系统返回的动态文本。
使用建议:
- 变量为空时播放默认提示。
- 敏感信息不完整播报。
- 长文本应控制长度。
- 数字、日期、金额等内容需确认播报方式。
6.5 机器人和智能体使用
机器人和智能体可使用缓存变量保存当前会话中的临时状态。
典型场景:
- 保存当前客户意图。
- 保存已收集的槽位信息。
- 保存转人工原因。
- 保存会话摘要。
- 保存机器人侧会话 ID。
如果这些信息需要给人工座席或后续质检使用,应配置转人工变量、推送字段或机器人会话沉淀。
6.6 弹屏和页面使用
弹屏可读取缓存变量打开客户资料、订单、工单或机器人会话页面。
需要注意:
- 页面参数名和变量名要映射清楚。
- 弹屏读取成功不代表变量已写入话单。
- 变量为空时页面应有默认展示或错误提示。
- 页面访问还需要客户系统鉴权。
6.7 推送使用
推送可在事件发生时带出缓存变量。
需要确认:
- 变量在该事件发生时是否已经生成。
- 事件是否配置携带该变量。
- 事件粒度是整通电话还是某段通话过程。
- 客户系统是否把推送当成最终对账依据。
若客户需要最终对账,建议以话单生成或记录沉淀结果为准。
6.8 话单沉淀
缓存变量只有按配置进入话单或记录扩展字段后,才适合长期查询和对账。
沉淀建议:
- 整通电话级变量沉淀到主话单。
- 过程段变量沉淀到从话单。
- 机器人会话变量沉淀到机器人会话记录。
- 任务变量沉淀到任务记录或任务话单。
- 临时流程变量不建议全部沉淀。
6.9 报表和导出
报表和导出使用的是已沉淀字段,不直接使用所有运行时缓存变量。
如果需要按缓存变量做统计,应先确认:
- 变量是否沉淀。
- 字段是否适合作为统计维度。
- 是否存在高基数问题。
- 是否需要配置导出列或表头。
- 是否受权限和脱敏控制。
七、典型业务场景
7.1 IVR 收号后继续使用
客户在 IVR 中输入订单号,系统将订单号作为缓存变量保存。后续节点可用该订单号查询订单状态、播报结果或转人工。
关注点:
- 收号结果是否正确。
- 查询失败是否有兜底。
- 是否需要把订单号沉淀到话单。
7.2 TTS 动态播报
系统读取缓存变量中的文本内容,通过 TTS 播报给客户。
关注点:
- 变量是否存在且有值。
- 文本是否适合语音播报。
- 为空时是否播放默认提示。
7.3 机器人转人工
机器人将客户意图、会话摘要和转人工原因写入缓存变量。转人工时,座席工作台读取这些变量,帮助座席理解前序服务过程。
关注点:
- 变量是否随转人工链路传递。
- 座席是否能看到摘要和原因。
- 是否需要进入记录或推送。
7.4 座席随路数据
座席侧或外部系统设置一段随路数据,后续同一通话过程中可被读取,用于页面联动、推送或业务处理。
关注点:
- 随路数据作用范围。
- 座席侧和非座席侧方向。
- 是否需要沉淀到记录。
7.5 SIP Header 临时上下文
客户侧系统通过 SIP Header 传入业务字段,平台读取后作为运行时变量使用,后续可用于弹屏、推送或话单沉淀。
关注点:
- Header 是否按约定传入。
- 是否映射为变量。
- 是否只是运行时使用,还是需要长期追溯。
7.6 外呼任务座席侧变量
预测外呼或自动外呼任务配置座席侧通道变量,用于在客户接通后把任务上下文带给座席侧通话过程。
关注点:
- 变量数量和长度限制。
- 重呼时变量是否一致。
- 变量是否需要进入任务记录或推送。
八、上线准备与运营建议
8.1 上线前确认事项
上线缓存变量相关能力前,建议确认:
- 缓存变量来源是什么。
- 变量在哪个通话阶段生成。
- 变量在哪些节点或能力中被读取。
- 变量是否只在运行时使用。
- 变量是否需要沉淀到话单、推送或导出。
- 变量为空、超长、格式错误时如何处理。
- 变量是否包含敏感信息。
- 变量是否影响客户系统对账。
8.2 使用建议
- 只在当前流程需要的地方使用缓存变量。
- 不要把所有缓存变量都沉淀到话单。
- 需要长期追溯的变量必须提前配置沉淀。
- TTS、IVR、机器人场景必须配置空值兜底。
- 涉及客户系统对账时,不要依赖未沉淀的缓存变量。
- 变量命名应和内置变量、自定义变量体系保持一致。
8.3 安全与脱敏
缓存变量可能包含客户业务信息,应遵循:
- 不传密码、验证码、银行卡号、完整证件号等高敏感明文。
- 不把敏感变量直接用于 TTS 播报。
- 推送和导出前确认字段范围。
- 弹屏页面应有访问鉴权。
- 沉淀到话单前确认脱敏和权限要求。
8.4 验收建议
验收不应只看运行时变量是否有值,还应覆盖:
- 变量是否在正确阶段生成。
- IVR、TTS、机器人、弹屏是否能读取。
- 变量为空时是否有兜底。
- 推送事件是否按需带出。
- 需要追溯的变量是否进入话单或导出。
- 不需要沉淀的变量是否没有误进入导出或报表。
九、与周边能力的关系
9.1 与通道变量的关系
缓存变量通常依托通道变量或运行时上下文承载。通道变量是承载机制,缓存变量强调临时有效范围。
9.2 与内置变量的关系
内置变量是平台标准提供的运行时变量。部分内置变量可在运行时被缓存和读取,但不应把所有内置变量都称为缓存变量。
9.3 与自定义变量的关系
自定义变量如果只在当前通话或会话中使用,可按缓存变量口径理解;如果需要长期追溯,应配置沉淀。
9.4 与 IVR / TTS 的关系
IVR 和 TTS 是缓存变量最典型的运行时消费方。变量为空时必须有兜底,否则会影响客户体验。
9.5 与机器人和 AI 转人工的关系
机器人和智能体可在会话中生成缓存变量,用于多轮对话或转人工上下文传递。需要复盘时,应沉淀到机器人会话或推送中。
9.6 与话单和记录的关系
缓存变量不自动等于话单字段。只有按配置进入主话单、从话单、机器人会话或记录扩展字段后,才适合查询、导出和对账。
9.7 与推送和外部系统的关系
推送可以带出缓存变量,但需要确认事件发生时变量是否已生成。客户系统不应把未沉淀的临时变量作为最终对账依据。
十、FAQ
10.1 缓存变量是不是一种独立产品能力?
客户版口径下,它更适合理解为运行时临时变量或会话级暂存变量,而不是一个独立页面或底层缓存产品。
10.2 缓存变量和通道变量有什么区别?
通道变量是承载机制,缓存变量强调变量在当前通话或会话中的临时有效性。缓存变量通常通过通道变量或运行时上下文承载。
10.3 缓存变量能否长期查询?
不能默认长期查询。只有被配置进入话单、推送日志、记录扩展字段、导出或报表链路的变量,才适合长期查询和对账。
10.4 弹屏能看到缓存变量,为什么记录里没有?
弹屏是运行时消费,记录是通话结束后的沉淀结果。变量是否进入记录取决于话单或记录字段配置。
10.5 TTS 变量为空怎么办?
应配置默认提示、失败分支或转人工兜底,避免空播报或流程异常。
10.6 缓存变量可以用于推送吗?
可以,但需要确认变量在事件发生时已经生成,并且推送配置引用了该变量。
10.7 缓存变量可以用于报表吗?
只有沉淀到记录或统计链路后的变量才适合用于报表。纯运行时缓存变量不适合直接统计。
10.8 缓存变量是否需要脱敏?
如果变量包含客户业务信息或敏感信息,应按展示、推送、导出和沉淀场景分别做脱敏和权限控制。
10.9 通话结束后缓存变量会怎样?
产品口径上,通话结束后未沉淀的缓存变量不再作为查询、导出或对账依据。需要保留的字段必须提前配置沉淀路径。
10.10 是否所有缓存变量都要沉淀?
不需要。只有有长期查询、导出、对账、质检或报表价值的变量才建议沉淀。临时流程变量不建议全部保存。
十一、总结
缓存变量是呼叫中心运行时上下文中的临时变量口径,用于支撑 IVR、TTS、机器人、弹屏、随路数据、推送等通话过程能力。它的核心价值是让同一次通话或会话中的前后节点能够共享上下文。
使用缓存变量时,应明确变量来源、有效范围、消费位置和沉淀需求。运行时可用不等于事后可查;如果变量需要长期查询、导出、对账或质检,必须按配置进入话单、推送日志、记录扩展字段或导出结果。
附录 A:入口与权限
| 入口 | 说明 |
|---|---|
| IVR / 语音导航 | 生成、读取和判断运行时变量。 |
| TTS / 提示音配置 | 读取变量并动态播报。 |
| 机器人 / 智能体配置 | 生成会话级变量和转人工上下文。 |
| 工作台配置 | 将变量用于弹屏、自定义页面和 Tab 页。 |
| 推送配置 | 配置事件中需要带出的变量。 |
| 通话记录配置 | 配置需要沉淀的记录扩展字段。 |
| 外呼任务配置 | 配置任务上下文和座席侧通道变量。 |
权限建议:
- 变量配置权限应限制给实施或管理员。
- 推送、导出和沉淀字段变更应有变更记录。
- 含敏感信息的变量应受脱敏、数据范围和导出权限控制。
附录 B:关键字段口径
| 字段类别 | 业务含义 | 使用建议 |
|---|---|---|
| 缓存变量 | 通话或会话运行时临时变量 | 用于流程判断、TTS、弹屏、转人工等。 |
| 运行时变量 | 当前通话过程中可读取的变量 | 不一定长期保存。 |
| 会话变量 | 当前机器人或 IVR 会话中的变量 | 适合多轮流程使用。 |
| 随路数据 | 随通话过程传递的数据 | 适合座席侧或外部系统协同。 |
| 话单字段 | 通话结束后沉淀的记录字段 | 用于查询、导出和对账。 |
| 推送字段 | 事件同步给外部系统的字段 | 按事件类型确认。 |
| TTS 变量 | 动态语音播报消费的变量 | 必须有空值兜底。 |
附录 C:实施检查清单
| 检查项 | 检查内容 |
|---|---|
| 变量来源 | 已确认变量从哪里生成或写入。 |
| 有效范围 | 已确认变量在通话级、会话级还是节点级有效。 |
| 使用位置 | 已确认 IVR、TTS、机器人、弹屏、推送等消费方。 |
| 空值兜底 | 变量为空或缺失时有处理策略。 |
| 沉淀需求 | 需要长期追溯的变量已配置进入记录或推送。 |
| 安全脱敏 | 敏感变量已脱敏或不传明文。 |
| 推送验证 | 关键事件能按需带出变量。 |
| 话单验证 | 需要查询的变量已沉淀到话单或记录扩展字段。 |
| 导出验证 | 导出列符合客户要求。 |
| 变更机制 | 变量变更前已同步客户系统和运营。 |
附录 D:常见问题速查
| 问题 | 可能原因 | 建议处理 |
|---|---|---|
| 运行时有值但记录查不到 | 未配置沉淀 | 配置话单或记录扩展字段。 |
| TTS 播报为空 | 变量为空或未生成 | 配置默认提示和兜底分支。 |
| 推送没有变量 | 事件发生时变量未生成或未配置 | 检查事件时机和推送字段。 |
| 弹屏没有变量 | 页面参数未映射或变量未写入 | 先查变量链路,再查页面配置。 |
| 报表无法统计 | 变量未进入统计链路 | 先沉淀为可统计字段。 |
| 对账失败 | 使用了未沉淀的临时变量 | 使用话单字段或稳定业务标识。 |
附录 E:术语表
| 术语 | 说明 |
|---|---|
| 缓存变量 | 通话或会话过程中临时保存和读取的变量。 |
| 运行时变量 | 当前通话过程中可读取的变量。 |
| 会话级暂存变量 | 当前 IVR、机器人或通话会话中暂存的变量。 |
| 通道变量 | 随一次通话流转的上下文变量。 |
| 随路数据 | 随通话过程传递的业务数据。 |
| TTS 变量 | 用于动态语音播报的变量。 |
| 沉淀字段 | 通话结束后保存到记录、推送或导出的字段。 |
| 空值兜底 | 变量为空或缺失时的备用处理路径。 |