本文档介绍了聊天记录元数据记录的架构。这是 Contact Center AI 平台 (CCAI Platform) 为已完成的聊天记录生成的 JSON 文件。聊天转写元数据记录由聊天记录 JSON 导出功能生成,可以通过 CRM 转写上传和外部存储转写文件进行传送,具体取决于您的实例配置。使用此架构可解析转写 JSON、验证收到的载荷,或将转写消息映射到下游系统。
架构根
聊天转写文稿元数据记录是一个 JSON 对象,表示一个聊天转写文稿工件。根字段用于标识通信、转录格式版本和转录条目的有序集。
通信标识符 comm_type 和 comm_id
comm_type 和 comm_id 共同标识此转写记录所代表的通信。
comm_type用于标识通信类型。该值通常为chat。对于包含混合短信转写内容的语音通话,此值可能为call。comm_id是转写内容所代表的聊天或通话的标识符。
格式版本 transcript_version
标识 JSON 转写格式的版本。集成应使用此字段进行向前兼容的解析,并应忽略无法识别的字段。
条目判别器 - entries[].type 和 entries[].body.type
entries 中的每一项都代表一条转写消息或一个事件。条目级 type 字段反映了邮件正文类型。嵌套的 body 对象包含载荷,其形状因类型而异,例如 text、markdown、photo、noti 或 action。
Chat 转写文稿元数据架构
此架构描述了聊天记录的数据结构。以下部分介绍了核心组件。
核心转写信息
以下属性提供了有关转录内容本身的基本信息:
comm_type(字符串):转写文稿所代表的通信类型。可能的值:chat、call。值call表示包含混合短信转写内容的语音通话。comm_id(整数):转写内容所代表的通信的唯一标识符。transcript_version(字符串):转写 JSON 格式的版本。当前值为"1.0"。请参阅版本控制和弃用。assigned_at(字符串,日期时间):分配聊天的时间戳。timezone(字符串):转写内容上下文的时区,例如"America/Los_Angeles"。
转写条目
entries(数组):转写条目的有序列表。每个条目代表对话中的一条消息、通知或操作。timestamp(整数):系统创建条目时的 Unix 纪元时间戳(以秒为单位)。type(字符串):邮件正文类型。此值与body.type相同。如需了解支持的身体类型,请参阅定义。body(对象):条目载荷。其形状取决于type/body.type的值。role(字符串):生成条目的参与者或系统组件的角色。可能的值:end_user、agent、manager、virtual_agent、external_agent、task_virtual_agent、system。user_data(对象):发送者元数据。对于agent、manager、virtual_agent、external_agent和task_virtual_agent条目,此对象包含发件人的显示数据。对于end_user和system条目,此对象为空。name(字符串;仅在发件人元数据可用时显示):发件人的显示名称。id(整数;仅在发送者元数据可用时存在):发送者的标识符。avatar_url(字符串、URI;仅在发件人元数据可用时存在):发件人头像图片的网址。
短信正文
text(对象):纯文本消息正文。type(字符串):始终为text。content(字符串):消息文本。lang(字符串;仅在语言元数据可用时存在):与消息关联的语言代码。
text_template(对象):模板化短信正文。type(字符串):始终为text_template。content(字符串):模板文本。
markdown(对象):采用 Markdown 格式的邮件正文。type(字符串):始终为markdown。content(字符串):Markdown 内容。lang(字符串;仅在语言元数据可用时存在):与消息关联的语言代码。
markdown_template(对象):模板化 Markdown 邮件正文。type(字符串):始终为markdown_template。content(字符串):Markdown 模板内容。
媒体和文件消息正文
photo(对象):照片或屏幕截图信息正文。type(字符串):始终为photo。media_id(整数):存储的照片媒体的标识符。
video(对象):视频消息正文。type(字符串):始终为video。media_id(整数;当系统将视频存储为 CCAI Platform 媒体时存在):存储的视频媒体的标识符。title(字符串;当嵌入式视频对象代表视频时显示):视频的标题。video(对象;当嵌入式视频对象代表视频时存在):视频详情。url(字符串、URI):视频的网址。text(字符串):视频的替代文本或后备网址。
image(对象):图片消息正文。type(字符串):始终为image。title(字符串;在消息发送者提供时存在):图片的标题。image(对象):图片详情。url(字符串、URI):图片的网址。text(字符串):图片的替代文本或后备网址。
document(对象):文档信息正文。type(字符串):始终为document。media_id(整数;当系统将文档存储为 CCAI Platform 媒体时存在):存储的文档媒体的标识符。title(字符串;当嵌入式文档对象表示文档时存在):文档的标题。document(对象;当嵌入式文档对象表示文档时存在):文档详细信息。url(字符串、URI):文档的网址。text(字符串):文档的替代文本或后备网址。
audio(对象):语音消息正文。type(字符串):始终为audio。media_id(整数;当系统将音频存储为 CCAI Platform 媒体时存在):存储的音频媒体的标识符。title(字符串;当嵌入式音频对象表示音频文件时存在):音频文件的标题。audio(对象;当嵌入式音频对象表示音频文件时存在):音频详细信息。url(字符串、URI):音频文件的网址。text(字符串):音频文件的替代文本或后备网址。
互动式邮件正文
inline_button(对象):内嵌按钮信息正文。type(字符串):始终为inline_button。title(字符串):要在按钮上方显示的标题。buttons(数组):按钮定义列表。title(字符串):按钮标签。action(字符串):与按钮关联的操作。link(字符串、URI;仅适用于链接式快速回复):与按钮关联的网址。
sticky_button(对象):粘性按钮邮件正文。type(字符串):始终为sticky_button。title(字符串):要在按钮上方显示的标题。buttons(数组):按钮定义列表。title(字符串):按钮标签。action(字符串):与按钮关联的操作。link(字符串、URI;仅适用于链接式快捷回复):与按钮关联的网址。
content_card(对象):内容卡片信息正文。type(字符串):始终为content_card。cards(数组):内容卡片列表。title(字符串):卡片标题。body(字符串;仅在您配置卡片正文时显示):卡片正文。
form_complete(对象):消费者完成、未能完成或取消表单时,客户端发送的表单完成信息正文。type(字符串):始终为form_complete。signature(字符串;仅在完成事件包含签名时存在):表单完成载荷的签名。data(对象):表单填写详情。status(字符串):完成状态。可能的值:success、error、cancelled。smart_action_id(整数):与表单关联的智能操作的标识符。timestamp(字符串,日期时间):表单填写事件发生时的时间戳。这与条目级timestamp不同,后者是整数 Unix 纪元时间戳(以秒为单位)。details(对象;仅当载荷提供额外的完成详情时才会显示):额外的状态详情。error_code(字符串;仅在错误有代码时存在):与补全结果关联的错误代码。message(字符串):人类可读的状态详情。
服务器生成的消息正文和透传消息正文
server_message(对象):服务器生成的信息正文。只有在您为账号启用任务虚拟客服转写内容时,转写内容才会包含server_message条目;否则,转写内容会省略这些条目。当转写内容引用存储的服务器端消息时,请使用此对象。type(字符串):始终为server_message。message_id(整数):存储的服务器消息的标识符。visibility(字符串或 null):存储的服务器消息的公开范围设置。
passthrough(对象):系统通过 CCAI 平台传递给虚拟客服或 CCaaS 集成的自定义载荷。您的集成会定义其content,它不属于 CCAI Platform 架构;请将其视为不透明。type(字符串):始终为passthrough。content(字符串或对象):集成定义的载荷。其结构因集成而异,CCAI 平台不会对其进行解释。
操作消息正文
action(对象):虚拟客服或聊天机器人流程请求的操作。action字段决定了操作载荷形状。type(字符串):始终为action。action(字符串):操作类型。可能的值包括escalation、deflection和end。escalation_reason(字符串;仅当action为escalation时存在):对话上报的原因。menu_id(整数;仅当action为escalation时存在):对话应升级到的菜单的标识符。language(字符串;仅当action为escalation时存在):目标队列的语言代码。deflection_type(字符串;仅在action为deflection时存在):请求的偏转类型。sip_parameters(对象或 null;仅当action为deflection时存在):要在偏转过程中转发的 SIP 参数。
通知消息正文
noti(对象):通知消息正文。通知会描述聊天期间发生的系统事件。type(字符串):始终为noti。event(字符串):通知事件名称。agent(对象;仅针对与人工客服关联的事件显示):与事件关联的客服。id(整数):代理标识符。email(字符串,电子邮件):代理邮箱。name(字符串):智能体显示名称。
from_agent(对象;仅针对具有来源代理的转移事件显示):事件的来源代理。id(整数):代理标识符。email(字符串,电子邮件):代理邮箱。name(字符串):智能体显示名称。
to_agent(对象;仅针对具有目标人工客服的转移或上报事件):事件的目标人工客服。id(整数):代理标识符。email(字符串,电子邮件):代理邮箱。name(字符串):智能体显示名称。
from_virtual_agent(对象;仅针对来自虚拟客服人员的上报事件显示):事件的来源虚拟客服人员。id(整数):虚拟代理标识符。name(字符串):虚拟客服显示名称。avatar_url(字符串、URI 或 null):虚拟客服的头像图片网址。
to_virtual_agent(对象;仅针对向虚拟客服转移的事件):事件的目标虚拟客服。id(整数):虚拟代理标识符。name(字符串):虚拟客服显示名称。avatar_url(字符串、URI 或 null):虚拟客服头像图片的网址。
target(字符串;仅针对转移事件显示):转移的目标类型。可能的值包括menu和agent。status(字符串;仅适用于带有聊天状态的事件):与事件关联的 Chat 状态。timeout(布尔值;仅针对与超时相关的事件显示):事件是否由超时引起。memberIdentity(字符串;仅在参与者加入或离开事件时出现):参与者的身份。memberName(字符串;仅在参与者加入或离开事件时出现):参与者的显示名称。name(字符串;仅适用于 virtual-agent 或 task-va 事件):与事件关联的显示名称。reason(字符串;仅针对 task-va 完成事件):task-va 会话结束的原因。escalation_reason(字符串;仅针对上报事件显示):上报原因。deflection(对象;仅针对偏转事件显示):偏转详情。detail(对象;仅针对自定义通知事件显示):自定义事件详情。key(字符串):自定义事件键。data(对象):自定义事件载荷。
通知事件名称
event 字段用于标识通知事件。聊天服务提供商作为单一事实来源,会将以下列表中的所有通知事件保留在转写 JSON 中。该列表按系列对这些事件进行分组。
智能操作请求
verificationRequestedphotoRequestedvideoRequestedscreenshotRequestedtextRequestedcobrowseRequestedFromAgent
智能操作结果
- 完成时间:
photoFinished、videoFinished、screenshotFinished、textFinished - 已取消:
photoCanceled、videoCanceled、screenshotCanceled、textCanceled - 失败:
photoFailed、videoFailed、screenshotFailed、textFailed、verificationFailed
验证
endUserVerified
共同浏览
cobrowseRequestedFromEndUsercobrowseCodeGeneratedcobrowseStartedcobrowseEndedcobrowseFailed
表单
formRequestedformSentformCompleted
传输
transferStartedtransferAcceptedtransferFailed
虚拟客服上报
escalationStartedescalationAcceptedescalationDeflectedescalationFailed
任务虚拟客服
taskVaStartedtaskVaFinished
成员资格
agentJoinedmemberJoinedmemberLeft
会话生命周期
chatEndedchatEndedWithPostSessionchatDismissedchatReactivatedcheckInRequiredcheckInTimedOuttranscriptRequestedtranscriptUpdated
自定义
custom
对于 comm_type 设置为 call 的记录,可能会出现额外的通话转写通知事件。这些事件与通话或 Agent Assist 转写文稿处理相关,而非普通的聊天事件系列。
定义
以下子架构会显示在聊天记录元数据文档中。本部分对每个子架构进行了一次定义;引用这些子架构的属性组会指向本部分,而不是以内嵌方式重新定义其形状。
entry(对象)
表示一条转写消息、通知或操作。每个条目都有一个 Unix 纪元 timestamp、一个顶级 type、一个类型与该形状匹配的 body 对象、一个发送者 role 和一个 user_data 对象。如需查看字段的完整列表,请参阅转录内容条目。
user_data(对象)
描述转写条目的发送者(当发送者元数据可用时)。代理、管理员、虚拟代理、外部代理和任务虚拟代理条目可以包含 name、id 和 avatar_url。消费者和系统条目包含一个空对象。
邮件正文(对象,oneOf)
每个条目上的 body 对象使用 body.type 的值来选择一种受支持的消息正文形状。支持的正文类型包括文本正文、媒体或文件正文、互动正文、服务器生成的正文、操作正文和通知正文。如需查看已记录变体的完整列表,请参阅短信正文到通知消息正文。
参与者角色(字符串、枚举)
标识转写条目的发送者类别。
允许使用的值
end_user- 消费者。agent- 人工客服。manager- 管理者参与者。virtual_agent- 虚拟客服。external_agent- 外部代理参与者。task_virtual_agent- 任务虚拟客服。system- 系统生成的条目。
版本控制和弃用
聊天记录元数据文档支持向后兼容的架构演变。系统可能会随着时间的推移添加新字段和消息正文变体,集成应忽略任何无法识别的键,以确保功能持续正常运行。
当前格式版本
transcript_version(字符串)- 当前值:"1.0"。集成应根据载荷中存在的字段解析转写内容,并且不应在未来版本添加新字段或消息正文类型时失败。
未知消息正文类型
如果转录条目包含无法识别的 type 或 body.type,请尽可能保留原始条目,并继续解析转录内容的其余部分。系统可能会添加新的 message-body 类型,而不会更改现有字段的含义。
已弃用的字段
本文档未列出聊天记录元数据记录的任何已弃用字段。