本文档提供了通话会话元数据记录的架构,即 CCAI Platform 在每次语音通话结束时发出的 JSON 文档。CCAI Platform 会将该记录作为会话结束命令的正文传递给 CRM 集成,并将该记录作为 metadata.json 文件写入外部存储配置。每次调用都会生成一条记录。顶级 id 可唯一标识每条记录。使用此架构可将记录注入下游系统、验证收到的载荷,或将字段映射到数据仓库列。
架构根
通话会话元数据记录是表示语音通话会话的单个 JSON 对象。顶层的三个概念决定了记录的身份和形状。
主键 - id(整数)
顶级 id 可在实例中唯一标识通话会话。每次通话都有一条记录。所有其他顶级字段、数组和嵌套对象都描述了此 id 标识的调用的属性。
Handler discriminator — agent_info(对象,oneOf)
一个对象,其形状因调用的最后一个处理程序而异。这两个变体是互斥的,并且该键也可以完全不存在,因此一条记录最多包含以下三种情况之一:
人工客服变体 - 当通话有人工客服而没有虚拟客服时出现。除了共享的
id、name和avatar_url字段之外,还包含email、first_name、last_name和agent_number。虚拟客服变体 - 当通话中有虚拟客服而没有人工客服时,会显示此变体。包含
va_alias,并省略email、first_name、last_name和agent_number。键不存在 - 在以下两种情况下,
agent_info键会被省略:通话中既没有人工客服也没有虚拟客服,以及通话中既有人工客服也有虚拟客服。当虚拟客服在升级到人工客服的过程中被保留时,通话会同时携带这两个键,因此完全处理的通话可能会在缺少该键的情况下到达。
如需检测记录包含哪个变体,请先检查 agent_info 键是否存在,然后检查变体专用字段(通常,人工客服变体为 agent_info.email,虚拟客服变体为 agent_info.va_alias)。请勿仅根据 agent_info 推断处理程序;对于同时具有这两者的通话,请从 participants[] 中读取人工客服,并从 virtual_agent_handle_durations[] 或 transfers[] 和 escalations[] 上的 from_virtual_agent 和 to_virtual_agent 字段中读取虚拟客服。如需了解每个变体的完整形状,请参阅 agent 和 virtual_agent。
调用形状鉴别器 - call_type、session_type、session_type_v2(字符串)
同一底层调用类型的三个并行视图。它们在记录所代表的调用类型方面始终一致,只是在命名调用类型时使用的词汇不同。
call_type使用旧版枚举词汇(例如Voice Inbound (App)、Voice Outbound或Voice Internal)。session_type始终返回与call_type相同的字符串。CCAI Platform 提供此字段,以便与以此字段为键的集成向后兼容;请将其视为call_type的已弃用别名。请参阅版本控制和弃用。session_type_v2使用当前的枚举词汇。此词汇表扩展了call_type词汇表,提供了更精细的入站区别,例如,使用Voice Inbound (Mobile)和Voice Inbound (IVR via Mobile)代替更广泛的Voice Inbound (App)和Voice Inbound (IVR via App)。对于没有 v2 专属值的调用类型,session_type_v2会返回与call_type相同的字符串。新集成应解析session_type_v2。
如需了解每个字段的值,请参阅核心信息。
核心信息
这些属性会捕获调用的核心信息:
id(整数):每个通话会话的唯一标识符。这是用于区分不同调用的主键。call_uuid(字符串或 null):一个唯一标识符,用于在动态通话转接 (DCR) 互动中关联发起实例和接收实例之间的通话。DCR 调用的两个部分共享相同的call_uuid值,以便客户在环境之间桥接数据。对于任何非 DCR 互动通话,以及在 CCAI Platform 添加该字段之前发生的通话,该字段均为 null 或空。lang(字符串):通话的 ISO 639 语言代码(例如,“en”表示英语,“es”表示西班牙语)。此代码可帮助您执行特定语言的分析和报告。call_type(字符串):通话类型,使用旧版类型词汇。 值包括“Voice Inbound (App)”“Voice Inbound (Web)”“Voice Inbound (IVR)”“Voice Inbound (IVR via App)”“Voice Inbound (API)”“Voice Inbound (Direct)”“Voice Inbound (Extension)”“Voice Scheduled (App)”“Voice Scheduled (Web)”“Voice Scheduled (API)”“Voice Callback”“Voice Callback (Web)”“Voice Outbound”“Voice Outbound (API)”“Voice Outbound (Direct)”“Voice Outbound (UCaaS)”“Voice Internal”“Voice Campaign (Acqueon)”“Voice Campaign (<your brand name>)”和“Agent Scheduled Call”。session_type(字符串):call_type的副本(值相同),CCAI 平台保留该副本是为了向后兼容。请参阅版本控制和弃用:旧版重复项。session_type_v2(字符串):通话类型,使用当前类型词汇。它通过更精细的入站区别来优化call_type值(例如,使用“Voice Inbound (Mobile)”和“Voice Inbound (IVR via Mobile)”代替“Voice Inbound (App)”和“Voice Inbound (IVR via App)”)。值包括“Voice Inbound (Mobile)”“Voice Inbound (Web)”“Voice Inbound (IVR)”“Voice Inbound (IVR via Mobile)”“Voice Inbound (API)”“Voice Inbound (Direct)”“Voice Inbound (Extension)”“Voice Scheduled (Mobile)”“Voice Scheduled (Web)”“Voice Scheduled (API)”“Voice Callback”“Voice Callback (Web)”“Voice Outbound”“Voice Outbound (API)”“Voice Outbound (Direct)”“Voice Outbound (UCaaS)”“Voice Internal”“Voice Campaign (Acqueon)”“Voice Campaign (<your brand name>)”和“Agent Scheduled Call”。status(字符串):通话的状态,用于跟踪通话在整个通话生命周期中的进展。可能的值(按生命周期阶段分组):预连接:
"scheduled"、"selecting"、"queued"、"assigned"、"connecting"、"switching"、"requeued"、"requeued_detection_missed"。已连接:
"connected"。虚拟客服:
"va_assigned"、"va_connected"。广告系列:
"preview_pending"、"preview_ready"、"preview_waiting"、"predictive_waiting"、"progressive_waiting"、"campaign_dialing"、"campaign_connecting"、"campaign_connected"。仅限操作:
"action_only"、"action_only_finished"。语音信息:
"voicemail"、"voicemail_received"、"voicemail_read"、"voicemail_forwarded"。终端:
"finished"、"failed"、"recovered"、"deflected"。
created_at(字符串,日期时间):CCAI 平台创建通话记录的确切时间戳。queued_at(字符串、日期时间或 null):通话进入队列的时间戳;如果通话未进入队列,则为 null。assigned_at(字符串、日期时间或 null):CCAI 平台将通话分配给客服人员的时间戳;如果 CCAI 平台未分配通话,则为 null。connected_at(字符串、日期时间或 null):通话接通时的时间戳。ends_at(字符串、日期时间或 null):通话结束时的时间戳。scheduled_at(字符串、日期时间或 null):CCAI Platform 安排通话的时间戳;如果通话是即时通话,则为 null。updated_at(字符串,日期时间):CCAI Platform 上次更新通话数据时的时间戳。wait_duration(整数或 null):客户在整个通话过程中在队列中花费的总时间(以秒为单位),如果 CCAI Platform 未记录任何队列时间,则为 null。如需查看按各个片段细分的队列时间,请参阅queue_durations数组(队列时长)。请参阅版本控制和弃用:等待时间字段命名法。call_duration(整数或 null):通话的总时长(以秒为单位)。hold_duration(整数或 null):消费者处于保持状态的总时间(以秒为单位),如果没有保持时间,则为 null。rating(整数或 null):消费者提交的客户满意度 (CSAT) 评分;如果消费者未提交评分,则为 null。has_feedback(布尔值):一个标志,用于指示消费者是否在通话后提供了反馈。voip_provider(字符串):通话的 VoIP 提供商。(注意:此字段已弃用,始终返回“deprecated”。)out_ticket_id(字符串或 null):CCAI 平台在外部 CRM 系统中创建的工单的 ID。out_ticket_url(字符串、URI 或 null):CRM 工单的网址。is_out_ticket_account(布尔值或 null):指示 CRM 工单是代表客户 (true) 还是通话互动 (false)。verified(布尔值):指示验证智能操作是否验证了互动。recording_url(字符串、URI 或 null):通话录音的网址;如果没有可用的录音,则为 null。recording_permission(字符串或 null):消费者的录制权限状态。可能的值:“not_asked”“granted”“denied”。voicemail_reason(字符串):留下语音信息的原因,或者在通话未转到语音信箱时显示为"not_voicemail"。可能的值:"not_voicemail"、"temporary_redirection"、"after_hour_deflection"、"over_capacity_deflection"、"no_input"和"no_agent"。disconnected_by(字符串或 null):表示哪一方结束了通话。 可能的值:disconnected_by_unknown、disconnected_by_agent、disconnected_by_end_user、disconnected_by_virtual_agent、disconnected_by_system。fail_reason(字符串或 null):调用失败的原因,对于未失败的调用,则为"nothing"。可能的值(按故障归属方或子系统分组):无故障:
nothing常规:
unknown、expired、transfer_expired、canceled_outside_fulfillment_hours最终用户:
eu_canceled、eu_rejected、eu_abandoned、eu_in_menu_abandoned、eu_repeated_voicemail、eu_repeated_callback、eu_dcr_abandoned_on_receiving、eu_busy、eu_wrong_number、eu_no_answer、eu_noti_failed、eu_phone_denied客服:
ag_canceled、ag_ignored、ag_declined、ag_mic_no_device、ag_mic_denied、ag_invalid_outbound_num、ag_called_blocked_num连接:
conn_declineVoIP:
voip_twilio_error、voip_tokbox_error、voip_invalid_token、voip_conn_general、voip_conn_timeout、voip_conn_signal、voip_conn_codec、voip_nexmo_error、voip_telnyx_error音频:
audio_not_received_by_carrier、audio_device_unable_to_start卡住或无法解决的状态:
stuck_due_to_api_error、group_deleted_no_substitute、menu_deleted、direct_pstn_call_to_fallback_number广告系列:
campaign_paused、campaign_queue_reassigned、campaign_no_incoming_contacts、campaign_call_canceled强制结束:
force_ended、force_failed_call_stuck
fail_details(字符串或 null):随附于fail_reason的其他人类可读详细信息(如有)。adapter_fail_code(整数或 null):与调用级别的fail_reason对应的数字代码。如果调用未失败,则为 null。第 17 节中每个参与者的adapter_fail_code使用相同的枚举。adapter_fail_message(字符串或 null):与adapter_fail_code对应的人类可读消息。如果调用未失败,则为 null。support_number(字符串或 null):消费者拨打的用于联系联络中心的手机号码,采用 E.164 格式。针对源自 IVR 的通话填充;对于其他渠道,可能为 null。queue_priority_level(整数;仅当您的账号启用了队列优先级时才会显示):分配给通话的队列优先级。
代理和虚拟客服信息
这些部分说明了来电的处理方或处理方式:
agent_info(对象):此字段可以包含人工客服或虚拟客服的相关信息。它使用oneOf关键字指定它可以是两种类型之一。agent(对象):人工客服的相关信息:id(整数):智能体的唯一 ID。agent_number(字符串或 null):分配给代理的标识符。email(字符串、电子邮件):代理的邮箱。name(字符串):智能体的全名。last_name(字符串):代理的姓氏。first_name(字符串):客服人员的名字。avatar_url(字符串,URI):代理的头像图片网址。
virtual_agent(对象):虚拟客服的相关信息:id(整数):虚拟代理的唯一 ID。name(字符串):虚拟客服的名称。avatar_url(字符串、URI 或 null):虚拟客服的头像图片的网址。va_alias(字符串或 null):虚拟客服人员的显示别名(如果您设置了别名)。始终存在于载荷中;未设置别名时为 null。
菜单导航
selected_menu(对象或 null):有关消费者在通话期间选择的菜单的信息。id(整数):菜单的唯一 ID。name(字符串):菜单的名称。parent_id(整数或 null):父级菜单的 ID(如有)。position(整数):菜单相对于同一级别其他菜单的位置。deleted(布尔值):菜单是否已删除。menu_type(字符串):菜单类型(例如ivr_menu或sms_menu)。hidden(布尔值):菜单是否可见且可供使用。
menu_path(对象或 null):描述消费者浏览的菜单的分层路径。items_count(整数):路径中的菜单数量。name(字符串):以斜杠分隔的菜单名称字符串(例如,“支持/结算”)。materialized_path(字符串):以斜杠分隔的菜单 ID 字符串。
automation_redirection(对象;仅当通话的第一个偏转日志与重定向组相关联时才会显示):有关影响此通话路由的基于百分比的队列重定向的详细信息。percent_redirection(布尔值):您是否在来源菜单上启用了基于百分比的重定向。redirection_group(数组):包含重定向组详细信息的一个元素数组:group_label(字符串):重定向组的人类可读标签(例如“重定向组 1”)。destination(对象或 null):您在群组中配置的重定向目的地。after_hours(布尔值或 null):您是否在群组中启用了非工作时间转移选项。ah_destination(对象或 null):您在群组中配置的非工作时间重定向目的地。
最终用户详细信息
end_user(对象或 null):消费者的相关信息:id(整数或 null):消费者的内部 ID。identifier(字符串或 null):消费者的外部标识符。out_contact_id(字符串或 null):CRM 中消费者的 ID。
自定义数据和 SDK 提供的数据
customer_flag(对象;仅在网站传递自定义身份验证数据时存在):消费者应用或网站在会话开始时传递的与身份验证相关的自定义数据属性。载荷仅包含您指定为身份验证参数的子集。api_dap_request(对象;仅在您启用数据参数并将其包含在元数据中时存在):通话数据参数值的快照。键和值类型取决于您的数据参数配置。form_responses(数组;仅在消费者至少提交了一个表单回复时显示):通话中 SDK 表单在会话期间收集的回复。每个条目都包含:id(字符串或整数):表单回复标识符。title(字符串):向消费者显示的表单标题。smart_action_id(整数或 null):触发了表单的智能操作的标识符(如果有)。questions(数组):收集到的问题和回答对。
附件
photos(数组):消费者在通话期间上传的照片。id(整数):照片的唯一标识符。photo_type(字符串):照片的类型或来源(例如“photo”)。url(字符串、URI):所存储照片的网址。smart_action_type(字符串或 null):生成照片的智能操作(如果有)。transfer_id(整数或 null):照片的转移事件 ID(如果消费者在转移后上传了照片)。
videos(数组):消费者在通话期间上传的视频。id(整数):视频的唯一标识符。url(字符串,URI):所存储视频的网址。smart_action_type(字符串或 null):生成视频的智能操作(如果有)。transfer_id(整数或 null):视频的转移事件 ID(如果消费者在转移后上传了该视频)。
来电转移
deflection(字符串):指示来电是否转移以及如何转移(例如"no_deflection"、"over_cap_phone"或"after_hours_voicemail")。deflection_details(数组):提供通话期间转移的详细日志。每个条目中的 deflection 字段都使用定义:deflection 中定义的枚举。每个条目都包含:id(整数):偏转日志记录的唯一标识符。call_id(整数):调用的唯一标识符。transfer_id(整数或 null):与转移相关联的唯一标识符(如果适用)。deflection(字符串;如需了解允许的值,请参阅定义:偏转):偏转类型。created_at(字符串,日期时间):发生偏转时的时间戳。from_menu_path(对象或 null):偏转开始时的菜单路径。to_menu_path(对象或 null):CCAI Platform 将通话转移到的菜单路径。to_sip_uri(字符串;仅在 CCAI 平台将通话转接到 SIP 目标位置时存在):CCAI 平台将通话转接到的 SIP URI(如果适用)。to_sip_headers(对象;仅在 CCAI 平台将通话转接到 SIP 目标位置时存在):CCAI 平台在转接通话时使用的 SIP 标头(如果适用)。
传输
transfers(数组):通话期间每个转接事件对应一个条目。记录客服、虚拟客服和菜单之间的热转接和冷转接。id(整数):转移作业的唯一标识符。status(字符串):转移作业的当前状态(例如,正在转移、已连接或失败)。fail_reason(字符串):转移作业失败的原因,如果未失败,则为“nothing”。created_at(字符串,日期时间):转移作业开始的时间。assigned_at(字符串、日期时间或 null):CCAI 平台将转接分配给接收方的时间。connected_at(字符串、日期时间或 null):转移作业连接的时间。updated_at(字符串,日期时间):CCAI Platform 上次更新转移记录的时间。call_duration(整数):转接片段的通话时长(以秒为单位)。wait_duration(整数):消费者在转移期间等待的时间(以秒为单位)。deflection(字符串):与转移关联的偏转类型(如有)。answer_type_path(字符串或 null):描述转接的通话如何解决的路径。from_menu_path/to_menu_path(对象或 null):转移前后的菜单路径;与定义中的menu_path形状相同。from_agent/to_agent(对象或 null):转接双方的人工客服;与定义中的agent对象具有相同的形状。from_virtual_agent/to_virtual_agent(对象或 null):转接双方的虚拟客服;与定义中的virtual_agent对象具有相同的形状。from_queue_priority_level/to_queue_priority_level(整数或 null):转移前后的队列优先级。仅当您在账号中启用队列优先级时才会显示。
来电处理时长
handle_durations(数组):一个对象数组,每个对象代表由客服人员处理的通话片段。这有助于分析客服人员的处理时间。id(整数):处理时长的唯一标识符。agent_id(整数):代理的 ID。acw_duration(整数):通话后收尾工作时长。bcw_duration(整数):通话前工作时长。call_duration(整数):此片段期间的通话时长。menu_path_id(整数或 null):菜单路径的 ID。menu_path(字符串):菜单路径的名称。lang(字符串):所用语言。barged(布尔值):主管是否强行介入通话。transfer(布尔值):是否发生了转移。transfer_id(整数或 null):转移作业的 ID。transfer_cold(布尔值或 null):转接是否为冷转接。started_at(字符串,日期时间):开始时间戳。ended_at(字符串、日期时间或 null):结束时间戳。scheduled_at(字符串、日期时间或 null):预定的时间戳。hold_duration(整数或 null):此细分期间的保留时长。assigned_connection_duration(整数):在此阶段,客户在客服人员连接期间等待的时长。session_breakthrough(对象;仅在来电突破客服人员的不可用状态时出现):有关突破客服人员不可用状态的来电分配的详细信息(如果适用)。
队列时长
queue_durations(数组):一个对象数组,每个对象代表消费者在队列中的通话片段。这有助于分析等待时间和 服务水平id(整数):队列时长的唯一标识符。agent_id(整数):代理的 ID。ended_at(字符串、日期时间):结束时间戳。lang(字符串):所用语言。menu_path_id(整数):菜单路径的 ID。menu_path(字符串):菜单路径的名称。queue_duration(整数):队列片段的时长。started_at(字符串,日期时间):开始时间戳。transfer_cold(布尔值):通话是否进行了冷转接。transfer(布尔值):是否发生了转移。transfer_id(整数或 null):转移作业的 ID。service_level_abandon_time_threshold(整数):服务等级放弃的时间阈值。service_level_event(字符串):服务等级事件状态(“excluded”“in_sla”“not_in_sla”)。service_level_target_percent(整数):服务等级合规性的目标百分比。service_level_target_time(整数):服务等级合规性的目标时间。
虚拟客服转人工客服
escalations(数组):每个条目都表示从虚拟客服升级到人工客服。id(整数):上报问题的唯一标识符。status(字符串):上报问题的当前状态。可能的值:escalating、"escalated"、"canceled"、"deflecting"和"deflected"。reason(字符串):会话升级的原因。created_at(字符串,日期时间):上报开始的时间。escalated_at(字符串、日期时间或 null):上报完成的时间。from_virtual_agent(对象或 null):上报通话的虚拟客服。与定义中的virtual_agent对象具有相同的形状。to_agent(对象或 null):通话上报到的人工客服。与定义中的agent对象具有相同的形状。from_menu_path/to_menu_path(对象或 null):上报前后的菜单路径。
虚拟客服成功化解的升级问题
virtual_agent_deflected_escalations(数组):虚拟代理转移的升级的详细信息。id(整数):唯一标识符。deflection(字符串):为已转移的升级记录的转移类型。此词汇表比定义:转接中介绍的通话级转接字段要小,仅涵盖虚拟客服升级可以记录的结果。可能的值:超容量:
over_cap、over_cap_phone、over_cap_voicemail、over_cap_callback、over_cap_message、over_cap_queue、over_cap_sip、over_cap_extension、over_cap_phone_with_extension非工作时间:
after_hours、after_hours_phone、after_hours_voicemail、after_hours_message、after_hours_message_only、after_hours_queue、after_hours_sip、after_hours_extension、after_hours_phone_with_extension临时重定向:
temp_redirection、temp_redirection_phone、temp_redirection_voicemail、temp_redirection_message、temp_redirection_queue、temp_redirection_sip、temp_redirection_extension、temp_redirection_phone_with_extensionIVR 预会话:
ivr_presession_deflection由虚拟客服发起:
va_redirection_phone、va_redirection_sip、va_third_party_phone、va_third_party_sip
如果通话在达到偏转结果之前结束,则会记录不带后缀的
over_cap、after_hours和temp_redirection值。escalation_id(整数):上报事件标识符。escalation_reason(字符串):上报原因。escalated_at(字符串,日期时间):上报时间戳。menu_path_id(整数):菜单路径 ID。menu_path(字符串):菜单路径。lang(字符串):语言。virtual_agent(对象):虚拟代理详细信息。请参阅定义。
虚拟客服处理时长
virtual_agent_handle_durations(数组):虚拟客服人员处理通话的时间段。id(整数):唯一标识符。virtual_agent(对象):虚拟代理详细信息。请参阅定义。call_duration(整数):片段时长。escalation_reason(字符串):上报原因。finish_reason(字符串):互动结束的原因。sentiment(整数):消费者情绪。response_count(整数):虚拟客服响应次数。fallback_response_count(整数):后备响应计数。initiated_by(字符串):虚拟客服会话的启动方式。menu_path_id(整数):菜单路径 ID。menu_path(字符串):菜单路径。lang(字符串):语言。transfer(布尔值):通话是否已转接。transfer_id(整数或 null):转移事件标识符。started_at(字符串,日期时间):开始时间戳。ended_at(字符串、日期时间或 null):结束时间戳。
消费者处理时长
consumer_handle_durations(数组):消费者通话时长。id(整数):唯一标识符。call_duration(整数):消费者细分时长。hold_duration(整数或 null):消费者保留时长。started_at(字符串,日期时间):开始时间戳。ended_at(字符串、日期时间):结束时间戳。
消费者活动时长
consumer_event_durations(数组):消费者通话事件(例如 CSAT 或付款)的详细信息。id(整数):唯一标识符。duration(整数):事件时长。type(字符串):事件类型。event(字符串):事件结果。menu_path_id(整数):菜单路径 ID。menu_path(字符串):菜单路径。lang(字符串):语言。started_at(字符串,日期时间):开始时间戳。ended_at(字符串、日期时间):结束时间戳。
消费者在菜单中的停留时长
consumer_in_menu_durations(数组):消费者在菜单中的互动时长。id(整数):唯一标识符。duration(整数):在菜单中的时长。event(字符串):菜单互动结果。menu_path_id(整数):菜单路径 ID。menu_path(字符串):菜单路径。lang(字符串):语言。started_at(字符串,日期时间):开始时间戳。ended_at(字符串、日期时间):结束时间戳。
参与者
participants(数组):通话中每位参与者(例如消费者、客服人员或虚拟客服人员)的相关信息。id(整数):参与者的唯一标识符。type(字符串):参与者类型(“end_user”“agent”“virtual_agent”等)。entry_type(字符串):参与者进入通话的方式。user_id(整数或 null):如果参与者是客服人员,则为用户 ID。end_user_id(整数或 null):如果参与者是消费者,则为消费者标识符。virtual_agent_id(整数或 null):如果参与者是虚拟客服,则为虚拟客服 ID。virtual_agent_params(对象;仅在您配置要包含的虚拟客服自定义元数据时存在):虚拟客服使用的自定义元数据。status(字符串):参与者的状态(“waiting”“connected”“finished”等)。fail_reason(字符串):失败原因(如有)。connected_at(字符串、日期时间或 null):参与者连接时的时间戳。phone_number(字符串;仅针对消费者参与者):参与者的电话号码。call_id(整数):通话的标识符。call_duration(整数或 null):参与者的通话时长。hold_duration(整数或 null):参与者的保持时长。ended_at(字符串、日期时间或 null):参与者结束参与的时间戳。adapter_fail_code(整数或 null):与失败原因对应的数字代码。adapter_fail_message(字符串或 null):fail_reason的人类可读说明(如果存在)。agent_assist(对象;仅在您配置 Agent Assist 时出现在代理参与者上):此参与者的有效 Agent Assist 设置。virtual_agent(对象;仅存在于虚拟客服参与者中):作为此参与者的虚拟客服的详细信息 - 与顶级agent_info和virtual_agent_params不同。caller_id(字符串;仅当您在账号中启用 SIP 标头来电显示时才会显示,并且仅在消费者参与者中显示):CCAI Platform 从此消费者参与者的入站 SIP 标头中提取的来电显示。sip_headers(对象或 null):与此参与者关联的 SIP 标头。始终存在于载荷中;当 CCAI 平台未捕获标头时,该值为 null。location(字符串或 null;仅存在于代理参与者中):代理的位置。location_id(整数或 null;仅在代理参与者中存在):位置 ID。email(字符串、电子邮件;仅存在于智能体参与者中):智能体的邮箱。first_name(字符串或 null;仅在客服人员参与者中存在):客服人员的名字。last_name(字符串或 null;仅在代理参与者中存在):代理的姓氏。middle_name(字符串或 null;仅在代理参与者中存在):代理的中间名。teams(数组;仅存在于客服人员参与者中):客服人员所属团队的{ id, name }对象数组。
录制内容
recordings(数组):有关录制通话音频的信息。id(整数):录音的唯一标识符。call_id(整数):通话标识符。conference_sid(字符串或 null):VoIP 提供商的通话标识符。duration(整数或 null):录制时长。recording_type(字符串):录制类型。redaction_times(数组):经过隐去处理的时间段。start(字符串,日期时间):遮盖间隔开始的时间。end(字符串,日期时间):遮盖间隔结束的时间。duration(整数):遮盖时长(以秒为单位)。start_agent_id(整数或 null):启动隐去操作的客服人员。end_agent_id(整数或 null):结束隐去操作的客服人员。
started_at(字符串、日期时间):录制开始时间戳。
post_processed_recordings(数组;仅在您为账号启用后处理录音时显示):后处理生成的录音(例如格式转换或隐去)。id(整数):后处理录音的唯一标识符。call_id(整数):通话标识符。duration(整数):录制时长(以秒为单位)。started_at(字符串、日期时间):录制开始时间戳。recording_file_name(字符串):经过后期处理的音频资源的文件名。recording_url(字符串,URI):后处理音频文件的网址。agent_id(整数或字符串):与细分关联的客服人员的标识符。virtual_agent_id(整数或字符串):与细分关联的虚拟客服人员的标识符(如有)。conversation_id(字符串):将此录音与其对话记录相关联的标识符。
segments(数组;仅当您在账号中启用后处理数据分析录制内容时才会显示):系统为下游数据分析流水线生成的每个参与者的音频(和可选屏幕录制)片段。id(整数):细分受众群的唯一标识符。call_id(整数):通话标识符。duration(整数):片段时长(以秒为单位)。started_at(字符串,日期时间):片段开始时间戳。audio_file_name(字符串):片段音频素材资源的文件名。audio_url(字符串、URI):片段音频文件的网址。agent_id(整数或字符串):与细分关联的客服人员的标识符。virtual_agent_id(整数或字符串):与细分关联的虚拟客服人员的标识符(如有)。participant_id(整数或字符串):片段所属参与者的标识符。conversation_id(字符串):将此片段与其对话记录相关联的标识符。screen_recording_url(字符串、URI 或 null):匹配的屏幕录制资源的网址。仅当您在账号中启用屏幕录制功能时才会显示。screen_recording_file_name(字符串或 null):屏幕录制的文件名。在与screen_recording_url相同的条件下呈现。
优惠活动
offer_type(字符串或 null):CCAI Platform 如何向客服人员提供通话。offer_events(数组):CCAI 平台向客服人员提供通话时的事件。casting_time(字符串,日期时间):CCAI 平台提供通话的时间。group(字符串):CCAI 平台向其提供通话的群组。
其他详情
answer_type(字符串或 null):通话的解决方式(“手动”或“自动”)。outbound_number(字符串或 null):使用的去电号码。wait_time_sms(数组;仅当此通话中发生等待时间短信互动时才会显示):CCAI 平台向消费者发送的有关预计等待时间的短信互动。每个条目都包含:transfer_id(整数或 null):转移事件标识符(如果与转移相关联)。status(字符串):短信的状态。可能的值:not_triggered、triggered、triggered_allowed、triggered_denied、triggered_no_selection、triggered_sent、triggered_failed。received(布尔值):消费者是否收到了短信。
in_call_sms(数组;仅当此通话期间发生过通话中短信互动时才会显示):通话期间的短信互动。每个条目都包含:transfer_id(整数或 null):转移事件标识符(如果与转移相关联)。preset_sent(布尔值):CCAI Platform 是否发送了预设消息。custom_sent(布尔值):代理是否发送了自定义(自由文本)消息。received(布尔值):CCAI 平台是否收到了来自消费者的短信。
dispositions(数组;仅在您为账号启用收尾代码或备注时显示):客服人员记录的收尾代码和备注。每个条目都包含根据您的收尾配置动态呈现的字段:user_id(整数):代理标识符。transfer_id(整数或 null):转移事件标识符(如果在转移后记录)。participant_id(整数):参与者标识符。note(字符串):自由文本形式的客服人员备注。original_note(字符串):笔记的原始(修改前)版本。code(字符串):处置代号。ujet_code_id(整数或空字符串):处置代码的 CCAI 平台 ID - 代码的稳定键(代码显示名称可以更改)。如果不可用,则为空字符串。list(字符串):代码所属列表的名称。list_path(字符串):代码列表的路径,以斜杠分隔。ujet_list_id(整数或空字符串):处置代码所属列表的 CCAI Platform ID - 列表的稳定键。如果不可用,则为空字符串。custom_list_id(字符串或整数):客户定义的列表标识符(如果已映射)。custom_code_id(字符串或整数):客户定义的代码标识符(如果已映射)。
email(字符串、电子邮件地址或 null):消费者的电子邮件地址。feedback(字符串或 null):消费者反馈。smart_action_text(字符串或 null):所采取的任何智能操作的文本。custom_data_secured(对象或 null):自定义的安全签名数据。custom_data_not_secured(对象或 null):自定义、非安全签名的数据。in_queue_wait_time_va(数组;仅当您为账号中的虚拟客服启用队列等待时间跟踪,并且至少发生了一次保留虚拟客服升级时,才会显示):在 CCAI 平台为客户保留虚拟客服后,客户在队列中等待的时间间隔。每个条目都包含:start(字符串,日期时间):队列等待开始的时间。end(字符串、日期时间或 null):队列等待结束的时间;如果未完成,则为 null。duration(整数或 null):等待时长(以秒为单位);当end为 null 时,此值为 null。
auto_session_summaries(数组;仅当您在账号中启用对话摘要功能且 CCAI 平台成功生成摘要时才会显示):CCAI 平台保存到 CRM 记录中的 AI 生成的会话摘要。每个条目都包含:user_id(整数):与摘要关联的代理参与者的标识符。participant_id(整数):参与者标识符。session_summary(字符串):摘要文本。session_summary_sections(数组或对象):结构化部分中的摘要(如果有)。
sip_headers(对象;仅当您在账号中启用 SIP 标头捕获并将其配置为包含在会话元数据中时才会显示):CCAI Platform 为通话捕获的入站 SIP 标头。键和值反映了从上游电话服务提供商处收到的 SIP 标头。
定义
此部分仅定义每个子架构一次。引用子架构的属性组会链接到这些定义,而不是以内嵌方式重新定义其形状。
menu_path(对象)
描述来电经过的分层菜单路径。如需查看其字段的完整列表,请参阅菜单导航。
引用自:顶级 menu_path 字段;每个 transfers[].from_menu_path 和 transfers[].to_menu_path;每个 escalations[].from_menu_path 和 escalations[].to_menu_path;每个 deflection_details[].from_menu_path 和 deflection_details[].to_menu_path。
agent(对象)
描述人工客服。此对象是顶级 agent_info 鉴别器的两个变体之一(请参阅架构根)。如需查看其字段的完整列表,请参阅客服人员和虚拟客服人员信息。
引用自:人工客服上次处理通话时的 agent_info 字段;每个 transfers[].from_agent 和 transfers[].to_agent;每个 escalations[].to_agent。
virtual_agent(对象)
描述虚拟客服。此对象是顶级 agent_info 鉴别器的两个变体之一(请参阅架构根)。如需查看其字段的完整列表,请参阅代理和虚拟客服。
引用自:虚拟客服上次处理通话时的 agent_info 字段;每个 transfers[].from_virtual_agent 和 transfers[].to_virtual_agent;每个 escalations[].from_virtual_agent;每个 virtual_agent_handle_durations[].virtual_agent;每个 virtual_agent_deflected_escalations[].virtual_agent。
deflection(字符串,枚举)
通话或通话片段的偏转状态。值遵循 <trigger>_<destination> 命名模式,其中前缀标识触发偏转的条件(例如,容量过剩、下班后或临时重定向),后缀标识目的地或处理方式(例如,语音信箱、队列、手机或消息)。
常见目标后缀:
_phone- 将来电转接到外部手机号码。_voicemail- 将来电转到语音信箱。_message- 播放信息类消息。_message_only- 播放消息并结束通话,不进行进一步转接。_callback- 提出预约回电。_wait- 保持来电等待。_queue- 将来电转入其他队列。_sip- 将通话转接到 SIP 目的地。_extension- 将通话转接到分机。_phone_with_extension- 将通话路由到具有分机号的手机目的地。
允许的值(按触发器系列分组):
无偏转:
no_deflection、deflecting。超容量 - 队列超出其容量阈值时:
over_cap_phone、over_cap_voicemail、over_cap_callback、over_cap_wait、over_cap_queue、over_cap_message、over_cap_ewt_only、over_cap_sip、over_cap_extension、over_cap_phone_with_extension。放弃转移 - 转移或通话在待处理转移解决之前结束:
deflection_abandoned。非营业时间 - 来电时间不在菜单配置的营业时间内:
after_hours_voicemail、after_hours_phone、after_hours_message_only、after_hours_queue、after_hours_message、after_hours_sip、after_hours_extension、after_hours_phone_with_extension。临时重定向 - 在菜单上配置临时重定向时:
temp_redirection_phone、temp_redirection_message、temp_redirection_voicemail、temp_redirection_queue、temp_redirection_sip、temp_redirection_extension、temp_redirection_phone_with_extension。IVR 预会话:
ivr_presession_deflection。由虚拟客服发起 - 当虚拟客服重定向或转接通话时:
va_redirection_phone、va_redirection_sip、va_third_party_phone、va_third_party_sip。非工作时间内部通话:
internal_call_after_hours_message、internal_call_after_hours_queue、internal_call_after_hours_phone、internal_call_after_hours_extension、internal_call_after_hours_sip、internal_call_after_hours_voicemail。内部调用容量过剩:
internal_call_over_capacity_message、internal_call_over_capacity_queue、internal_call_over_capacity_phone、internal_call_over_capacity_extension、internal_call_over_capacity_sip、internal_call_over_capacity_voicemail、internal_call_over_capacity_wait。内部通话自动重定向:
internal_call_automatic_redirection_message、internal_call_automatic_redirection_queue、internal_call_automatic_redirection_phone、internal_call_automatic_redirection_extension、internal_call_automatic_redirection_sip、internal_call_automatic_redirection_voicemail。非营业时间来电转接:
call_transfer_after_hours_message、call_transfer_after_hours_queue、call_transfer_after_hours_phone、call_transfer_after_hours_extension、call_transfer_after_hours_sip、call_transfer_after_hours_voicemail。来电转接超负荷:
call_transfer_over_capacity_message、call_transfer_over_capacity_queue、call_transfer_over_capacity_phone、call_transfer_over_capacity_extension、call_transfer_over_capacity_sip、call_transfer_over_capacity_voicemail、call_transfer_over_capacity_wait。通话转接自动重定向:
call_transfer_automatic_redirection_message、call_transfer_automatic_redirection_queue、call_transfer_automatic_redirection_phone、call_transfer_automatic_redirection_extension、call_transfer_automatic_redirection_sip、call_transfer_automatic_redirection_voicemail。紧急关停 - 管理员触发紧急关停时:
emergency_shutdown、emergency_shutdown_message、emergency_shutdown_after_hours、emergency_shutdown_over_capacity。动态通话转接 (DCR):
dcr_transferred、dcr_missed、dcr_redirected、dcr_finished。
引用自:每个 deflection_details[].deflection,它们会完整使用此词汇表。另外两个字段分别使用其子集:
顶级
deflection字段使用除over_cap_ewt_only和temp_redirection_url之外的所有值。每个
transfers[].deflection都使用一个较小的传输范围子集:no_deflection、deflecting、deflection_abandoned、10 个over_cap_*值、8 个after_hours_*值、7 个temp_redirection_*值(temp_redirection_url除外)、ivr_presession_deflection、va_redirection_phone和va_redirection_sip。internal_call_*、call_transfer_*、emergency_shutdown_*、dcr_*和va_third_party_*系列绝不会出现在转移作业中。
版本控制和弃用
通话会话元数据架构支持向后兼容的演变。CCAI Platform 可能会随时添加新的字段和数组。集成应忽略无法识别的键,以确保功能继续正常运行。本部分中的字段已弃用、属于旧版或已被软取代。为了向后兼容,这些字段仍会保留在载荷中,但新的集成必须遵循每个字段的指南。
已弃用的字段
voip_provider(字符串)- 已弃用。始终返回字面量字符串“deprecated”。CCAI Platform 不再通过此文档向集成显示提供商信息。没有替换字段;如果您的集成需要识别上游电话服务提供商,请与您的客户支持团队联系。
旧版重复项
session_type(字符串)-call_type的旧版别名。始终返回与call_type相同的值,并使用相同的旧版枚举词汇。CCAI Platform 保留此字段,以便与以session_type为键的集成向后兼容。新集成应直接解析call_type,或者(为了更精细地进行入站区分)解析session_type_v2(请参阅下文的词汇演变)。
词汇演变
call_type 和 session_type_v2 使用两种不同的词汇来描述相同的基础调用类型。CCAI Platform 会在每条记录中发出这两个字段;它们彼此不重复:
call_type使用旧版枚举词汇表。Voice Inbound (App)和Voice Inbound (IVR via App)等值在单个标签下涵盖了所有入站移动和应用内 SDK 来源。call_type未被弃用。CCAI Platform 将继续发出此字段,但其词汇表不会获得新的精细值。session_type_v2使用当前的枚举词汇。它为具有 v2 专属值的调用类型引入了更精细的入站区别,例如Voice Inbound (Mobile)和Voice Inbound (IVR via Mobile)。对于没有 v2 专用值的调用类型,session_type_v2会返回与call_type相同的字符串。
新集成应解析 session_type_v2。每个字段的值均列在核心信息中。
等待时间字段命名法
通话会话元数据文档会在两个范围内报告队列等待时间,并使用两个字段名称:
通话总时长 - 顶层
wait_duration字段包含消费者在整个通话过程中在队列中花费的总时间。按片段 - 顶级
queue_durations数组(队列时长)中的每个条目都有自己的queue_duration字段,用于保存该单个队列片段的排队时间。
这两个名称指的是不同范围内的同一种衡量方式,即在队列中花费的时间。调用总数 wait_duration 反映了使用方的总体队列时间,而每个片段的 queue_duration 值描述了每个队列片段。此文档不会发出单独的顶级 queue_duration 字段;每个片段的值仅在 queue_durations 内可用。