本文档介绍了聊天记录元数据记录的架构。这是 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(字符串,网址):图片的网址。text(字符串):图片的替代文本或后备网址。
document(对象):文档消息正文。type(字符串):始终为document。media_id(整数;当系统将文档存储为 CCAI Platform 媒体时存在):存储的文档媒体的标识符。title(字符串;当嵌入式文档对象表示文档时存在):文档的标题。document(对象;当嵌入式文档对象表示文档时存在):文档详细信息。url(字符串,URI):文档的网址。text(字符串):文档的替代文本或后备网址。
audio(对象):语音消息正文。type(字符串):始终为audio。media_id(整数;当系统将音频存储为 CCAI 平台媒体时存在):存储的音频媒体的标识符。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,该content不属于 CCAI 平台架构;将其视为不透明。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(字符串;仅在任务-va 完成事件中存在):任务-va 会话结束的原因。escalation_reason(字符串;仅针对上报事件显示):上报原因。deflection(对象;仅针对转接事件显示):转接详细信息。detail(对象;仅针对自定义通知事件存在):自定义事件详细信息。key(字符串):自定义事件键。data(对象):自定义事件载荷。
通知事件名称
event 字段用于标识通知事件。聊天提供方(作为唯一可信来源)会将以下列表中的所有通知事件持久保存到转写 JSON 中。该列表按家庭对这些活动进行分组。
智能操作请求
verificationRequestedphotoRequestedvideoRequestedscreenshotRequestedtextRequestedcobrowseRequestedFromAgent
智能操作结果
已完成:
photoFinished、videoFinished、screenshotFinished、textFinished已取消:
photoCanceled、videoCanceled、screenshotCanceled、textCanceled、cobrowseCanceled失败:
photoFailed、videoFailed、screenshotFailed、textFailed、verificationFailed
验证
endUserVerified
共同浏览
cobrowseRequestedFromEndUsercobrowseCodeGeneratedcobrowseStartedcobrowseEndedcobrowseFailed
表单
formRequestedformSentformCompleted
传输
transferStartedtransferAcceptedtransferFailed
虚拟客服升级
escalationStartedescalationAcceptedescalationDeflectedescalationFailed
任务虚拟客服
taskVaStartedtaskVaFinished
成员资格
memberJoinedmemberLeft
会话生命周期
chatEndedchatEndedWithPostSessionchatDismissedcheckInRequiredcheckInTimedOuttranscriptRequestedtranscriptUpdated
自定义
custom
对于将 comm_type 设置为 call 的记录,可能会显示其他通话转写通知事件。这些事件与通话或 Agent Assist 转写处理相关联,而不是与普通的聊天事件系列相关联。
定义
以下子架构会显示在聊天记录元数据文档中。本部分定义了每个子架构一次;引用它们的属性组会指向本部分,而不是重新内联定义它们的形状。
entry(对象)
表示一条转写消息、通知或操作。每个条目都有一个 Unix-epoch 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,请尽可能保留原始条目,并继续解析转写的其余部分。系统可能会添加新的消息正文类型,但不会更改现有字段的含义。
已弃用的字段
此文档未列出聊天记录元数据记录的任何已弃用字段。