Customer Experience Insights 推出了两项基于规则的功能,以增强对话处理能力:
- 自动添加标签规则:根据定义的条件自动为对话添加键值标签。
- 关联规则:定义如何将相关的对话片段关联在一起,以形成完整的客户互动视图。
这两种规则类型都使用通用表达式语言 (CEL) 来提供灵活且动态的规则定义。CEL 是自动标记和相关性规则的基础。您可以使用 API 或 CX Insights 控制台配置这些规则。
自动添加标签规则
在导入期间,自动标记规则会自动使用自定义键值对标签丰富对话。这些标签可改进过滤、分类以及与其他分析和工作流程的集成。您可以使用自动添加标签规则执行以下操作:
- 按主题、客户类型、产品或结果对对话进行分类。
- 从对话元数据或 Dialogflow 参数(例如
callId、isAuthenticated和intent名称)中提取关键数据点,并将其提取到标签中。 - 标记需要特别注意的对话,例如
high_escalation_risk。
标签
每条自动加标签规则都定义了一个标签,并包含按顺序排列的条件消息。每个标签都使用以下 CEL 表达式:
- 条件:评估对话是 true 还是 false。空条件的默认值为 true。
- 值:如果条件为 true,则生成标签的字符串值。
第一个匹配的 LabelingCondition 决定了标签的值。
配置规则
如需使用 API 或 CX Insights 控制台配置自动标记规则,请按以下步骤操作。
API
使用
Create操作配置AutoLabelingRule。 请求正文示例:{ "displayName": "$DISPLAY_NAME", "labelKey": "$UNIQUE_KEY_NAME", "labelKeyType": LABEL_KEY_TYPE_CUSTOM "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call'" }, { "condition": "conversation.agent_id == "agent_007"", "value": "'special_agent'" } ], "active": true }如果请求保存在
auto_labeling_rule.json中,则使用 Curl 命令:curl-X POST
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @auto_labeling_rule.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules?auto_labeling_rule_id=$RULE_ID"按以下格式为规则命名:
projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]。[auto_labeling_rule]ID 是自定义规则的label_key。
您还可以将以下任一操作与自动标记规则搭配使用。每个对话的自动标记规则最多可包含 100 个标签,每个条目最多可包含 256 个字符。
Get。curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID"List。curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules"Update。 根据要更新的字段,指定update_mask。curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_payload.json \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID?update_mask=displayName,active"TestAutoLabelingRule。您的载荷应包含要测试的规则以及将用于评估该规则的对话示例。示例:{ "conversation": { "agentId": "agent_007", "turnCount": 15, "duration": "75s" /# Add other conversation fields relevant to the rule }, "autoLabelingRule": { "displayName": "Test Rule", "labelKey": "test_category", "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call_test'" } ], "active": true } }
控制台
- 前往 CX Insights 控制台,登录并选择您的项目。 CX Insights 控制台
- 依次点击设置图标 设置 > 自动添加标签规则。
- 使用 Monaco 编辑器输入 CEL 表达式。
- 点击保存。
CEL 示例
- 按代理 ID 标记:
label_key: "agent_category" conditions { condition: "conversation.agent_id == '007'" value: "'special_agent'" } conditions { condition: "conversation.agent_id.startsWith('team_a')" value: "'tier_1_support'" } conditions { condition: "" // Default value: "'standard'" } - 标记负面情绪:
label_key: "needs_review" conditions { // This example assumes sentiment scores are present in the conversation's latest_analysis condition: "has(conversation.latest_analysis.analysis_result.call_analysis_metadata.sentiments) && conversation.latest_analysis. analysis_result.call_analysis_metadata.sentiments.exists(s, s. sentiment_data.score < -0.5)" value: "'true'" } - 提取 Dialogflow 参数:
label_key: "df_session_outcome" conditions { condition: "" // Always try to extract value: "conversation.runtime_annotations.map(a, a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters).filter(p, has(p.outcome)).map(p, p.outcome).first_element_or_empty_string()" }
在分析规则过滤条件中使用自动标签
自动添加标签规则可以应用标签,以控制主要分析规则处理哪些对话。分析规则中的 conversation_filter 字段可以使用标签映射来引用标签。
示例:
// AnalysisRule to run detailed analysis on conversations labeled 'needs_review: true'
display_name: "Detailed Analysis for Reviewed Conversations"
conversation_filter: "labels.needs_review = \"true\""
annotator_selector: {
run_summarization_annotator: true
// ... other annotators
}
analysis_percentage: 1.0
active: true
相关性规则
相关性规则用于定义客户体验数据分析如何识别和关联相关的对话片段。对话片段表示摄入的对话中的单个部分,例如 Dialogflow 会话或单次代理互动。完整对话是指由一个或多个片段组成的完整关联对话。默认情况下,所有新对话都以段落形式开始。关联规则可帮助您创建完整的客户互动历史记录,即使互动涉及多位客服人员、多个渠道或多个会话也是如此。
关联规则可为客户服务对话分析带来以下好处。
- 统一文字记录:查看按时间顺序排列的单个文字记录,其中包含来自多个来源的发言,例如聊天机器人会话和后续的人工客服通话。
- 跨渠道分析:关联不同渠道(例如聊天和语音)中的互动,以分析整个对话过程中的情绪趋势和主题进展。
- 指标准确性:计算整个互动的总处理时长或解决率等指标,而不是仅计算各个部分。
- 客服人员的上下文:向人工客服提供之前所有自动交互的完整历史记录。
关联流程
当相关性规则与多个对话片段匹配时,CX Insights 会将这些片段归为一组。然后,CX Insights 会创建一个新条目来表示完整对话,并为其分配唯一的对话 ID。CX Insights 会将完整对话的相关 ID 设置为关联各个细分的通用键,并将其类型设置为 FULL。CX Insights 会将原始细分的关联 ID 设置为通用键,并将它们的类型设置为 SEGMENT。如果某个细分与任何其他细分都不相关,CX Insights 会为其提供 SEGMENT 和 FULL 两种相关性类型。
链接消息
关联规则可关联来自不同来源和渠道的相关对话片段。CX Insights 会按照以下步骤关联对话片段:
- 按联接键分组:CX Insights 会评估 CEL 联接键表达式,以从对话中提取通用标识符,例如
callId。共享相同联接键的对话是潜在的关联候选对象。联接键必须具体明确。如果某个键与 20 个以上的对话匹配,系统可能会拒绝相关联,以防止出现性能问题。 - 使用限制条件进行优化:CEL 限制条件表达式是一种可选的布尔值检查,用于在候选对象之间进行成对评估。此表达式有助于确认共享同一键的两个细分是否应实际关联。此检查是双向的,因此可能包括与细分 A 关联的细分 B,以及与细分 B 关联的细分 A。
- 传递性链接:链接具有传递性。如果对话 A 关联到对话 B,而对话 B 关联到对话 C,则对话 A、B 和 C 会合并为一个
FULL对话群组。
合并的对话最多可以包含 5 个片段。
配置关联规则
您可以使用 API 或 CX Insights 控制台配置关联规则。
API
- 运行以下代码以设置
CorrelationConfig。curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_corr_config.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig?update_mask=fullConversationConfig" - 为规则命名,格式如下:
projects/{project-id}/locations/{location-id}/correlationConfig。 - 在
Conversation.CorrelationInfo字段中查看结果。
您可以将以下任何操作与关联规则搭配使用。
GetCorrelationConfig。curl-X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig"UpdateCorrelationConfig。如果示例正文请求保存在updated_corr_config.json中,则如下所示:{ "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.labels.uui", "active": true } ] } }TestCorrelationConfig。除了要测试的相关性规则之外,您的载荷还应指定示例对话详细信息。示例:{ "correlationConfig": { "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.agent_id", "active": true } ] } }, "filter": "agent_id="agent_007"", "maxSampleCount": 100 }
控制台
- 前往 CX Insights 控制台,登录并选择您的项目。 CX Insights 控制台
- 依次点击设置设置 > 关联配置。
- 点击保存。
管理员可以在 CorrelationConfig 中定义和管理 CorrelationRule 条目。您可以通过选择对话来测试关联规则。测试结果会添加到数据集以供查看。
CEL 示例
来自 Dialogflow 的 callId 链接:
join_key_expression:
// Extracts 'callId' from Dialogflow parameters, falls back to conversation name.
default(conversation.runtime_annotations.map(a,
a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters)
.filter(p, has(p.callId))
.map(p, p.callId)
.first_element_or_empty_string(), conversation.name)
细分和对话级分析
借助 CX Insights,您可以从不同的粒度分析对话,包括针对所有功能的细分分析和对话分析。
- 前往 CX Insights 控制台,登录并选择您的项目。 CX Insights 控制台
- 依次点击设置设置,然后选择分析粒度。您的选择将应用于未来的分析,并且可以追溯应用,但可能会产生额外的费用。
- 点击保存。
控制台中的对话中心和质量 AI 页面会比较对话级数据和细分级数据,并指明关联对话的多细分结构。
过滤指标和分析
如需在 API 或控制台中指定分析级别,请使用以下过滤条件。
细分级视图
此视图旨在分析互动的特定部分,例如单个代理的对话轮次。使用 correlation_info.correlation_types:SEGMENT 参数过滤细分级别视图。
完整对话视图
您可以使用此视图分析完整的客户转化历程,无论该历程是由关联对话还是独立对话组成。使用 correlation_info.correlation_types:FULL 参数过滤完整对话视图。