

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon Connect Contact Lens 中使用对话分析功能来分析对话
<a name="analyze-conversations"></a>

通过Contact Lens对话分析，您可以使用自然语言处理来分析客户与客服人员或客户之间的对话以及对话式人工智能，包括语音、聊天和电子邮件。对话分析可执行情绪分析、检测问题并使您能够自动对联系进行分类。

**语音分析支持**
+ **实时通话分析**：用于在通话进行时更主动地检测和解决客户问题。例如，当客户因为座席无法解决复杂的问题而感到沮丧时，它可以进行[分析并提醒](add-rules-for-alerts.md)您。这样有助于您提供更直接的帮助。
+ **电话后分析**：用于了解客户对话、自助服务互动和座席合规性的趋势。这可以帮助你找出改善对话式 AI 的机会，并在通话结束后指导代理。

**聊天分析支持**
+ **实时聊天分析**：与实时通话分析一样，您可以在聊天过程中更主动地检测和解决客户问题，并[接收警报](add-rules-for-alerts-chat.md)。例如，当客户对聊天联系的情绪变为负面时，经理可以收到实时电子邮件提醒，这样他们就可以加入正在进行的联系，并帮助解决客户问题。
+ **聊天后分析**：用于了解客户与自动程序和座席对话的趋势。它提供特定于聊天互动的信息，例如座席问候时间、座席和客户响应时间。响应时间和情绪可帮助您调查客户与自动程序和座席互动的体验，并确定需要改进的领域。
+ 每条已处理聊天消息的收费方式相同。虽然并非所有消息都应用了所有功能（例如，摘要生成只适用于 `text/plain` 消息），但只要联系中启用了 Contact Lens 对话分析功能，则此消息会被计费。有关定价的更多信息，请参阅 [Amazon Connect 定价](https://aws.amazon.com/connect/pricing/)。

**电子邮件分析支持**
+ **电子邮件分析**：用于分析客户和代理之间的电子邮件对话。 Contact Lens自动对电子邮件联系人进行分类，编辑电子邮件记录中的敏感数据，并生成联系人摘要。这可以帮助您了解电子邮件对话趋势，并确保整个电子邮件渠道的合规性。
+ 由于电子邮件联系人是异步的，一次只能有一个参与者采取行动，因此适用于语音和聊天的实时和联系后的区别不适用于电子邮件。当收到或发送电子邮件联系人[Amazon Connect 中的流程块：设置记录、分析和处理行为](set-recording-analytics-processing-behavior.md)时，电子邮件分析将在使用后立即启动。

您可以通过加密转录和录音中的敏感数据（例如姓名、地址和信用卡信息）来保护客户的隐私。

## 通话的联系详细信息页面示例
<a name="sample-contactdetails-call"></a>

下图显示了语音通话的对话分析。请注意，它包括**通话时间**指标。

![\[包含通话时间指标的联系详细信息页面示例。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-contactdetails-call1b.png)


1. **客户情绪趋势**：此图表显示了客户情绪如何随着联系的进展而变化。有关更多信息，请参阅 [调查情绪得分](sentiment-scores.md)。

1. **客户情绪**：此图表显示了整个通话期间的客户情绪的分布情况。计算方法是统计客户有积极、中立和消极情绪的对话回合或聊天消息总数。

1. **通话时间**：此图表显示了整个通话期间通话时间和非通话时间的分布情况。通话时间进一步分为座席通话时间和客户通话时间。

下图显示了语音通话的**联系详细信息**页面上的下一部分内容：音频分析和转录。请注意，个人身份信息 (PII) 已[从转录中加密](sensitive-data-redaction.md)。

![\[联系的音频分析和转录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-contactdetails-call2b.png)


## 实时聊天分析的联系详细信息页面示例
<a name="sample-contactdetails-chat"></a>

下图显示了实时聊天的对话分析。请注意，它包括主要亮点和客户情绪。

![\[包含实时聊天的对话分析的联系详细信息页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-realtime-chat.png)


## 聊天后分析的联系详细信息页面示例
<a name="sample-contactdetails-chat"></a>

下图显示了聊天后分析。请注意，它包括聊天响应指标，例如**座席问候时间**（从座席加入聊天到他们发送第一个响应的时间）、**客户响应时间**和**座席响应时间**。

![\[包含聊天的摘要和对话分析的联系详细信息页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-contactdetails-chat1b.png)


下图显示了聊天的**联系详细信息**页面上的下一部分内容：互动分析和转录。请注意，您可以调查客户与自动程序和座席的互动情况。

![\[聊天的联系详细信息页面、互动分析和转录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-contactdetails-chat2b.png)


## 电子邮件分析的联系人详细信息页面示例
<a name="sample-contactdetails-email"></a>

下图显示了电子邮件联系人的对话分析。电子邮件分析包括分类、敏感数据编辑和联系摘要。由于电子邮件联系人是异步的，因此没有实时分析或情绪分数。

![\[包含电子邮件联系人对话分析的联系人详细信息页面示例。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-contactdetails-email.png)


# 在 Amazon Connect Contact Lens 中启用对话分析
<a name="enable-analytics"></a>

只需几步即可启用 Contact Lens 对话分析：

1. 在您的 Amazon Connect 实例上启用 Contact Lens。

1. 在流程中添加一个[设置录音和分析行为](set-recording-behavior.md)区块，然后将其配置为启用语音、聊天、电子邮件或多种渠道组合的对话分析。

下图显示了为通话录音和语音分析配置的模块。**通话录音**选项设置为**座席和客户**。在 “**分析**” 部分中，为自动交互和代理互动选择了选项。

![\[设置录音和分析行为数据块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/set-recording-and-analytics-behavior.png)


本主题中的步骤描述了为通话、聊天或电子邮件启用对话分析的步骤。

**Topics**
+ [需要了解的重要事项](#important-set-behaviorblock)
+ [为您的 Amazon Connect 实例启用 Contact Lens](#enable-cl)
+ [启用通话录音和语音分析](#enable-callrecording-speechanalytics)
+ [启用聊天分析](#enable-chatanalytics)
+ [启用电子邮件分析](#enable-emailanalytics)
+ [启用加密](#enable-redaction)
+ [查看加密的准确性](#review-sensitive-data-redaction)
+ [禁用情绪分析](#disable-sentiment-analysis-voice-and-chat)
+ [根据客户的语言动态启用编辑功能](#dynamically-enable-analytics-contact-flow)
+ [为主要亮点设计流](#call-summarization-agent)
+ [如果流数据块无法启用对话分析怎么办？](#troubleshoot-contactlens-enablement)
+ [多方通话](#multiparty-calls-contactlens)

## 需要了解的重要事项
<a name="important-set-behaviorblock"></a>
+ **转接联系后收集数据**：如果要在将联系转接到其他座席或队列后继续使用对话分析收集数据，则需要为流添加另一个启用了**启用分析**功能的[设置录音和分析行为](set-recording-behavior.md)数据块。这是因为转接会生成第二个联系 ID 和联系记录。对话分析也需要在联系记录上运行。
**注意**  
对于[queue-to-queue转移](queue-to-queue-transfer.md)，会话分析的配置信息会复制到已转移的联系人。
+ 当您选择情绪分析支持的语言，并在[设置录音和分析行为](set-recording-behavior.md)区块中选择 “**启用Contact Lens语音分析**”、“**启用聊天分析**” 或 “**启用电子邮件分析**” 时，默认情况下会启用情绪分析。您可以选择[禁用情绪分析](#disable-sentiment-analysis-voice-and-chat)。
+ 在流中放置[设置录音和分析行为](set-recording-behavior.md)数据块的位置会影响座席在主要亮点方面的体验。有关更多信息，请参阅 [为主要亮点设计流](#call-summarization-agent)。

## 为您的 Amazon Connect 实例启用 Contact Lens
<a name="enable-cl"></a>

在启用对话分析之前，首先需要为您的实例启用 Contact Lens。

1. 打开 Amazon Connect 控制台，网址为[https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)。

1. 在“实例”页面上，选择实例别名。实例别名也是您的**实例名称**，该名称显示在您的 Amazon Connect URL 中。下图显示了 **Amazon Connect 虚拟联系中心实例**页面，其中，实例别名周围有一个方框。  
![\[“Amazon Connect 虚拟联络中心实例”页面，实例别名。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/instance.png)

1. 在 Amazon Connect 控制台的导航窗格中，选择**分析工具**，然后选择**启用 Contact Lens**。

1. 选择**保存**。

## 启用通话录音和语音分析
<a name="enable-callrecording-speechanalytics"></a>

为您的实例启用 Contact Lens 后，您就可以将[设置录音和分析行为](set-recording-behavior.md)数据块添加到流中。然后，在配置**设置记录和分析行为**数据块时启用对话分析。

1. 在流设计器中，为流添加 [设置录音和分析行为](set-recording-behavior.md) 数据块。

   有关此数据块可使用的流类型及其他提示的信息，请参阅 [设置录音和分析行为](set-recording-behavior.md)。

1. 打开**设置记录和分析行为**属性页面。在**通话录音**下，选择**打开**、**座席和客户**。

   要使用对话分析进行语音联系，同时需要使用座席和客户的通话录音。

1. 在**分析**下，选择**启用 Contact Lens 对话分析**、**启用语音分析**。

   如果您没有看到此选项，说明还没有为您的实例启用 Amazon Connect Contact Lens。有关启用该功能的说明，请参阅 [为您的 Amazon Connect 实例启用 Contact Lens](#enable-cl)。

1. 选择下列选项之一：

   1. **通话后分析**：Contact Lens 会在对话和联系后续工作（ACW）完成后分析通话录音。此选项可提供最佳转录精度。

   1. **实时分析**：Contact Lens 既在通话期间提供实时见解，也在对话结束和联系后续工作（ACW）完成后提供通话后分析。

      如果您选择此选项，建议您根据客户在通话期间可能说出的关键字和短语来设置提醒。Contact Lens 会实时分析对话以检测指定的关键字或短语，并会提醒主管。从那里，主管可以监听实时通话并向座席提供指导，以帮助他们更快地解决问题。

      有关设置提醒的信息，请参阅[实时向主管发出通话提醒](add-rules-for-alerts.md)。

      如果您的实例是在 2018 年 10 月之前创建的，则需要进行额外的配置才能访问实时通话分析。有关更多信息，请参阅 [服务相关角色权限](connect-slr.md#slr-permissions)。

1. 从[可用语言列表](supported-languages.md#supported-languages-contact-lens)中进行选择。

   有关动态指定语言的说明，请参阅 [根据客户的语言动态启用编辑功能](#dynamically-enable-analytics-contact-flow)。

1. 或者，启用对敏感数据的加密。有关更多信息，请参阅下一节：[启用加密](#enable-redaction)。

1. 选择**保存**。

1. 如果联系将被转移至其他座席或队列，请重复这些步骤，以添加另一个[设置录音和分析行为](set-recording-behavior.md)数据块，并确保启用**启用 Contact Lens 进行对话分析**。

## 启用聊天分析
<a name="enable-chatanalytics"></a>

1. 在[设置录音和分析行为](set-recording-behavior.md)数据块的**分析**下，选择**启用 Contact Lens 对话分析**和**启用聊天分析**。
**注意**  
选择此选项后，您将收到实时分析和聊天后分析。

   如果您没有看到此选项，说明还没有为您的实例启用 Amazon Connect Contact Lens。有关启用该功能的说明，请参阅 [为您的 Amazon Connect 实例启用 Contact Lens](#enable-cl)。

1. 从[可用语言列表](supported-languages.md#supported-languages-contact-lens)中进行选择。

   有关动态选择语言和编辑的说明，请参阅 [根据客户的语言动态启用编辑功能](#dynamically-enable-analytics-contact-flow)。

1. 或者，启用对敏感数据的加密。有关更多信息，请参阅下一节：[启用加密](#enable-redaction)。

1. 选择**保存**。

1. 如果联系将被转移至其他座席或队列，请重复这些步骤，以添加另一个[设置录音和分析行为](set-recording-behavior.md)数据块，并确保启用**启用 Contact Lens 进行对话分析**。

## 启用电子邮件分析
<a name="enable-emailanalytics"></a>

您可以为电子邮件联系人启用Contact Lens对话分析，以自动对电子邮件进行分类、编辑敏感数据并生成联系人摘要。

1. 在流程设计器中，向您的入站电子邮件流添加一个[设置记录、分析和处理行为](set-recording-analytics-processing-behavior.md)屏蔽。在电子邮件联系人被路由到队列或代理之前放置屏蔽。

1. 打开方块属性。在 “**操作**” 中，选择 “**设置记录和分析行为**”。

1. 对于 “**频道**”，选择 “**电子邮件**”。

1. 在 “**分析**” 下，选择 “**启用Contact Lens对话分析**” 和 “**启用电子邮件分析**”。

   如果您没有看到此选项，说明还没有为您的实例启用 Amazon Connect Contact Lens。有关启用该功能的说明，请参阅 [为您的 Amazon Connect 实例启用 Contact Lens](#enable-cl)。

1. 从[可用语言列表](supported-languages.md#supported-languages-contact-lens)中进行选择。

1. 或者，启用对敏感数据的加密。有关更多信息，请参阅 [启用加密](#enable-redaction)。

1. 或者，在**隐形眼镜生成人工智能功能**下，启用**联系人摘要**以生成电子邮件联系人的摘要。

1. 选择**保存**。

1. 如果要将电子邮件联系人转移到其他座席或队列，请重复这些步骤，在启用 “**启用Contact Lens对话分析**” 的情况下再添加一个[设置记录、分析和处理行为](set-recording-analytics-processing-behavior.md)区块。

## 启用对敏感数据的加密
<a name="enable-redaction"></a>

当您配置 [设置录音和分析行为](set-recording-behavior.md) 数据块进行对话分析时，您还可以选择启用流中的敏感数据编辑。启用加密后，可以从以下选项中进行选择：
+ 加密所有个人身份信息 (PII) 数据（支持所有 PII 实体）。
+ 从支持的实体列表中选择要加密的 PII 实体。

如果您接受默认设置，则 Contact Lens 对话分析会加密其所识别到的所有个人身份信息（PII），并在转录中将其替换为 **[PII]**。由于选择了以下选项，因此默认设置如下图所示：**加密敏感数据**、**加密所有 PII数据**和**替换为占位符 PII**。

![\[敏感数据加密的默认设置。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-enable-redaction-default.png)


### 选择要加密的 PII 实体
<a name="select-pii-entities-redact"></a>

在**数据加密**分区下，您可以选择要加密的特定 PII 实体。下图显示**信用卡/借记卡号**将被加密。

![\[“数据加密”分区，您可以加密的实体列表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-select-entities-to-redact.png)


### 选择数据加密替换
<a name="mask-pii"></a>

在**数据加密替换**分区下，您可以选择用作数据加密替换的掩码。例如，在下图中，**替换为占位符 PII** 选项表示 **PII** 将替换相应数据。

![\[将数据替换为 PII 的选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-dataredactionreplacement.png)


有关使用加密的更多信息，请参阅[使用敏感数据加密功能](sensitive-data-redaction.md)。

## 查看敏感数据加密的准确性
<a name="review-sensitive-data-redaction"></a>

加密功能旨在识别和删除敏感数据。但是，由于机器学习的预测性质，它可能无法识别和删除由 Contact Lens 生成的转录中的所有敏感数据的实例。建议您查看所有加密的输出，以确保其满足您的需求。

**重要**  
加密功能不符合医疗隐私法 [例如 1996 年美国健康保险便利和责任法案 (HIPAA)] 所规定的去身份化要求，因此建议您在加密后继续将其视为受保护的健康信息。

有关加密的文件和示例的位置，请参阅[输出文件位置](example-contact-lens-output-locations.md)。

## 禁用情绪分析
<a name="disable-sentiment-analysis-voice-and-chat"></a>

当您选择情绪分析支持的语言，并选择**启用语音分析**或**启用聊天分析**时，默认情况下会为所有座席和客户启用情绪分析。有关情绪分析支持的语言列表，请参阅 [人工智能功能](supported-languages.md#supported-languages-contact-lens)。

下图显示**设置录制和分析行为**数据块上启用了情绪分析选项。

![\[启用的情绪分析选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/sentiment-analysis-enabled.png)


下图显示情绪分析不支持的语言。建议您打开**情绪**部分以确认它已启用还是已禁用。

![\[禁用的情绪分析选项（原因是语言不受支持）。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/sentiment-analysis-verify.png)


要对所有座席和客户禁用情绪分析，请取消选择**启用情绪分析**选项，如下图所示。

![\[禁用的情绪分析选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/sentiment-analysis-disabled.png)


## 根据客户的语言动态启用编辑功能
<a name="dynamically-enable-analytics-contact-flow"></a>

您可以根据客户的语言动态启用输出文件的编辑。例如，对于使用 en-US 的客户，您可能只需要加密的文件，而对于使用 en-GB 的客户，您可能需要原始和加密的输出文件。
+ 编辑：选择以下选项之一（它们区分大小写）
  + 无
  + RedactedOnly
  + RedactedAndOriginal
+ 语言：从[可用语言列表](supported-languages.md#supported-languages-contact-lens)中进行选择。

您可以通过以下方式设置这些属性：
+ 用户定义：使用**设置联系属性**数据块。有关使用此数据块的一般说明，请参阅[如何引用联系属性](how-to-reference-attributes.md)。根据需要为加密和语言定义**目标密钥**和**值**。

  下图显示了如何将**设置联系属性**数据块配置为使用联系属性进行加密的示例。**选择 “**使用文本**” 选项，将**目标键**设置为 **redaction\$1option**，然后将 “值” 设置为。**RedactedAndOriginal****
**注意**  
 **值**区分大小写。  
![\[“设置联系属性”数据块，“使用文本”选项，该值区分大小写。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-contact-attributes-enable-redaction1.png)

  下图显示了如何使用语言的联系属性。选择使用文本选项，将目标密钥设置为 language，将**值**设置为 **en-US**。  
![\[“设置联系属性”数据块，“使用文本”选项，该值区分大小写。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-contact-attributes-enable-redaction2.png)
+ [使用 Lambda 函数](attribs-with-lambda.md)。这与您设置用户定义的联系属性的方式类似。 AWS Lambda 函数可以将结果作为键值对返回，具体取决于 Lambda 响应的语言。以下示例演示了一个 JSON 格式的 Lambda 响应：

  ```
  {
     'redaction_option': 'RedactedOnly',
     'language': 'en-US'
  }
  ```

## 为主要亮点设计流
<a name="call-summarization-agent"></a>

座席使用联络控制面板 (CCP) 可以看到笔录，具体取决于是否在入站流中（转接流）[设置录音和分析行为](set-recording-behavior.md)中启用对话分析。 and/or 

本节提供了在 [设置录音和分析行为](set-recording-behavior.md) 数据块中启用对话分析的三个使用场景，并介绍了它们对座席的主要亮点体验有何影响。

### 使用场景 1：仅在入站流中启用对话分析
<a name="call-summarization-inbound-notransfer"></a>
+ 联系进入入站流，但没有呼叫转接。以下为座席体验：

  座席在联系后续工作 (ACW) 期间会收到完整的转录。转录包括座席和客户所说的所有内容，从座席接听初始呼叫的那一刻起，直到呼叫结束，如下图所示。  
![\[联系人控制面板，对话转录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-summarization-use1.png)
+ 联系进入入站流，有呼叫转接。以下为座席体验：
  + 在 ACW 期间，座席 1 在离开 conference/warm 转接后会收到通话记录。

    笔录包括座席 1 和客户所说的一切，从代理接听初始呼叫的那一刻起，一直到代理 1 离开呼叫的 conference/warm 转接部分。转录包括流（转接/队列流）提示消息，如下图所示。  
![\[转录中的流转接提示。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-summarization-use2.png)
  + 座席 2 在接受代理 1 的转接呼叫时会 conference/warm 收到通话记录。

    笔录包括代理 1 和客户所说的一切，从代理 1 接受初始呼叫的那一刻起，直到代理 1 离开呼叫的 conference/warm 转接部分。转录包括流（转接/队列流）提示消息，以及热转接对话，如下图所示。  
![\[转录，流转接提示和两个座席之间的热转接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-summarization-use2b.png)

    由于在转接流中未启用对话分析，因此当呼叫结束且座席 2 进入通话后续工作时，座席 2 看不到文字记录的其余部分。以下座席 2的 通话后续工作图显示转录为空。  
![\[空的转录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-summarization-use2c.png)

### 使用场景 2：在入站程和转接流（快速连接）中启用对话分析
<a name="call-summarization-inbound-transfer2"></a>
+ 联系进入入站流，但没有呼叫转接。以下为座席体验：
  + 在通话后续工作期间，座席 1 会收到完整的通话转录（未加密）。

    转录包括座席 1 和客户所说的所有内容，从座席接听呼叫的那一刻起，直到呼叫结束。此内容显示在以下座席 1 的 CCP 图中。  
![\[座席 1 的 CCP，完整的通话转录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-summarization-use3.png)
+ 联系进入入站流，有呼叫转接。以下为座席体验：
  + 在 ACW 期间，座席 1 在离开 conference/warm 转接后会收到通话记录。

    笔录包括从座席 1 接听电话的那一刻起，直到座席 1 离开呼叫的 conference/warm 转接部分，代理人 1 和客户所说的一切。转录包括流（转接/队列流）提示消息。

    下图显示了热转接之前的完整通话转录。  
![\[座席 1 离开会议之前的完整通话转录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-summarization-use2b.png)
  + 座席 2 在接受代理 1 的转接呼叫时会 conference/warm 收到通话记录。

    笔录包括座席 1 和客户所说的一切，从代理 1 接听电话的那一刻起，一直到代理 1 离开呼叫的 conference/warm 转接部分。转录包括流（转接/队列流）提示消息。
  + 由于在转接流中启用了对话分析，因此在联系后续工作期间，座席 2 会在通话完成后收到通话文字记录。

    笔录仅包括在座席 1 离开呼叫后座席 2 与客户之间的剩余通话部分。转录包括座席 2 和客户所说的一切内容，从他们参加会议/被热转接的那一刻起，直到通话结束。下图中显示了示例转录。  
![\[座席 2 与客户之间的通话转录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-summarization-use3b.png)

## 如果流数据块无法启用对话分析怎么办？
<a name="troubleshoot-contactlens-enablement"></a>

[设置录音和分析行为](set-recording-behavior.md) 数据块可能无法对联系人启用对话分析。如果未对联系启用对话分析，请[检查流日志](search-contact-flow-logs.md)中是否存在错误。

## 多方通话和对话分析
<a name="multiparty-calls-contactlens"></a>

Contact Lens 对话分析支持最多包含 2 名参与者的通话。例如，如果一个通话中超过两方（座席和客户），或者通话被转接到第三方，则转录和分析（例如情绪、加密、类别等）的质量可能会降低。如果超过两方（座席和客户），建议您对多方或第三方通话禁用对话分析。为此，请在流中添加另一个 [设置录音和分析行为](set-recording-behavior.md) 数据块，并禁用对话分析。有关流数据块行为的更多信息，请参阅 [配置提示](set-recording-behavior.md#set-recording-behavior-tips)。

# 在 Amazon Connect 中分配使用 Contact Lens 对话分析的权限
<a name="permissions-for-contact-lens"></a>

为了保证客户数据的安全，您可以设置安全配置文件权限，以决定谁可以访问由 Contact Lens 对话分析生成的信息。

以下是所需的安全配置文件权限说明，以及一些有用但不需要的权限。其中一些是搜索权限，需要使用这些权限才能找到想要分析的联系。它们并非特定于 Contact Lens 对话分析。

## 对话分析权限
<a name="ca-permissions-cl"></a>
+ **Contact Lens - 对话分析**
  + 在**联系详细信息**页面，您可以查看汇总对话分析（客户情绪、语音联系通话时间）的图表，以及文字记录和录音中每次对话的情绪颜色和指标。例如，下图显示了此信息在语音联系的**联系详细信息**页面上的显示方式。

    **Contact Lens - 对话分析 - 查看**权限，查看对话录音和转录中的情绪指示器也需要具备该权限。  
![\[“联系详细信息”页面上的图表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-conversationalanalytics-permission.png)  
![\[“联系详细信息”页面上的图表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-conversationalanalytics-permission-2.png)
+ **通话录音（未加密）**

  在某个联系的**联系详细信息**和**联系人搜索**页面上，查看未加密的录音。
+ **通话录音（已加密）**

  在某个联系的**联系详细信息**和**联系人搜索**页面上，收听敏感数据已被加密的通话录音。
+ **联系转录（未加密）**

  在某个联系的**联系详细信息**和**联系人搜索**页面上，查看未加密的聊天、电子邮件对话和 Contact Lens 生成的未加密的语音转录文本。
+ **联系转录（已加密）**

  在某个联系的**联系详细信息**和**联系人搜索**页面上，查看其中的敏感数据已被加密的聊天和语音转录。

**重要**  
如果您具备以下权限：  
**联系转录（未加密）- 访问**和**联系转录（已加密）- 访问**
- 或者 -  
**通话录音（未加密）- 访问**和**通话录音（已加密）- 访问**
请注意以下行为：  
在流上启用加密时，加密的内容将显示在**联系详细信息**和**联系人搜索**页面上。
在流上禁用加密或未通过 Contact Lens 分析联系时，未加密的内容将显示在**联系详细信息**和**联系人搜索**页面上。
您不能同时访问已加密和未加密的对话版本。

## 搜索权限
<a name="search-permissions-cl"></a>
+ **联系人搜索**

  您需要此权限才能访问**联系人搜索**页面，您可以在此页面中搜索联系，这使您可以查看分析过的录音和文字记录。此外，您可以对通话转录执行快速的全文搜索，并按情绪得分和非通话时间进行搜索。
+ **查看我的联系**

  如果您需要访问**联系人搜索**页面、仅查看您处理的联系以及查看分析过的录音和文字记录，则需要此权限。
**重要**  
如果同时授予了**联系人搜索**和**查看我的联系**权限，则相应用户将有权访问所有联系。
+ **按对话特征搜索联系**

  该权限并非 Contact Lens 对话分析所必需，但由于它能提供更多搜索选项，因此非常实用。

  在**联系人搜索**页面上：
  + 对于语音联系，您可以访问其他筛选条件，这些筛选条件允许您按情绪得分和非通话时间返回结果。
  + 对于聊天联系，您可以访问其他筛选条件，以按响应时间搜索联系。
  + 对于语音和聊天，您可以搜索属于特定联系类别的对话。

  有关更多信息，请参阅 [搜索情绪得分/情绪转变](search-conversations.md#sentiment-search)、[搜索非说话时间](search-conversations.md#nontalk-time-search) 和 [搜索联系类别](search-conversations.md#contact-category-search)。

  下图显示了**联系搜索**页面的**筛选条件**分区以及**筛选条件**下拉菜单。其旁边带有 **CL** 的筛选条件仅适用于拥有此安全配置文件权限的用户。  
![\[“添加筛选条件”下拉菜单，其旁边带有 CL 的筛选条件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-search-contact-category-3.png)
+ **按关键字搜索联系**

  该权限并非 Contact Lens 对话分析所必需，但由于它能提供更多搜索选项，因此非常实用。
  + 在**联系搜索**页面上，您可以访问允许您按**单词或短语**搜索联系的其他筛选条件，例如“*thank you for your business*”。有关更多信息，请参阅 [搜索单词或短语](search-conversations.md#keyword-search)。  
![\[“添加筛选条件”下拉菜单，单词或短语 CL 筛选条件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-search-words-phrases.png)

# Amazon Connect 中的对话分析指标
<a name="contact-lens-metrics"></a>

以下指标源自 Contact Lens 对话分析。仅当[为您的实例启用 Contact Lens](enable-analytics.md#enable-cl) 并在联系中启用了[对话分析](enable-analytics.md#enable-callrecording-speechanalytics)时才能使用这些指标。

这些指标会显示在实时和历史指标报告中。有关如何将这些指标添加到报告中的说明，请参阅 [如何创建历史指标报告](create-historical-metrics-report.md#historical-reports-howto-create)。

同时，请查看 [Contact Lens 对话分析控制面板](contact-lens-conversational-analytics-dashboard.md)，它以数据可视化的形式展示联系动因随时间的变化趋势。

## 座席通话时间百分比
<a name="ttagent-hmetric"></a>

该指标衡量在语音通话中座席讲话的时间占整个通话时长的百分比。

**指标类型**：百分比

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`PERCENT_TALK_TIME_AGENT`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：座席通话时间百分比

**计算逻辑**：
+ 将座席在对话中的所有讲话时段（座席通话时间）相加，得到一个总和。
+ 将该总和除以对话总时长。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 座席平均问候时间
<a name="average-greeting-time-agent-hmetric"></a>

该指标提供了座席对聊天的首次响应平均时间，它显示了座席在加入聊天后，回复客户的速度。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_GREETING_TIME_AGENT`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：座席平均问候时间

**计算逻辑**：
+ 该指标的计算方法是：将座席首次响应时间的总和除以聊天联系数量。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 座席平均中断次数
<a name="average-interruptions-agent-hmetric"></a>

该指标用于量化在客户互动过程中，座席打断客户讲话的平均频率。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_INTERRUPTIONS_AGENT`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：平均座席中断次数

**计算逻辑**：
+ 该指标的计算方法是：用座席打断客户讲话的总次数除以联系总次数。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 座席平均中断时间
<a name="average-interruption-time-agent-hmetric"></a>

该指标衡量座席在与联系人通话时平均总的中断时间。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_INTERRUPTION_TIME_AGENT`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：座席平均打断时间

**计算逻辑**：
+ 将每次对话中的中断时段相加得到一个总和。
+ 用经历过至少一次中断的通话数量除以该总和。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 座席平均通话时间
<a name="average-talk-time-agent-hmetric"></a>

该指标衡量座席在一次对话中讲话的平均时长。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_TALK_TIME_AGENT`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：座席平均讲话时间

**计算逻辑**：
+ 将座席所有讲话时间段的时长相加得到一个总和。
+ 将该总和除以联系总数。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 平均对话持续时间
<a name="average-conversation-duration-hmetric"></a>

该指标衡量与座席进行语音联系的平均通话时长。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_CONVERSATION_DURATION`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：平均对话持续时间

**计算逻辑**：
+ 该指标的计算方法是：从对话开始到座席或客户任何一方说出最后一个字为止的总时长。
+ 然后将该值除以联系总数，得出通话中花费的通话时间的平均值。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 客户平均通话时间
<a name="average-talk-time-customer-hmetric"></a>

该指标衡量客户在一次通话中讲话时长的平均值。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_TALK_TIME_CUSTOMER`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：客户平均讲话时间

**计算逻辑**：
+ 将客户所有讲话时间段的时长相加得到一个总和。
+ 将该总和除以联系总数。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 平均非通话时间
<a name="average-non-talk-time-hmetric"></a>

该指标提供在语音通话中无人讲话时间总和的平均值。非通话时间是指超过 3 秒的等待时间和沉默时间的总和，在此期间，座席和客户都没有进行对话。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_NON_TALK_TIME`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：平均无人讲话时间

**计算逻辑**：
+ 将双方都保持静默的所有时间段相加得到一个总和。
+ 将该总和除以联系总数。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 平均通话时间
<a name="average-talk-time-hmetric"></a>

该指标衡量在语音通话中，客户或座席任何一方的平均讲话时长。

**指标类型**：字符串（*hh:mm:ss*）

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`AVG_TALK_TIME`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：平均讲话时间

**计算逻辑**：
+ 将所有讲话时间段相加得到一个总和，无论讲话者是座席、客户，还是双方同时在讲话。
+ 将该总和除以联系总数。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 客户通话时间百分比
<a name="ttcustomer-hmetric"></a>

该指标提供在语音通话中，客户的讲话时间占整个通话时长的百分比。

**指标类型**：百分比

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`PERCENT_TALK_TIME_CUSTOMER`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：客户讲话时间百分比

**计算逻辑**：
+ 将客户的所有讲话时间段相加得到一个总和。
+ 将该总和除以对话总时长。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 非通话时间百分比
<a name="ntt-hmetric"></a>

该指标提供在语音通话中，无人讲话的时间占整个通话时长的百分比。

**指标类型**：百分比

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`PERCENT_NON_TALK_TIME`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：无人讲话时间百分比

**计算逻辑**：
+ 将参与者保持静默的所有时间段（无人讲话时间）相加得到一个总和。
+ 将该总和除以对话总时长。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

## 通话时间百分比
<a name="tt-hmetric"></a>

该指标提供在语音通话中，有人讲话的时间占整个通话时长的百分比。

**指标类型**：百分比

**指标类别**：对话分析驱动的指标

**如何使用 Amazon Connect API 进行访问**：
+ [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html) API 指标标识符：`PERCENT_TALK_TIME`

**如何使用 Amazon Connect 管理员网站进行访问**：
+ 历史指标报告：讲话时间百分比

**计算逻辑**：
+ 将所有讲话时间段相加得到一个总和，无论讲话者是座席、客户，还是双方同时在讲话。
+ 将该总和除以对话总时长。

**备注**：
+ 该指标仅适用于经过 Contact Lens 对话分析所分析的联系。

# Amazon Connect Contact Lens 通知类型
<a name="rules-notification-types"></a>

Contact Lens 提供以下通知类型：
+ Contact Lens匹配的发布 Call/Chat 规则：每当匹配规则并触发Contact Lens EventBridge 规则操作时，就会传送一个 EventBridge 事件。

  此事件包含有关触发的 Contact Lens 规则的有用信息，包括分配的类别以及座席、联系和队列的详细信息。
+ Contact Lens匹配的实时 Call/Chat 规则：只要匹配Contact Lens规则并实时触发，就会传送一个 EventBridge 事件。

  此事件包含有关触发的 Contact Lens 规则的有用信息，包括分配的类别以及座席、联系和队列的详细信息。
+ Contact Lens分析状态更改：当无法分析联系人录音Contact Lens时，将传送 EventBridge 事件。该事件包含事件原因代码，该代码提供了有关其无法处理录音的原因的详细信息。

您可以在各种场景中使用这些通知类型。例如，使用Contact Lens分析 State Change 事件来表示在处理联系人文件时出现意外错误， EventBridge 事件详细信息随后可以存储在 CloudWatch 日志中以供进一步审查，触发其他工作流程，或者提醒相关支持团队进行进一步调查。

语音和聊天分析功能的 Contact Lens 事件让许多新的使用案例（如呈现和可视化更深层次的洞察）成为可能，例如：
+ 生成有关所有通话和聊天对话中实时客户情绪低落的警报
+ 汇总和报告反复出现的问题和主题
+ 通过检测有多少客户在通话中引用了最新营销活动来衡量其影响
+ 为每个区域和营业范围自定义座席合规性标准，并在需要时招收座席参加额外的培训。

# 使用 Amazon Connect 管理网站向 Contact Lens 添加自定义词汇
<a name="add-custom-vocabulary"></a>

您可以通过扩展和定制引擎的词汇来提高产品名称、品牌名称和特定领域术语的语音识别准确性。 speech-to-text Contact Lens

本主题介绍如何使用 Amazon Connect 管理网站添加自定义词汇表。您也可以使用[CreateVocabulary](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateVocabulary.html)和添加它们[AssociateDefaultVocabulary](https://docs.aws.amazon.com/connect/latest/APIReference/API_AssociateDefaultVocabulary.html) APIs。

## 有关自定义词汇的需知信息
<a name="things-to-know-about-cust-vocab"></a>
+ 必须将词汇设置为**默认值**，才能将其应用于分析以生成转录。下图显示了**自定义词汇**页面。选择省略号，然后选择**设置为默认值**。  
![\[“自定义词汇”页面，省略号的位置，“设置为默认值”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-custom-vocab-default.png)
+ 您可以将每种语言的一个词汇表应用于分析。这意味着每种语言只能有一个文件处于**已就绪(默认)** 状态。
+ 您最多可以上传和激活 20 个词汇文件。您可以同时激活所有 20 个文件。
+ 转录是一次性事件。新上传的词汇不会追溯应用于现有转录。
+ 您的文本文件必须采用 LF 格式。如果您使用任何其他格式，例如 CRLF 格式，则 Amazon Transcribe 不会接受您的自定义词汇。
+ 只有在选择英语语言设置时才能下载示例词汇文件。
+ 有关词汇文件大小的限制和其他要求，请参阅《Amazon Transcribe 开发人员指南**》中的[自定义词汇](https://docs.aws.amazon.com/transcribe/latest/dg/custom-vocabulary.html)。
+ 自定义词汇仅适用于语音分析。它们不适用于聊天对话，因为转录已经存在。

## 所需的权限
<a name="add-custom-vocabulary-permissions"></a>

在将自定义词汇添加到 Amazon Connect 之前，您需要为您的安全配置文件分配**分析和优化**、**Contact Lens – 自定义词汇**权限。

默认情况下，在 Amazon Connect 的新实例中，**管理员**和**CallCenterManager**安全配置文件具有此权限。

有关如何为现有安全配置文件添加更多权限的信息，请参阅[在 Amazon Connect 中更新安全配置文件](update-security-profiles.md)。

## 添加自定义词汇
<a name="how-to-add-custom-vocabulary"></a>

1. 使用具有添加自定义词汇所需权限的用户账户登录 Amazon Connect。

1. 导航到**分析和优化**、**自定义词汇**。

1. 选择**添加自定义词汇**。

1. 在**添加自定义词汇**页面上，输入词汇的名称，选择英语语言，然后选择**下载示例**文件。
**注意**  
只有在选择英语语言设置时才能下载示例词汇文件。否则，会显示一条错误消息，如下图所示。  

![\[指示处理词汇文件已失败的错误消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-custom-vocab-sample-error.png)


   下图显示了示例词汇文件的外观。标头包含 `Phrase`、`IPA`、`SoundsLike`、`DisplayAs`。标头是必需的。  
![\[示例词汇文件，标头。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-custom-vocab-header.png)

1. 文件中的信息每个条目用一个 [TAB] 隔开。有关如何向词汇文件中添加单词和首字母缩略词的详细信息，请参阅《Amazon Transcribe 开发人员指南**》中的[使用表格创建自定义词汇](https://docs.aws.amazon.com/transcribe/latest/dg/custom-vocabulary-create-table.html)。

   下图显示了示例词汇文件中的单词。“短语”列中的单词是必需的。`IPA`、`SoundsLike` 和 `DisplayAs` 列中的单词是可选的。  
![\[一个示例词汇文件，“短语”列中的单词是必需的。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-custom-vocab-phrase-column.png)

   要在**短语**列中输入多个单词，请用连字符 (-) 分隔每个单词；不要使用空格。

## 词汇状态
<a name="about-cust-vocab-states"></a>
+ **已就绪(默认)**：正在将词汇应用于分析以生成转录。它适用于实时分析和通话后分析。
+ **已就绪**：词汇未应用于分析，但它是一个有效的文件且可用。要将其应用于分析，请将其设置为默认值。
+ **正在处理**：Amazon Connect 正在验证您上传的词汇，并尝试将其应用于分析以生成转录。
+ **正在删除**：您已选择**删除**词汇，Amazon Connect 现在正在将其删除。

  Amazon Connect 删除词汇大约需要 90 分钟的时间。

如果您尝试上传未验证的词汇，则会导致**失败**状态。例如，如果您将包含多个单词的短语添加到**短语**列，并用空格而不是连字符分隔它们，则操作将失败。

## 下载并查看自定义词汇
<a name="view-custom-vocabulary"></a>

要查看已上传的自定义词汇，请下载并打开相应的文件。只能下载和查看处于**已就绪**状态的文件。

1. 导航到**分析和优化**、**自定义词汇**。

1. 依次选择**更多**、**下载**。下图显示了**下载**的位置。  
![\[“自定义词汇”页面，词汇列表，“更多”下拉菜单，“下载”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-custom-vocab-download.png)

1. 打开下载内容以查看相应内容。

1. 您可以更改内容，然后选择**保存并上传**。

# 使用 Amazon Connect 管理网站创建 Contact Lens 规则
<a name="build-rules-for-contact-lens"></a>

Contact Lens规则允许您根据通话、聊天或电子邮件中使用的关键字、情绪分数、客户属性和其他标准自动对联系人进行分类、接收警报或生成任务。

本主题介绍如何使用 Amazon Connect 管理网站创建规则。要以编程方式创建和管理规则，请参阅《Amazon Connect API Reference Guide》**中的 [Rules actions](https://docs.aws.amazon.com/connect/latest/APIReference/rules-api.html) 和 [Amazon Connect Rules Function language](https://docs.aws.amazon.com/connect/latest/APIReference/connect-rules-language.html)。

**提示**  
有关规则功能规格（例如，您可以创建多少规则）的列表，请参阅[Amazon Connect 规则功能规范](feature-limits.md#rules-feature-specs)。

## 步骤 1：定义对话分析的规则条件
<a name="rule-conditions"></a>

1. 在导航菜单上，选择**分析和优化**、**规则**。

1. 依次选择**创建规则**、**对话分析**。

1. 在 “**时间**” 下，使用下拉列表选择**通话后分析**、**实时分析**、**聊天后分析或**电子邮件**分析**。  
![\[“新规则”页面，“当”下拉菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rule-define-conditions.png)

1. 选择**添加条件**。

   您可以合并来自大量条件的标准，以构建非常具体的 Contact Lens 规则。以下为可用条件：
   + **单词或短语**：从[精确匹配、模式匹配或语义匹配](exact-match-pattern-match-semantic-match.md)中进行选择，以在说出关键字时触发提醒或任务。
   + **自然语言 - 语义匹配**：提供自然语言陈述（例如，客户打电话取消账户），与使用生成式人工智能的对话记录进行匹配，然后采取行动（例如，触发任务、执行评估等） 有关更多信息，请参阅 [生成式人工智能驱动的语义匹配](natural-language-semantic-match.md)。
   + **联系后工作 (ACW)**：制定规则来衡量代理在完成联系后工作的效率。
   + **代理层次结构**：构建在特定代理层次结构上运行的规则。代理层次结构可以代表地理位置、部门、产品或团队。

     要查看代理层次结构列表以便将其添加到规则中，您需要在安全配置文件中具有 “**代理层次结构-查看**” 权限。
   + **座席**：构建在座席子集上运行的规则。例如，创建规则以确保新雇用的座席遵守公司标准。

     要查看座席姓名以便可将其添加到规则中，您的安全配置文件中需要**用户 – 查看**权限。
   + **AI 代理**：识别特定 Connect AI 代理执行自助服务或座席帮助的联系人。您可以选择多个 AI 代理，也可以选择代理的特定版本。

     要查看 AI 代理名称以便将其添加到规则中，您需要 **AI 代理-在安全配置文件中查看**权限。
   + **AI 代理-升级**：当用于客户自助服务的 Connect AI 代理升级为人工时，识别联系人。

     要查看 AI 代理名称以便将其添加到规则中，您需要 **AI 代理-在安全配置文件中查看**权限。
   + **座席交互持续时间**：创建规则以识别座席交互长于或短于预期的联系。该功能仅适用于通话。
   + **联系人细分属性**：您可以使用来自其他系统的自定义联系人细分属性或使用自定义逻辑来识别规则中的联系人。您可以[定义属性](predefined-attributes.md#predefined-attributes-create-web-admin)并在流程中设置其值。自定义细分属性仅出现在该特定的联系人ID上，而不是整个联系人链中。例如，您可以构建一条规则，用于标识该联系人在与代理建立连接之前已在 IVR 中进行了预先身份验证。

     要查看要添加到规则中的联系人细分属性列表，您需要**预定义属性-查看**权限。
   + **断开连接原因**：制定规则，检查联系人断开连接的原因。例如，如果代理在客户之前断开连接，或者联系人已转移。
   + **最高响度分数**：制定规则，检查代理或客户对话期间的峰值响度分数（以分贝为单位）。较高的响度（例如，超过 70Db）可能与兴奋或愤怒有关，而低于特定响度分数（例如，30Db 或更低）的语音可能难以理解。
   + **等待时间**：制定规则以识别等待时间异常的联系人，从而发现更有效地处理联系人的机会。您可以使用最长等待时间、总保持时间和保留次数来设置规则。您还可以检查等待时间占客户与客服联系的总时间（客户等待时间除以客服互动持续时间和客户等待时间）的百分比。
   + **启动方法**：构建规则，检查联系人是否为入站、出站、已转移等。
   + **联系属性**：构建基于自定义[联系属性](what-is-a-contact-attribute.md)的值而运行的规则。例如，您可以专门针对特定营业范围或特定客户构建规则，例如根据他们的会员级别、其当前居住国家/地区或他们是否有未完成的订单来构建规则。

     您最多可以向规则中添加五个联系属性。
   + **情绪 – 时间段**：构建在衔接时段内基于情绪分析结果（正面、负面或中立）运行的规则。

     例如，您可以构建一个规则，用于确定客户情绪在设定的时间段内何时保持负面状态。如果参与者稍后加入了联系，则此处设置的时间段适用于参与者在场的时间。

     当规则应用于没有情绪数据的联系时，会使用中立情绪。
   + **情绪 – 整个联系期间**：构建基于在整个联系期间的情绪得分值运行的规则。例如，您可以构建一个规则，当整个联系期间的客户情绪一直很低时，您可以为客户体验分析师创建一个任务来查看通话转录和跟进。

     当规则应用于没有情绪数据的联系时，会使用中立情绪。
   + **中断**：构建规则，用于检测座席何时打断客户超过 X 次。该功能仅适用于通话。
   + **非通话时间**：建立检查未检测到任何语音的规则。这可能包括客户被搁置的时期。您可以查看总的非通话时间、对话中最长的非通话时间段或对话期间非通话时间的百分比。非通话时间过长，例如非通话时间的百分比超过对话的50％，可能表明有机会改善流程或代理指导机会。该功能仅适用于通话。
   + **响应时间**：构建规则以识别参与者的响应时间长于或短于预期的联系：平均值或最大值。

     例如，您可以设置**座席问候时间**（也称为**第一响应时间**）的规则：座席加入聊天后，他们多久才发出第一个问候消息。这样将帮助您确定座席何时花了太长时间才与客户进行互动。
   + **潜在的断开连接问题**：制定规则，检查是否存在任何技术问题（例如网络连接、设备问题）。您可以使用它将联系人排除在自动座席绩效评估之外，因为在自动客服绩效评估中，存在无法控制的连接问题。
   + **队列**：构建在队列子集上运行的规则，或者检查联系人是否未排队。组织通常使用队列来表示营业范围、主题或域。例如，您可以专门为销售队列制定规则，跟踪最近营销活动的影响，或者为客户支持队列制定规则，跟踪整体情绪。对于自助交互，您可以检查联系人是否从未排队，这可能表明 AI 代理成功完成了自助服务。

     要查看队列名称以便将其添加到规则中，您需要在安全配置文件中设置**队列-查看**权限。
   + **路由配置文件**：识别映射到特定路由配置文件的代理处理的联系人。路由配置文件可能表明座席部门或技能熟练程度。例如，您可以使用路由配置文件自动评估座席新员工，他们使用不同的评估标准进行基本故障排除，而不是终身多技能客服。

     要查看路由配置文件以便将其添加到规则中，您需要在安全**配置文件中设置路由配置文件-查看**权限。
   + **通话时间**：使用代理或客户交谈所花费的绝对时间阈值来制定规则。这可用于识别客户在何处根本没有说话，从而导致座席断开连接，或者代理在何处表现出呼叫回避行为，例如在拿起电话后不说话。
   + **座席交互持续时间**：创建规则以识别座席交互长于或短于预期的联系。该功能仅适用于通话。

   下图显示了具有多个条件的示例规则，适用于语音联系。  
![\[具有多个条件的示例规则，适用于语音联系。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-conditions.png)

   下图显示了具有多个条件的示例规则，适用于聊天联系。当**第一**响应时间大于或等于 1 分钟，并且座席在其首次响应中未提及任何列出的问候词或短语时，就会触发该规则。

   **第一响应时间** = 座席加入聊天后，他们多久才向客户发出第一个消息。  
![\[具有多个条件的示例规则，适用于聊天联系。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-conditions-chat.png)

1. 选择**下一步**。

## 步骤 2：定义规则操作
<a name="rule-actions"></a>

1. 选择**添加操作**。可以选择以下操作：
   + [创建任务](contact-lens-rules-create-task.md)：此选项不可用于实时聊天
   + [发送电子邮件通知](contact-lens-rules-email.md)
   + [生成一个 EventBridge 事件](contact-lens-rules-eventbridge-event.md)  
![\[“添加操作”下拉菜单，操作列表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-action-no-wisdom.png)

1. 选择**下一步**。

1. 查看并进行任何编辑，然后选择**保存**。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

# 通过将对话与自然语言陈述或特定字词和短语进行匹配，自动对联系进行分类
<a name="rules"></a>

通过 Contact Lens 对话分析，您能够自动对联系进行分类，以识别联系的主要驱动因素、客户体验和座席行为。在聊天的**联系详细信息**页面中，类别会显示在转录的上方，如下图中所示。

![\[“联系详细信息”页面，“类别”部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-category-overview-chat2.png)


以下是您在对联系进行分类时可以做的一些关键事情：
+ 借助生成式人工智能驱动的联系分类功能，您可以使用自然语言来描述分类标准（例如问：“客户是否曾试图为其账单进行付款？”）。
+ 您可以提供座席或客户所说的特定字词或短语，以便与对话相匹配。Contact Lens 然后会自动标记符合匹配条件的联系，并提供对话中的相关要点。
+ 您可以定义用于接收警报的操作，并针对已分类的联系生成任务。
+ 您可以指定其他标准来对联系进行分类，例如客户情绪得分、队列或您添加到联系中的任何自定义属性，例如客户忠诚度信息。

## 何时使用字词或短语
<a name="when-use-words-phrases"></a>

当您有一个明确想要检测的字词或短语列表时，使用特定字词或短语的方法会非常有效，例如，监控座席是否遵循规定话术，或评估客户对某款产品是否表现出兴趣。

## 何时使用自然语言
<a name="when-use-natural-language"></a>

当可能的字词或短语太多，或者当您想匹配特定于上下文的标准时，使用自然语言语句与联系进行匹配非常有用，例如，“客户想更改其订阅计划”、“座席解决了客户的所有问题”。

## 添加对联系进行分类的规则
<a name="add-category-rules"></a>

本节内容：
+ [步骤 1：定义条件](#add-category-rules-define-conditions)
+ [步骤 2：定义操作](#add-category-rules-define-actions)

### 步骤 1：定义条件
<a name="add-category-rules-define-conditions"></a>

1. 使用已分配**CallCenterManager**安全配置文件或启用**规则**权限的用户账户登录 Amazon Connect。

1. 在导航菜单上，选择**分析和优化**、**规则**。

1. 依次选择**创建规则**、**对话分析**。

1. 为规则分配一个名称。

1. 在 “**时间**” 下，使用下拉列表选择**通话后分析**、**实时分析**、**聊天后分析**、**实时聊天分析或**电子邮件**分析**。  
![\[“新规则”页面，“当”下拉菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rule-define-conditions.png)

1. 选择**添加条件**，然后选择匹配类型：
   + **字词或短语 - 精确匹配**：查找与精确字词或短语匹配的联系。输入单词或短语，用逗号分隔。
   + **字词或短语模式匹配**：通过查找字词或短语模式来查找联系。您也可以指定不同单词之间的距离。例如，如果您要查找提及“credit”（信用）一词的联系，但又不想看到任何提及单词“credit card”（信用卡）的情况，则可以定义一个模式匹配类别，以查找不在“card”（卡）的一个单词的距离内的“credit”（信用）一词。
   + **自然语言 - 语义匹配**：使用生成式人工智能查找与所提供的自然语言陈述相匹配的联系。该陈述应该能够用“是”或“否”来回答。自然语言 - 当您想将联系与上下文特定的条件进行匹配，或者可能匹配的字词或短语太多时，使用语义匹配。示例如下：
     + “客户想更改其订阅计划。”
     + “客户表示希望终止其当前服务。”
     + “座席提供了多种付款选项。”
     + “座席向客户保证他们的来电非常重要，并请求客户再等待一段时间。”
     + “座席解决了客户的所有问题。”
**注意**  
自然语言 - 语义匹配条件不能用于实时分析。
要创建使用生成式人工智能的规则，需要额外的权限：**规则 - 生成式 AI**。

     **专业提示**：如果您以前使用过**字词或短语 - 语义匹配**，则使用生成式人工智能驱动的**自然语言 - 语义匹配**。
   + **字词或短语 - 语义匹配**：查找可能为同义词的字词。例如，如果您输入“upset”（难过），则其可以与“not happy”（不开心）相匹配，或者“hardly acceptable”（难以接受）可以与“unacceptable”（不可接受）相匹配，“unsubscribe”（取消订阅）可以与“cancel subscription”（取消订阅）相匹配。同样，它可以在语义上与短语相匹配。例如，“thank you so much for helping me out”（非常感谢您帮助我摆脱困境）、“thanks a lot and this is so helpful”（非常感谢，这对我大有帮助）和“I am so happy that you are able to help me”（我很高兴您能帮助我）。

     这样就无需在创建类别时定义详尽的关键字列表，并使您能够更广泛地搜索对您很重要的相似短语。为了获得最佳的语义匹配结果，请在语义匹配卡中提供含义相似的关键字或短语。目前，每张语义匹配卡最多可以提供四个关键字和短语。

1. 以**字词或短语 - 精确匹配**为例，输入您想要突出显示的字词或短语，并用逗号将它们分隔开，然后选择**添加**。用逗号分隔的每个单词或短语在卡中都有属于自己的行。  
![\[“新规则”页面，“字词或短语 - 准确匹配”分区。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-script.png)  
![\[“新规则”页面，“字词或短语 - 准确匹配”分区，“添加”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-script2.png)

   Contact Lens 用来读取这些短语的逻辑是：[（Hello AND thank AND you AND for AND calling AND Example AND Corp）（您好，感谢您致电 Example Corp）] 或 [（we AND value AND your AND business）（我们珍视您的业务）] 或 [（how AND may AND I AND assist AND you）（我们如何能够为您提供帮助）]。

   或者，使用**自然语言 - 语义匹配**条件并在文本框中输入自然语言语句，生成式人工智能应该能够将其评估为真或假。  
![\[“新规则”页面，“自然语言 - 语义匹配”部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-natural-language-semantic.png)

1. 要添加更多单词或短语，请选择**添加单词或短语组**。在下图中，第一组单词或短语是座席可能说出的内容，第二组是客户可能说出的内容。  
![\[座席的“字词或短语 - 准确匹配”，单词 AND，客户的“单词或短语”分区。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-script3.png)

   1. Contact Lens 用来读取这些短语的逻辑是：[（Hello AND thank AND you AND for AND calling AND Example AND Corp）（您好，感谢您致电 Example Corp）] 或 [（we AND value AND your AND business）（我们珍视您的业务）] 或 [（how AND may AND I AND assist AND you）（我们如何能够为您提供帮助）]。

   1. 这两张卡用 AND 连接。这意味着，需要说出第一张卡中的其中一行，然后需要说出第二张卡中的其中一个短语。

   Contact Lens 用来读两张卡上的字词或短语的逻辑是（卡 1）AND（卡 2）。

1. 选择**添加条件**将规则应用于：
   + 特定队列
   + 当联系属性具有特定值时
   + 当情绪得分具有特定值时

   例如，下图显示了一条规则，该规则适用于以下情况：代理人正在处理 BasicQueue 或 Billing and Payments 队列，客户购买汽车保险，代理位于西雅图。  
![\[具有多个条件的规则。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-3.png)

### 步骤 2：定义操作
<a name="add-category-rules-define-actions"></a>

除了对联系进行分类外，您还可以定义 Amazon Connect 应采取的操作：

1. [生成一个 EventBridge 事件](contact-lens-rules-eventbridge-event.md)

1. [创建任务](contact-lens-rules-create-task.md)

1. [创建案例](contact-lens-rules-create-case.md)

1. [发送电子邮件通知](contact-lens-rules-email.md)

1. [创建提交自动评估的规则](contact-lens-rules-submit-automated-evaluation.md)

### 步骤 3：查看并保存
<a name="add-category-rules-review-save"></a>

1. 完成后，选择**保存**。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

# 当 Amazon Connect Contact Lens 未能评估规则或类别时
<a name="failed-categories"></a>

Amazon Connect Contact Lens 在针对语音或聊天联系进行联系后分析时，有可能出现无法评估某条规则或分类的情况。

在联系分析过程中对某条规则或分类进行评估时，以下是可能出现的分类结果：

1. **成功匹配并应用于联系**。当类别显示在**联系详细信息**页面上时，这表示它们已成功匹配并应用于联系。

1. **已成功评估，但它们不适用于该联系**。如果**联系详细信息**页面中没有类别，则表示这些类别不适用于联系，但已成功通过 Contact Lens 规则进行评估。

1. **联系分析已完成，但未对特定类别进行评估**。当一个类别无法评估时，这并不意味着该类别不适用于联系（基于其标准），而是 Contact Lens 在没有评估该特定类别的情况下完成了联系分析。

下图显示失败的类别，通过虚线边框、透明背景、错误图标以及“failed”前缀来标示它们。当您将鼠标指针悬停在一个失败的类别上时，将显示有关该类别评估失败的具体原因。

![\[“联系详细信息”页面上失败的类别。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/failed-categories1.png)


这些失败类别只源于使用语义匹配条件的规则。两个可能的原因是：

1. **已超出配额**：在该时间段内，您的生成式人工智能操作次数已超过了限额。您可以通过 AWS Support 申请增加配额。

1. **安全指南检查失败**：分类处理因未能满足安全和质量保护要求而失败。

建议在语义匹配规则中添加更多条件，以缩小语义匹配规则可能适用的联系数量。这将有助于避免出现超出配额问题。

## Contact Lens 联系后分析输出客户 S3 文件
<a name="failed-categories-output-file"></a>

失败的类别显示在分析文件中 JobDetails > 跳过的分析下。

`SkippedAnalysis` 部分显示标记为“Skipped”的联系分析，尽管对该联系的分析已经完成。它包含属性 “功能” 和 “ReasonCode”。 `POST_CONTACT_SUMMARY`是现有功能之一。

`CATEGORIZATION` 已作为一项新功能添加到跳过的分析中。对于导致分类失败的每个唯一 `ReasonCode`，`SkippedAnalysis` 数组中都有一个唯一的分类元素。为每个唯一元素引入了一个新`SkippedEntities`属性，其中包含由于关联的原因代码而失败的所有类别名称（及其关联规则 IDs）的列表。

下面是 `JobDetails` 中一个失败类别的示例：

```
"JobDetails": {
    "SkippedAnalysis": [
        {
            "Feature": "CATEGORIZATION",
            "ReasonCode": "QUOTA_EXCEEDED", 
            "SkippedEntities": [
                {
                    "CategoryName": "PotentialFraud"
                    "RuleId": "a1130485-9529-4249-a1d4-5738b4883748"
                },
                {
                    "CategoryName": "Refund"
                    "RuleId": "bbbbbbb-9529-4249-a1d4-5738b4883748"
                }
            ]
        },
        {
            "Feature": "CATEGORIZATION",
            "ReasonCode": "FAILED_SAFETY_GUIDELINES", 
            "SkippedEntities": [
                {
                    "CategoryName": "ManagerEscalation"
                    "RuleId": "cccccccc-9529-4249-a1d4-5738b4883748"
                },
            ]
        },
        {
            "Feature": "POST_CONTACT_SUMMARY",
            "ReasonCode": "INSUFFICIENT_CONVERSATION_CONTENT"
        }
    ]
},
```

有关更多信息，请参阅 [通话的 Contact Lens 对话分析输出文件示例](contact-lens-example-output-files.md)。

# 根据通话中的关键字和短语在 Contact Lens 中为主管添加实时提醒
<a name="add-rules-for-alerts"></a>

在流中[启用实时分析](enable-analytics.md)后，您可以添加规则，以便在出现客户体验问题时自动提醒主管。

例如，当聊天过程中有提到某些关键字或短语，或者当 Contact Lens 检测到其他标准时，它可以自动发送警报。主管可在实时指标控制面板上看到警报。从那里，主管可以监听实时通话并通过聊天向座席提供指导，以帮助他们更快地解决问题。

下图显示了主管收到警报时会在实时指标报告中看到的内容的示例。在此案例中，Contact Lens 检测到客户感到愤怒。

![\[“实时指标”页面，提示客户愤怒的警报。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-real-time-metrics-alert2.png)


当主管监听实时通话时，Contact Lens 会为他们提供实时转录和客户情绪趋势，帮助他们了解情况并评估适当的操作。该转录还使客户在转接到其他座席时无需重复之前的话。

下图显示了实时转录示例。

![\[实时转录示例。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-real-time-transcript.png)


## 为通话添加实时警报规则
<a name="add-category-rules-real-time"></a>

1. 使用已分配**CallCenterManager**安全配置文件或启用**规则**权限的用户账户登录 Amazon Connect。

1. 在导航菜单上，选择**分析和优化**、**规则**。

1. 依次选择**创建规则**、**对话分析**。

1. 为规则分配一个名称。

1. 在**时间**下，使用下拉列表选择**实时分析**。

1. 选择**添加条件**，然后选择匹配类型：
   + **完全匹配**：仅查找完全匹配的单词或短语。
   + **模式匹配**：查找精确度可能低于 100% 的匹配项。您也可以指定不同单词之间的距离。例如，您可能会查找提及“信用”一词的联系，但您不希望看到任何提及单词“信用卡”的情况。您可以定义一个模式匹配类别，以查找与单词“卡”不在一个单词的距离内的单词“信用”。
**提示**  
语义匹配不适用于实时分析。

1. 输入要突出显示的单词或短语，用逗号分隔。实时规则仅支持**所提及的**任何关键字或短语。  
![\[单词和短语规则。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-alert-rules-1.png)

1. 选择**添加**。用逗号分隔的每个单词或短语都有属于自己的行。  
![\[包含多个短语的单词和短语规则，其中每个短语都有属于自己的行。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-alert-rules-2.png)

   Contact Lens 用来读取这些字词或短语的逻辑是：[（Talk OR to OR your OR manager）（与您的经理通话）] OR [（this OR is OR not OR helpful）（这一点没有帮助）] OR [（speak OR to OR your OR supervisor）（与您的主管交谈）]等。

1. 要添加更多单词或短语，请选择**添加单词或短语组**。在下图中，第一组单词或短语是座席可能说出的内容。第二组是客户可能说出的内容。  
![\[包含客户和座席的多个短语的单词和短语规则。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-script3.png)

   1. 在该第一张卡中，Contact Lens 将每一行读取为 OR。例如：[(Hello)（您好）] OR [(thank OR you OR for OR calling OR Example OR Corp)（感谢您致电 Example Corp）] OR [(we OR value OR your OR business)（我们珍视您的业务）]。

   1. 这两张卡用 AND 连接。这意味着，需要说出第一张卡中的其中一行，然后需要说出第二张卡中的其中一个短语。

   Contact Lens 用来读两张卡上的字词或短语的逻辑是（卡 1）AND（卡 2）。

1. 选择**添加条件**将规则应用于：
   + 特定队列
   + 当联系属性具有特定值时
   + 当情绪得分具有特定值时

   例如，下图显示了一条规则，该规则适用于以下情况：代理人正在处理 BasicQueue 或 Billing and Payments 队列，客户购买汽车保险，代理位于西雅图。  
![\[具有多个条件的单词和短语规则。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-3.png)

1. 完成后选择**下一步**。

1. 在**分配联系类别**框中，为相应类别添加名称。例如，**合规**或**不合规**。

1. 选择**下一步**，然后选择**保存并发布**。

# 根据聊天中的关键字和短语在 Contact Lens 中为主管添加实时提醒
<a name="add-rules-for-alerts-chat"></a>

在流中[启用实时分析](enable-analytics.md)后，您可以添加规则，以便在出现客户体验问题时自动提醒主管。

例如，当聊天过程中有提到某些关键字或短语，或者当 Contact Lens 检测到其他标准时，它可以自动发送警报。然后，主管就可以查看**联系详细信息**页面，进行实时聊天以查看问题。从那里，主管可以加入聊天并通过聊天向座席提供指导，以帮助他们更快地解决问题。

下图举例说明了主管收到实时聊天警报时会在**联系详细信息**页面中看到的内容。在此案例中，Contact Lens 检测到客户感到愤怒。

![\[“联系详细信息”页面，提示实时聊天客户愤怒的警报。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-realtime-alert-chat.png)


当主管监控聊天时，Contact Lens 会为他们提供实时转录和客户情绪趋势，帮助他们了解情况并评估适当的操作。该转录还使客户在转接到其他座席时无需重复之前的话。

## 为聊天添加实时警报规则
<a name="add-category-rules-real-time"></a>

1. 使用已分配**CallCenterManager**安全配置文件或启用**规则**权限的用户账户登录 Amazon Connect。

1. 在导航菜单上，选择**分析和优化**、**规则**。

1. 依次选择**创建规则**、**对话分析**。

1. 为规则分配一个名称。

1. 在**时间**下，使用下拉列表选择**实时分析**。

1. 选择**添加条件**，然后选择匹配类型。下图显示了为**情绪 - 时间段**条件配置的规则。  
![\[实时聊天分析规则的条件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-realtime-chat-rule2.png)

   从以下选项中进行选择：
   + **完全匹配**：仅查找完全匹配的单词或短语。
   + **模式匹配**：查找精确度可能低于 100% 的匹配项。您也可以指定不同单词之间的距离。例如，您可能会查找提及“信用”一词的联系，但您不希望看到任何提及单词“信用卡”的情况。您可以定义一个模式匹配类别，以查找与单词“卡”不在一个单词的距离内的单词“信用”。
**提示**  
语义匹配不适用于实时分析。

1. 输入要突出显示的单词或短语，用逗号分隔。实时规则仅支持**所提及的**任何关键字或短语。  
![\[单词和短语规则。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-alert-rules-1.png)

1. 选择**添加**。用逗号分隔的每个单词或短语都有属于自己的行。  
![\[包含多个短语的单词和短语规则，其中每个短语都有属于自己的行。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-alert-rules-2.png)

   Contact Lens 用来读取这些字词或短语的逻辑是：[（Talk OR to OR your OR manager）（与您的经理通话）] OR [（this OR is OR not OR helpful）（这一点没有帮助）] OR [（speak OR to OR your OR supervisor）（与您的主管交谈）]等。

1. 要添加更多单词或短语，请选择**添加单词或短语组**。在下图中，第一组单词或短语是座席可能提到的内容。第二组是客户可能提到的内容。  
![\[包含客户和座席的多个短语的单词和短语规则。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-script3.png)

   1. 在该第一张卡中，Contact Lens 将每一行读取为 OR。例如：[(Hello)（您好）] OR [(thank OR you OR for OR calling OR Example OR Corp)（感谢您致电 Example Corp）] OR [(we OR value OR your OR business)（我们珍视您的业务）]。

   1. 这两张卡用 AND 连接。这意味着，需要提到第一张卡中的其中一行，然后需要提到第二张卡中的其中一个短语。

   Contact Lens 用来读两张卡上的字词或短语的逻辑是（卡 1）AND（卡 2）。

1. 选择**添加条件**将规则应用于：
   + 特定队列
   + 当联系属性具有特定值时
   + 当情绪得分具有特定值时

   例如，下图显示了一条规则，该规则适用于以下情况：代理人正在处理 BasicQueue 或 Billing and Payments 队列，客户购买汽车保险，代理位于西雅图。  
![\[具有多个条件的单词和短语规则。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-3.png)

1. 完成后选择**下一步**。

1. 在**分配联系类别**框中，为相应类别添加名称。例如，**合规**或**不合规**。

1. 选择**添加操作**，指定 Amazon Connect 在满足条件时应采取的操作。您可以使用电子邮件通知或与开发自定义集成，来配置主管警报 EventBridge。  
![\[“生成 EventBridge 事件” 和 “发送电子邮件通知” 选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-realtime-chat-rule3.png)

1. 如果您选择了**发送电子邮件通知**，请参阅[创建用于发送电子邮件通知的 规则](contact-lens-rules-email.md)，了解有关完成该页面的更多详细信息以及有关电子邮件限制的信息。

   如果您选择了 Gen **erate EventBridge a event**，[创建生成 EventBridge 事件的规则](contact-lens-rules-eventbridge-event.md)请参阅，了解有关完成该页面的更多详细信息以及有关订阅 EventBridge 事件类型的信息。

# 创建用于发送电子邮件通知的 规则
<a name="contact-lens-rules-email"></a>

您可以创建 规则，以便向组织中的人员发送电子邮件通知。这样有助于您更方便地响应联络中心的潜在问题。例如，您可以创建一个规则来通知以下人员：
+ 出现账户升级或取消情况时通知团队主管。
+ 由于在对话过程中提到了某些单词，因而通知您的联络中心内的一群人员。
+ 在通话过程中发生分歧时，通知联络中心的指定人员。
+ 处理过使用 Amazon Connect 对话分析进行分析或评估的联系的代理。

**重要**  
所有电子邮件均发送自 `no-reply@amazonconnect.com`。
SAML 用户没有主电子邮件地址，他们使用用户名登录。用户名登录通常用电子邮件地址，但并非一定如此。对于这些用户，Amazon Connect 中的**电子邮件地址**字段标签为空。向 SAML 用户发送电子邮件通知时，他们必须配置有辅助电子邮件才能收到通知。如果未配置辅助电子邮件，则用户将收不到该电子邮件。

**创建用于发送电子邮件通知的 规则**

1. 使用具有创建规则[所需权限](permissions-for-rules.md)的用户账户登录 Amazon Connect。

1. 导航到**分析和优化**、**规则**。

1. 在**规则**页面上，选择**创建规则**，然后从下拉列表中选择**对话分析**或**评估表**。  
![\[规则页面，“创建规则”下拉列表，Contact Lens 选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-create-rule.png)

1. 在**新规则**页面上，定义规则的条件。有关更多信息，请参阅:
   + [定义对话分析的规则条件](build-rules-for-contact-lens.md#rule-conditions)
   + [定义评估表的规则条件](create-evaluation-rules.md#rule-conditions-eval)。

1. 当为规则定义操作时，请为相应操作选择**发送电子邮件通知**。  
![\[“新规则”页面，“添加操作”下拉列表，“发送电子邮件通知”操作。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-email-action.png)

1. 在**发送电子邮件通知**分区中，使用以下选项之一来选择谁将会收到电子邮件：
   + **按登录名选择收件人：将电子邮件路由到指定用户**。
**重要**  
SAML 用户必须配置有辅助电子邮件才能收到通知。如果未配置辅助电子邮件，则用户将收不到该电子邮件。
   + **按标签选择收件人**。根据座席的标签值动态路由电子邮件。
   + **选择处理联系的座席**。将电子邮件发送给处理联系的座席。

   在下图中，规则向处理联系的座席发送了一封通知电子邮件。  
![\[“发送电子邮件通知”部分，“选择处理联系的座席”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-email-tag.png)

1. 在**主题**中，添加电子邮件主题。在**正文**中，添加电子邮件通知的内容。

   使用 **@ 添加在规则执行期间填充的动态变量**。对于对话分析规则和评估表规则，您可以为符合规则的**联系人添加规则名称、实例 URL、联系人、代理**和**队列**信息。此外，评估表规则还允许您插入**评估 ID**。  
![\[电子邮件正文，可用变量列表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/rules-send-email-dynamic-variables.png)
**注意**  
其他规则类型支持不同的变量：  
实时指标规则允许您输入**规则名称、实例 URL** 以及突破阈值的**代理、队列、流量或路由配置文件**列表以触发警报。
案例规则允许您插入**规则名称、实例 URL** 和**案例 ID**。

1. 选择**下一步**。检查您的选择，然后选择**保存**。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

## 电子邮件限制
<a name="email-notification-limits"></a>
+ Amazon Connect 的默认限制为每天 500 封电子邮件。超过该限制后，Amazon Connect 实例将在 24 小时内被禁止发送更多电子邮件。这是因为电子邮件受退回和投诉限制的约束。有关更多信息，请参阅[了解 Amazon SES 中的电子邮件送达率](https://docs.aws.amazon.com/ses/latest/dg/send-email-concepts-deliverability.html)中的**退回**和**投诉**分区。
+ 所有电子邮件均发送自 `no-reply@amazonconnect.com`，您无法对其进行自定义。
+ SAML 用户没有主电子邮件地址，他们使用用户名登录。用户名登录通常用电子邮件地址，但并非一定如此。对于这些用户，Amazon Connect 中的**电子邮件地址**字段标签为空。向 SAML 用户发送电子邮件通知时，他们必须配置有辅助电子邮件才能收到通知。如果未配置辅助电子邮件，则用户将收不到该电子邮件。

如果发送电子邮件的默认选项不符合您的要求，请联系您的技术客户经理或 支持 与 Amazon Connect 服务团队讨论。

# 创建生成 EventBridge 事件的规则
<a name="contact-lens-rules-eventbridge-event"></a>

在实时或通话后/聊天后，您可以获取事件并使用它们来触发后续的通知或提醒，或者在 Amazon Connect 之外汇总报告。您可以用这些数据做很多事情。例如：
+ 在 QuickSight 仪表板中获取实时警报。
+ 在 Amazon Connect 之外创建汇总报告。
+ 将数据与您的 CRM 结合起来。
+ 将您的通知解决方案与 Connect 联系起来， EventBridge 并确保在一天结束时，所有特定类型的事件都会发送到特定的收件箱。有效载荷会将联系、座席和队列告知您。

**注意**  
 对于实时指标规则，触发规则的资源将列在**资源**下。例如，如果您创建一条规则，提醒您注意队列指标（例如平均队列应答时间），则超出阈值的队列列表将列在资源下。

**创建生成 EventBridge 事件的规则**

1. 创建规则时，请为操作选择 “**生成 EventBridge事件**”。  
![\[新的规则页面、“采取这些操作” 部分、“添加操作” 下拉列表、“生成 EventBridge 事件” 操作。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-events-example1.png)

1. 在**操作名称**中，输入事件负载的名称。
**注意**  
您为**操作名称**分配的值在 EventBridge 有效负载中可见。在聚合事件时，操作名称会提供一个可用于处理这些事件的额外维度。例如，您有 200 个类别名称，但只有 50 个具有特定的操作名称，例如 NOTIFY\$1CUSTOMER\$1RETENTION。  
![\[“采取这些操作” 部分、“分配联系人类别” 部分、“生成 EventBridge 事件” 部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-add-eb-action.png)

1. 选择**下一步**。查看，然后**保存**。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

1. 要利用 EventBridge 数据，请订阅 EventBridge 事件类型。请参阅下一过程。

## 订阅 EventBridge 事件类型
<a name="subscribe-eb-eventtype"></a>

要订阅 EventBridge 事件类型，请创建与以下内容匹配的自定义 EventBridge 规则：
+ "source" = "aws.connect"
+ “detail-type” = “匹配Contact Lens后通话规则” 或以下任一项：
  + **Contact Lens 实时规则匹配**
  + **Contact Lens 实时聊天规则匹配**
  + **Contact Lens 聊天后规则匹配**
  +  **Contact Lens评估规则匹配**
  + **指标规则匹配**

下图显示了“新规则”页面的“事件模式”分区中的这些设置。

![\[新 EventBridge 规则页面的 “事件模式” 部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-eb-rules-events.png)


### EventBridge 有效载荷示例
<a name="eb-payload"></a>

以下是**匹配Contact Lens后通话规则**时 EventBridge 有效负载的示例。

```
{
 "version": "0", // set by EventBridge
 "id": "aaaaaaaa-bbbb-cccc-dddd-bf3703467718", // set by EventBridge
 "source": "aws.connect",
 "detail-type": "Contact Lens Post Call Rules Matched", 
 "account": "your AWS account ID",
 "time": "2020-04-27T18:43:48Z",
 "region": "us-east-1", // set by EventBridge
 "resources": ["arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN"],
 "detail": {
    "version": "1.0",
    "ruleName": "ACCOUNT_CANCELLATION", // Rule name
    "actionName": "NOTIFY_CUSTOMER_RETENTION",  
    "instanceArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN",
    "contactArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN/contact/contact-ARN",
    "agentArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN/agent/agent-ARN",
    "queueArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN/queue/queue-ARN",
    }
}
```

以下示例显示了当 **Contact Lens 实时规则匹配**时有效载荷的内容。

```
{
 "version": "0", // set by EventBridge
 "id": "aaaaaaaa-bbbb-cccc-dddd-bf3703467718", // set by EventBridge
 "source": "aws.connect",
 "detail-type": "Contact Lens Realtime Rules Matched", 
 "account": "your AWS account ID",
 "time": "2020-04-27T18:43:48Z",
 "region": "us-east-1", // set by EventBridge
 "resources": ["arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN"],
 "detail": {
     "version": "1.0",
     "ruleName": "ACCOUNT_CANCELLATION", // Rule name
     "actionName": "NOTIFY_CUSTOMER_RETENTION",
      "instanceArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN",
     "contactArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN/contact/contact-ARN",
     "agentArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN/agent/agent-ARN",
     "queueArn": "arn:aws:connect:us-east-1:your AWS account ID:instance/instance-ARN/queue/queue-ARN",
      }
}
```

# 创建生成任务的规则
<a name="contact-lens-rules-create-task"></a>

Amazon Connect 规则允许您生成任务。这可以帮助您与所有者一起创建可追踪的操作，并使您可以看到开箱即用的任务完成情况和生产力。

下面是一些示例：
+ 当客户存在欺诈行为时，请查看该联系人。例如，您可以在客户说出使其看起来可能具有欺诈性的单词或短语时创建跟进任务。
+ 当客户提到您希望在以后追加销售或通过联系提供额外支持的特定主题时，进行跟进。
+ 评估客服人员在特定场景中的表现，例如，客户在对话期间情绪非常低落，客户表示沮丧。
+ 采取操作措施，例如为过去一小时的平均队列应答时间超过可接受阈值的队列分配其他代理。

**创建用于创建任务的规则**

1. 创建规则时，请对相应操作选择**创建任务**。  
![\[“新规则”页面，“添加操作”下拉菜单，“创建任务”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-add-task-example1.png)

1. 完成任务字段，如下所示：  
![\[“新规则”页面，“分配联系类别”部分，“创建任务”分区。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-add-tasks-example2.png)

   1. **类别名称**：类别名称显示在联系记录中。长度上限：200 个字符。

   1. **名称**：名称显示在座席的联系人控制面板 (CCP) 中。长度上限：512 个字符。

   1. **描述**：描述显示在座席的联系人控制面板 (CCP) 中。长度上限：4096 个字符。
**注意**  
 在名称和描述中，使用 **@ 添加在规则执行期间填充的动态变量**。对于对话分析规则和评估表规则，您可以为符合规则的**联系人添加规则名称、实例 URL、联系人、代理**和**队列**信息。此外，评估表规则还允许您插入**评估 ID**。  

![\[带有动态变量的任务操作。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/rules-create-task-dynamic-variables.png)

其他规则类型支持不同的变量::   
实时指标规则允许您输入**规则名称、实例 URL 以及突破阈值的代理、队列、流量或路由配置文件列表**以触发警报。
案例规则允许您插入**规则名称、实例 URL** 和**案例 ID**。

   1. **任务参考名称**：这是默认参考，会自动显示在座席的 CCP 中。
      + 对于实时规则，任务参考会链接到实时详细信息页面。
      + 对于通话后/聊天后规则，任务参考会链接到**联系详细信息**页面。

   1. **其他参考名称**：长度上限：4096 个字符。您最多可以添加 25 个参考。

   1. **选择流**：选择旨在将任务路由到相应任务所有者的流。必须保存并发布流，才能将其显示在下拉菜单的选项列表中。

1. 下图显示了此信息在座席的 CCP 中显示方式的示例。  
![\[座席的联系人控制面板中的一项任务。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-add-tasks-ccp.png)

   在此示例中，座席会看到以下**名称**、**描述**和**任务参考名称**的值：

   1. **名称** = **Action-Required-Contact Lens- ba2cf8fe....** 

   1. **描述** = **Test**

   1. **任务参考名称** = taskRef 和实时详细信息页面的 URL

1. 选择**下一步**。查看，然后选择**保存**任务。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

## 语音和任务联系记录已关联
<a name="rules-voice-task-ctrs"></a>

当规则创建任务时，会自动为该任务生成联系记录。它与符合用于创建任务的规则标准的语音通话或聊天的联系记录相关联。

例如，呼叫进入您的联络中心并生成 CTR1：

![\[来电时有关初始联系记录的信息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-attributes-example1.png)


规则引擎可生成任务。在任务的联系记录中，语音联系记录显示为**上一个联系 ID**。此外，任务联系记录会继承语音联系记录中的联系属性，如下图所示：

![\[任务的联系记录 2。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-attributes-example2.png)


## 关于 ContactId、、 AgentId QueueId、的动态值 RuleName
<a name="rules-task-attributes"></a>

方括号 [ ] 中的动态值称为[联系属性](what-is-a-contact-attribute.md)。联系属性使您能够存储有关联系的临时信息，以便可以在流中使用。

在方括号 [] 中添加联系人属性（例如 ContactId、 AgentId QueueId、或 RuleName ）时，该值将从一条联系人记录传递到另一条联系人记录。您可以在流中使用联系属性对联系进行相应地分支和路由。

有关更多信息，请参阅 [使用联系属性](connect-contact-attributes.md)。

# 在 Contact Lens 中创建用来结束与某个案例相关联的任务的规则
<a name="contact-lens-rules-ends-tasks"></a>

**创建结束关联任务的规则**

1. 创建规则时，选择**新案例已更新**作为事件源。  
![\[“新规则”页面，“添加操作”下拉菜单，“添加案例”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-update-case-1.png)

1. 创建规则时，请为相应操作选择**结束任务**。  
![\[“新规则”页面，“添加操作”下拉菜单，“结束任务”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-ends-tasks-2.png)  
![\[“结束任务”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-ends-tasks-3.png)

1. 选择**下一步**。查看，然后选择**保存**。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

# 在 Contact Lens 中创建用于创建案例的规则
<a name="contact-lens-rules-create-case"></a>

**创建用于创建案例的规则**

1. 创建规则时，选择 “**通话后分析可用**”、“**聊天后分析可用**” 或 “**电子邮件分析可用**” 作为事件源。  
![\[在 “定义条件” 页面，选择 “通话后分析可用”、“聊天后分析” 或 “电子邮件分析可用作事件源”。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-create-case-1.png)

1. 选择**下一步**。

1. 在操作页面上，选择为操作**创建案例**。  
![\[“新规则”页面，“添加操作”下拉菜单，“创建案例”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-create-case-2.png)

1. 在**创建案例**卡片中，选择一个**案例模板**。  
![\[在创建案例卡片中，选择一个案例模板。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-create-case-3.png)

1. 填写**必填字段**并添加**可选案例字段**以填充案例数据。
**注意**  
必须将客户配置文件与联系关联，此操作才能生效。有关更多信息，请参阅 [启用 Cases](enable-cases.md)。  
![\[填写必填字段并添加可选案例字段以填充案例数据。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-create-case-4.png)

1. 选择**下一步**。查看，然后选择**保存**。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

# 在 Contact Lens 中创建用于更新案例的规则
<a name="contact-lens-rules-update-case"></a>

**创建用于更新案例的规则**

1. 创建规则时，选择**案例已更新**作为活动源，然后选择**下一步**。  
![\[“新规则”页面，“添加操作”下拉菜单，“更新案例”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-update-case-1.png)

1. 创建规则时，请为相应操作选择**更新案例**。  
![\[“新规则”页面，“添加操作”下拉菜单，“更新案例”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-update-case-2.png)

1. 从下拉列表中选择要更新的任何案例字段，并定义其新值。  
![\[从下拉列表中选择要更新的任何案例字段，并定义其新值。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-update-case-3.png)  
![\[从下拉列表中选择要更新的任何案例字段，并定义其新值。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-update-case-4.png)

1. 选择**下一步**。查看，然后选择**保存**。

1. 添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

   您无法将规则应用于过去存储的对话。

# 在 Contact Lens 中创建用于提交自动评估的规则
<a name="contact-lens-rules-submit-automated-evaluation"></a>

使用 Contact Lens，您可以利用对话分析的洞察和指标来自动填写和提交评估。

## 步骤 1：在评估表上配置自动化
<a name="auto-eval-prereq-1"></a>

在创建提交自动评估的规则之前，您需要在评估表单上配置自动化。有关详细说明，请参阅 [创建评估表](create-evaluation-forms.md) 中的 [步骤 6：启用自动评估](create-evaluation-forms.md#step-automate)。

以下是步骤概述：

1.  对评估表中的每个问题设置自动化。

1.  在激活评估表之前，打开**启用自动提交评估**。

1.  当您激活已配置自动化的评估表时，系统会显示创建规则的提示，如下图所示。  
![\[创建规则的提示。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/create-a-rule-to-submit-automated-evaluations-1.png)

1.  选择 **Create a rule (创建规则)**。

1. 在**规则**页面，定义一条指定使用所选评估表自动评估哪些联系的规则。以下步骤提供了说明。

## 步骤 2：定义一条指定自动评估哪些联系的规则
<a name="auto-eval-prereq-2"></a>

您可以使用两种类型的规则触发自动评估：
+ **对话分析**规则：在 Contact Lens 完成分析后自动评估联系。
+ **评估表**规则：可根据通用评估表的结果触发针对特定情况的评估表。例如，如果对于评估问题*客户是否有兴趣购买产品*的回答为*是*，则您可以触发衡量*座席销售业绩*的另一份评估表。

### 使用对话分析规则触发自动评估
<a name="conversational-analytics-rule"></a>

这是您在创建规则以在表单激活期间提交自动评估时选择的默认规则类型。您也可以通过在**规则**页面上选择**创建规则**、**对话分析**来创建这样的规则。

1. 选择**提供 Contact Lens 呼叫后分析**或者**提供 Contact Lens 聊天后分析**作为事件源。下图突出显示了这两个选项。  
![\[通话后分析和聊天后分析选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/defined-conditions-evaluations.png)

1. 定义识别要自动评估的联系人的条件，然后选择 “**下一步**”。

   您可以用来识别评估表所适用的特定代理人或联系人集合的条件示例如下：
   + 座席
   + 座席层次结构
   + AI 代理
   + 队列
   + 发起方法

   此外，您还可以使用以下条件排除可能因连接或其他问题而提前结束的联系人：
   + 互动持续时间（例如，超过 30 秒）
   + 通话时间（例如，客户说话超过 10 秒）
   + 当问题不存在或对话期间没有已知的连接或设备问题时，可能会出现断开连接问题

1. 在 “**定义操作**” 页面上，提供类别名称来标识规则。

1. 选择**添加操作**，选择**提交自动评估**，然后选择要用于自动提交评估的表单。（如果您在激活表单时创建了规则，则已在页面上选择此操作。）

1. 选择**下一步**。审查后选择**保存并发布**。

添加规则后，规则将应用于添加规则后出现的新联系。当 Amazon Connect 对话分析分析对话时，将应用规则。

**重要**  
您无法将规则应用于过去存储的对话。

### 使用评估表规则触发自动评估
<a name="conversational-analytics-rule-2"></a>

1. 转到**规则**页面。依次选择**创建规则**、**评估表**。

1. 在**当**下，选择事件源为 **Contact Lens 评估结果可用**。

1. 选择**添加条件**以触发针对特定情况的评估。例如：
   + 另一个评估的某个特定答案，如下图所示。  
![\[另一个评估的某个特定答案。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/add-condition-1.png)
   + 另一个评估表的得分，如下图所示。  
![\[另一个评估表的得分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/add-condition-2.png)

1. 选择**添加操作**，选择**提交自动评估**，然后选择要用于自动提交评估的表单。

1. 选择**下一步**。审查后选择**保存并发布**。

## 常见问题 (FAQ)
<a name="auto-eval-faq"></a>

1.  **自动评估能否覆盖手动提交的评估？** 

    不能，自动评估不能覆盖手动提交的评估。如果已经存在评估，则该联系人的自动评估将失败，账户管理员可以在其中看到此类失败通知 CloudWatch。

1.  **如何识别自动评估？** 

    如果评估被自动提交，则会在**联系详细信息**页面上将其标记为“由 Contact Lens 自动化提交”。如果自动评估由评估人员编辑并重新提交，则“提交人”中将包含评估人员的姓名。

1.  **我能否使用多个评估表自动评估联系？** 

    能，您可以使用多个评估表自动提交对联系的评估。您需要创建多条规则，才能使用不同的评估表提交自动评估。

# 在 Contact Lens 规则中使用字词或短语条件
<a name="exact-match-pattern-match-semantic-match"></a>

在 Contact Lens **对话分析**规则中，您可以选择指定字词或短语条件。您可以为单词或短语选择“精确匹配”、“语义匹配”或“模式匹配”。本主题介绍了每种匹配类型。

**注意**  
所有三种匹配类型都不区分字母的大小写。例如，如果您指定的单词是“billing”，那么它也匹配包含单词“Billing”的转录。

## 如何使用精确匹配
<a name="exact-match"></a>

**精确匹配**是一种精确的单词匹配，可以是单数也可以是复数。

您可以使用以下任一方法添加关键字或短语：
+ 选择**输入关键字或短语**，然后在文本框中手动输入值。多个值可以用逗号分隔。  
![\[在用户界面中输入关键字或短语选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/exact-match-1.png)
+ 选择**从词库导入**，可从词库导入预定义的单词和短语。  
![\[用户界面中的“从词库导入”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/exact-match-2.png)

词库可分为两类：用户词库和系统词库。系统词库由 Amazon Connect 预先定义，用户不可编辑。用户可以创建、读取、更新和删除 (CRUD) 用户词库。有关更多信息，请参阅 [在 Contact Lens 中创建对话分析规则时管理词库](manage-word-collections.md)。

## 如何使用模式匹配
<a name="pattern-match"></a>

如果要匹配相关单词，请将一个星号 (\$1) 附加到相应的条件。例如，如果要匹配“neighbor”的所有变体（neighbors、neighborhood），则可以键入 **neighbo\$1**。

使用**模式匹配**，您可以指定以下内容：
+ **值列表**：当您希望构建包含可互换值的语句时，这种方法很有用。例如，语句可能为：

  *我打电话是想问一下有关 [“北京”、“伦敦”、“纽约”、“巴黎”或“东京”] 停电的事情*

  然后可在值列表中添加城市：北京、伦敦、纽约、巴黎、东京。

  使用值的优势在于，可以创建一个语句，而不是多个语句。这样可减少您需要创建的卡数量。
+ **数字**：此选项最常用于合规性脚本，或者，如果您想寻找一个上下文，您知道其中某处会有一个数字（0-9 组成的数字）时，此选项也很有用。这样，您就可以将所有条件放入一个语句中，而不是两个语句中。例如，座席合规性脚本中可能会说：

  *我从事此行业已有 [num] 年了，想和您讨论该主题。*

  或者客户可能会说：

  *我成为会员已有 [num] 年了。*
**注意**  
当从聊天或语音转录中提取数字时，只能识别出由 0-9 组成的数字。
对于语音联系，某些语言可能无法在[数字转录](https://docs.aws.amazon.com/transcribe/latest/dg/how-numbers.html)时把说出来的数字转换成数字格式。这意味着在这些情况下数字模式匹配可能会失效。有关支持数字转录的语言列表，请参阅《Amazon Transcribe 开发人员指南》**中的[支持的语言和特定于语言的功能](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html)。
+ **近似定义**：查找精确度可能低于 100% 的匹配项。您也可以指定不同单词之间的距离。例如，如果您要查找提及“credit”（信用）一词的联系人，但又不想看到任何提及单词“credit card”（信用卡）的情况，则可以定义一个模式匹配类别，以查找不在“card”（卡）的一个单词的距离内的“credit”（信用）一词。

  例如，近似定义可能为：

  *信用卡 [不在 1 个单词之内]*

**提示**  
有关模式匹配支持的语言列表，请参阅[人工智能功能](supported-languages.md#supported-languages-contact-lens)。

## 如何使用语义匹配
<a name="semantic-match"></a>

只有呼叫后/聊天后分析才支持语义匹配。
+ “intent”（意图）是一个表达示例。它可以是短语或句子。
+ 您最多可以在一张卡（组）中输入四个意图。
+ 建议在一张卡中使用语义相似的意图以获得最佳效果。例如，有“politeness”（礼貌）的类别。它包括两个意图：“greetings”（问候）和“goodbye”（道别）。建议将这些意图分为两张卡：
  + 卡 1：“How are you today”（您今天好吗）和“How’s everything going”（一切都好吗）。它们在语义上是相似的问候。
  + 卡 2：“Thanks for contacting us”（感谢您联系我们）和“Thank you for being our customer”（感谢您成为我们的客户）。它们在语义上是相似的道别。

  将意图分为两张卡比将意图全部放到一张卡中更准确。

# 使用生成式人工智能将联系与自然语言陈述进行语义匹配
<a name="natural-language-semantic-match"></a>

在 Contact Lens **对话分析**规则中，您可以选择指定**自然语言 - 语义匹配**条件，该条件使用生成式人工智能来查找与自然语言陈述相匹配的联系。自然语言 - 语义匹配的使用场合是：您要将联系与上下文特定条件（例如，客户的问题已在通话期间得到解决）进行匹配，或者可能的字词或短语太多而无法使用**字词或短语**条件时。

专业提示：如果您以前使用过字词或短语 - 语义匹配，则使用生成式人工智能驱动的自然语言 - 语义匹配。

## 如何使用自然语言 - 语义匹配
<a name="use-natural-language-semantic-match"></a>

****

1. 以拥有**规则**和**规则 - 生成式人工智能**权限的用户身份登录 Amazon Connect。

1. 在导航菜单上，依次选择**分析和优化**、**规则**。

1. 再依次选择**创建规则**、**对话分析**。  
![\[用户界面中的“从词库导入”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/create-natural-semantic-match-rule.png)

1. 选择“Contact Lens 通话后分析可用”或者“提供 Contact Lens 聊天后分析”。

1. 选择**添加条件**，然后选择**自然语言 - 语义匹配**。  
![\[用户界面中的“从词库导入”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/choose-natural-semantic-match.png)

1. 输入一句自然语言陈述，生成式人工智能可以通过与对话笔录进行匹配来评估真假。  
![\[用户界面中的“从词库导入”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/enter-natural-language-statement.png)

1. 添加任何其他条件，例如队列、自定义联系属性等。

1. 选择 “**下一步**” 并提供一个类别名称（不含空格），该名称将用于使用自然语言语句为联系人添加标签，例如，**CustomerAddressChange**。

1. 您可以指定其他操作，例如[生成任务](contact-lens-rules-create-task.md)、[发送电子邮件通知](contact-lens-rules-email.md)、[自动提交评估](contact-lens-rules-submit-automated-evaluation.md)等。

1. 选择**下一步**以审查规则，然后选择**保存并发布**规则。如果您还没有准备好发布规则，也可以选择**另存为草稿**。

## 使用语义匹配的准则
<a name="guidelines-semantic-match"></a>

以下列表详细阐述了如何最有效地使用语义匹配：
+ 该陈述应该是可以评估为真假的内容。
+ 自然语言 - 语义匹配仅使用对话转录。如果您想在匹配条件中使用其他联系属性（例如队列），则需要在规则中将这些属性指定为单独的条件。
+ 如果可能，请使用“座席”一词来代替“同事”、“员工”、“代表”、“倡导者”或“同事”等词语。同样，使用“客户”一词来代替“会员”、“来电者”、“访客”或“订阅用户”等词语。
+ 仅当您想检查座席或客户说的精确的话时，才使用双引号。例如，如果说明是检查座席是否说了“Have a nice day”，那么生成式人工智能就不会检测“Have a nice afternoon”。相反，自然语言陈述应该说：“座席祝客户拥有美好的一天”。

**用于语义匹配的示例陈述**
+ 客户想更改其订阅计划。
+ 客户对座席的支持表示感谢。
+ 客户表示希望终止其当前服务。
+ 客户要求进行后续互动。
+ 客户要求座席重复信息，表示缺乏理解。
+ 客户要求与座席的经理交谈。
+ 座席要求客户提供更多信息或进行验证，然后才给出明确的答案。
+ 座席提供了多种付款选项。
+ 座席向客户保证他们的来电非常重要，并请求客户再等待一段时间。
+ 座席解决了客户的所有问题。

# 在 Contact Lens 中创建对话分析规则时管理词库
<a name="manage-word-collections"></a>

*词库*是一组预先构建的单词和短语，在创建对话分析规则时可用于定义精确匹配的条件。向规则添加精确匹配的条件时，可以从下拉菜单中选择单词和短语列表。

## 所需的权限
<a name="word-collections-permissions"></a>

Contact Lens 规则 - 词库使用与 Contact Lens 规则相同的安全配置文件权限集。有关更多信息，请参阅 [Contact Lens 规则的安全配置文件权限](permissions-for-rules.md)。

## 如何访问词库管理页面
<a name="word-collections-how-to-access"></a>

1. 创建或更新对话分析规则时，请选择**精确匹配**条件卡片右上角的齿轮图标，如下图所示。  
![\[在用户界面中输入关键字或短语选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/word-collections-permissions-how-to-access-1.png)

1. 在**词库**管理页面上，您可以查看现有的词库并创建新的词库。  
![\[在用户界面中输入关键字或短语选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/word-collections-permissions-how-to-access-2.png)

## 如何创建用户词库
<a name="create-user-word-collections"></a>

****

1. 在**词库**管理页面上，选择**创建词库**。  
![\[在用户界面中输入关键字或短语选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/create-user-word-collections-1.png)

1. 输入词库的名称，添加单词和短语，然后选择**保存**。  
![\[在用户界面中输入关键字或短语选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/create-user-word-collections-2.png)

## 词库限制
<a name="word-collections-limits"></a>
+ Amazon Connect 的默认限制为每个实例 100 个用户词库。
+ 每个词库最多可包含 100 个单词或短语。
+ 每个单词或短语不超过 512 个字符。
+ 您只能管理用户词库。您不能管理或编辑系统词库。

# 在 Contact Lens 规则中输入脚本让座席遵守
<a name="enter-script-rule"></a>

如果您需要座席在客户通话中使用准确的措辞，可在 Contact Lens 规则中输入脚本。

要在规则中输入脚本，请输入短语。例如，如果在座席表示*感谢您成为会员。我们感谢您的惠顾*时您想突出显示，请输入两个短语：
+ “Thank you for being a member.”（感谢您成为会员。）
+ “We appreciate your business.”（我们感谢您的惠顾。）

要将规则应用于特定营业范围，请添加该规则适用的队列的条件或联系属性。例如，下图显示了一条规则，该规则适用于以下情况：代理人正在处理 BasicQueue 或 Billing and Payments 队列，客户购买汽车保险，代理位于西雅图。

![\[“新规则”页面，“字词或短语 - 准确匹配”分区，多个条件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules-3.png)


# Contact Lens 规则的安全配置文件权限
<a name="permissions-for-rules"></a>

要查看、编辑或添加自动分类规则，必须将您分配到具有**分析和优化: 规则**权限的安全配置文件中。

要查看、编辑或添加使用生成式人工智能的规则（使用**自然语言 - 语义匹配**条件），还必须向您的安全配置文件分配**分析和优化：规则 - 生成式人工智能**权限。

要查看座席姓名以便可将其添加到规则中，您的安全配置文件中需要**用户和权限: 用户 – 查看**权限。

要查看队列名称以便可将其添加到规则中，您的安全配置文件中需要**路由: 队列 – 查看**权限。

有关更多信息，请参阅 [在 Amazon Connect 中分配使用 Contact Lens 对话分析的权限](permissions-for-contact-lens.md)。

# 设计一个在 Contact Lens 的规则中使用联系属性的流
<a name="rules-task-contact-attributes"></a>

一个规则中最多可以包含 5 个联系属性。

实时联系分析会话开始时会检索联系属性，在此时检索的任何数据都将用于整个会话期间的规则评估。会话开始后进行的任何联系属性更新都不会被捕获。

您可以将流设计为使用您在规则中指定的联系属性，然后相应地路由任务。例如，呼叫或聊天会到达您的联络中心。当 Contact Lens 分析通话或聊天时，它检测到一个**合规性**违规。例如，为呼叫创建的联系记录包含类似于下图的信息。它显示 **“类别** = **合规**”，它有两个自定义联系人属性：**CustomerType**= **VIP**，**AgentLocation**= **NYC**。

![\[触发合规性规则时的联系记录。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-attributes-example1.png)


规则引擎可生成任务。任务的联系记录会从语音联系记录中继承联系属性，如下图所示。

![\[任务的联系记录，自定义联系属性。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-rules-attributes-example2.png)


语音联系记录显示为**上一个联系 ID**。

您在规则中指定的流应设计为使用联系属性并将任务路由到相应的所有者。例如，您可能希望将 **CustomerType = VIP** 的任务路由到特定的代理。

有关更多信息，请参阅 [使用联系属性](connect-contact-attributes.md)。

# 当 Contact Lens 分析对话时会将规则应用于新的联系
<a name="rules-applied-to-new-contacts"></a>

添加规则后，规则将应用于添加规则后出现的新联系人。当 Amazon Connect 对话分析分析对话时，将应用规则。

您无法将规则应用于过去存储的对话。

# 错误通知：当 Contact Lens 无法分析联系时
<a name="contact-lens-error-notifications"></a>

Contact Lens 有可能无法分析联系文件，即使在流上启用了分析。发生这种情况时，会使用 Amazon EventBridge 事件Contact Lens发送错误通知。

[尽最大努力](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)发出事件。

## 订阅 EventBridge 通知
<a name="contact-lens-error-notifications-subscribe"></a>

要订阅这些通知，请创建与以下内容相匹配的自定义 EventBridge 规则：
+ "source" = "aws.connect"
+ “detail-type”= “Contact Lens 分析状态更改”

您还可以添加到相应模式中，以便在发生特定事件代码时收到通知。有关更多信息，请参阅 *Amazon EventBridge 用户指南*中的[事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/filtering-examples-structure.html)。

通知的格式类似于以下示例：

```
{
    "version": "0", // set by CloudWatch Events
    "id": "55555555-1111-1111-1111-111111111111", // set by CloudWatch Events
    "source": "aws.connect",
    "detail-type": "Contact Lens Analysis State Change",
    "account": "111122223333",
    "time": "2020-04-27T18:43:48Z",
    "region": "us-east-1", // set by CloudWatch Events
    "resources": [
        "arn:aws:connect:us-east-1:111122223333:instance/abcd1234-defg-5678-h9j0-7c822889931e",
        "arn:aws:connect:us-east-1:111122223333:instance/abcd1234-defg-5678-h9j0-7c822889931e/contact/efgh4567-pqrs-5678-t9c0-111111111111"
    ],
    "detail": {
        "instance": "arn:aws:connect:us-east-1:111122223333:instance/abcd1234-defg-5678-h9j0-7c822889931e",
        "contact": "arn:aws:connect:us-east-1:111122223333:instance/abcd1234-defg-5678-h9j0-7c822889931e/contact/efgh4567-pqrs-5678-t9c0-111111111111",
        "channel": "VOICE",
        "state": "FAILED",
        "reasonCode": "RECORDING_FILE_CANNOT_BE_READ"
    }
}
```

## 事件代码
<a name="contact-lens-event-codes-listed"></a>

 下表列出了当 Contact Lens 无法分析联系时可能产生的事件代码。


| 事件原因代码 | 说明 | 
| --- | --- | 
| INVALID\$1ANALYSIS\$1CONFIGURATION  | 启动流时，Contact Lens 收到无效值，例如不受支持或无效的语言代码，或者加密行为不受支持的值。  | 
| RECORDING\$1FILE\$1CANNOT\$1BE\$1READ  | Contact Lens 无法获取录音文件。这可能是因为 S3 存储桶中不存在文件，或者权限存在问题。  | 
| RECORDING\$1FILE\$1TOO\$1SMALL  |  录音文件太小，无法进行分析（小于 105 毫秒）。 如果文件没有预期的格式，则会发生 INVALID 错误。空 JSON 也是一个意外的对象。  | 
|  RECORDING\$1FILE\$1TOO\$1LARGE  | 录音文件超过了分析持续时间限制。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/contact-lens-error-notifications.html)  | 
|  RECORDING\$1FILE\$1INVALID  | 录音文件无效。  | 
|  RECORDING\$1FILE\$1CANNOT\$1BE\$1READ  | Contact Lens 尝试读取录音文件时出错。  | 
|  RECORDING\$1FILE\$1EMPTY  | 录音文件为空。  | 
|  RECORDING\$1SAMPLE\$1RATE\$1NOT\$1SUPPORTED  | 音频文件的采样率不受支持。Contact Lens 目前支持采样率为 8kHz 的音频文件。这是 Amazon Connect 录音的采样率。  | 

# Amazon Connect 规则运行失败时发出错误通知
<a name="error-notifications-rule-fails-to-run"></a>

重要的是要知道生产环境中的特定规则操作何时失败，以及导致失败的原因。然后，您可以在将来主动缓解此类失败。

要实时了解失败的操作，您可以将 Amazon Connect 规则与亚马逊 EventBridge 事件集成。例如，当“创建任务”操作因**每个实例的并发活动任务数**的最大数量达到服务限额而无法运行时，您将收到通知。发生这种情况时，Amazon Connect 会使用亚马逊 EventBridge事件发送错误通知。

[尽最大努力](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)发出事件。

## 订阅 EventBridge 通知
<a name="rule-error-notifications-subscribe"></a>

要订阅这些通知，请创建与以下内容相匹配的自定义 EventBridge 规则：
+ "source" = "aws.connect"
+ “detail-type”= “Contact Lens 规则操作执行失败”

您还可以添加到相应模式中，以便在发生特定事件代码时收到通知。有关更多信息，请参阅 *Amazon EventBridge 用户指南*中的[事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/filtering-examples-structure.html)。

通知的格式类似于以下示例：

```
{
  "version": "0",
  "id": "8d122163-6c07-f8cb-06e7-373a1bcf8fc6",
  "source": "aws.connect",
  "detail-type": "Amazon Connect Rules Action Execution Failed",
  "account": "123456789012",
  "time": "2022-01-05T01:30:42Z",
  "region": "us-east-1",
  "resources": ["arn:aws:connect:us-east-1:123456789012:instance/cb54730f-5aac-4376-b2f4-7c822889931e"],
  "detail": {
    "ruleId": "7410c94b-21c2-4db0-a707-c6d751edbe8f",
    "actionType": "CREATE_TASK",
    "triggerEvent": "THIRD_PARTY",
    "instanceArn": "arn:aws:connect:us-east-1:123456789012:instance/cb54730f-5aac-4376-b2f4-7c822889931e",
    "reasonCode": "ResourceNotFoundException",
    "error": "ContactFlowId provided does not belong to connect instance",
    "additionalInfo": "{\n  \"message\": \"Not Found\",\n  \"code\": \"ResourceNotFoundException\",\n  \"statusCode\": 404,\n  \"time\": \"2022-01-03T20:23:07.073Z\",\n  \"requestId\": \"048e4403-71c1-47d6-96fc-825744f518e7\",\n  \"retryable\": false,\n  \"retryDelay\": 28.217537834500316\n}"
  }
}
```

## 支持的操作类型
<a name="supported-action-types-rules"></a>
+ `CREATE_TASK`
+ `GENERATE_EVENTBRIDGE_EVENT`
+ `SEND_NOTIFICATION`

有关 `ASSIGN_CONTACT_CATEGORY` 的信息，请参阅 [错误通知：当 Contact Lens 无法分析联系时 故障排除](contact-lens-error-notifications.md)。

## 支持的触发事件
<a name="supported-trigger-events"></a>
+ `REAL_TIME_CALL`
+ `REAL_TIME_CHAT`
+ `POST_CALL`
+ `POST_CHAT`
+ `THIRD_PARTY`

## 操作失败的原因代码
<a name="reason-codes-failed-actions"></a>

当操作失败时，错误通知服务会从支持的操作中收集原因代码。有关任务和 EventBridge 操作失败的原因代码的更多信息，请参阅以下主题：
+ 有关任务操作失败的原因代码，请参阅 *Amazon Connect **StartTaskContact**API 参考指南中 API* 主题中的[错误](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html#API_StartTaskContact_Errors)。
+ 有关 EventBridge 操作失败的原因代码，请参阅 *Amazon **PutEvents**API 参考指南中 EventBridge API* 主题中的[错误](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_Errors)。

# 使用 Amazon Connect 创建或管理规则时，为某些参数指定变量 APIs
<a name="contact-lens-variable-injection"></a>

当您使用 Amazon Connect APIs （例如[CreateRule](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateRule.html)或 [UpdateRule](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateRule.html)）以编程方式创建或管理规则时，您可以为某些参数指定变量。当触发操作时，将根据[EventSourceName](https://docs.aws.amazon.com/connect/latest/APIReference/API_RuleTriggerEventSource.html)参数的值在运行时解析变量。

例如，假设您正在设置任务操作，并且希望添加更多上下文。以下示例说明了如何能够使用变量注入在任务的 `Description` 字段中包含联系的 ID 和座席的 ID：
+ 客户对电话呼叫不满意。在与联系 `$.ContactLens.PostCall.ContactId` 中的座席 `$.ContactLens.PostCall.Agent.AgentId` 的对话过程中检测到脏话

当触发操作时，他的字符串将解析为“客户对电话呼叫不满意”。在与特工 12345678-1234-1234-1234-1234-1234-的对话中发现了一个脏话 87654321-1234-1234-1234-” EXAMPLEID012 EXAMPLEID345

下表列出了每个事件源，以及 JSONPath 用于支持变量注入的字段的。


| EventSourceName | JSONPath 参考 | 
| --- | --- | 
|  OnPostCallAnalysisAvailable  |  \$1.ContactLens.PostCall.ContactId \$1。 ContactLens。 PostCall.Agent。 AgentId \$1。 ContactLens。 PostCall.Queue。 QueueId  | 
|  OnRealTimeCallAnalysisAvailable  |  \$1.ContactLens.RealTimeCall.ContactId \$1。 ContactLens。 RealTimeCall.Agent。 AgentId \$1。 ContactLens。 RealTimeCall.Queue。 QueueId  | 
|  OnPostChatAnalysisAvailable  |  \$1.ContactLens.PostChat.ContactId \$1。 ContactLens。 PostChat.Agent。 AgentId \$1。 ContactLens。 PostChat.Queue。 QueueId  | 
|  OnSalesforceCaseCreate  |  \$1。 ThirdParty.Salesforce。 CaseCreate。 CaseNumber \$1。 ThirdParty.Salesforce。 CaseCreate.Name \$1。 ThirdParty.Salesforce。 CaseCreate.Email \$1。 ThirdParty.Salesforce。 CaseCreate.Phone \$1。 ThirdParty.Salesforce。 CaseCreate. 公司 \$1。 ThirdParty.Salesforce。 CaseCreate.Type \$1。 ThirdParty.Salesforce。 CaseCreate。原因 \$1。 ThirdParty.Salesforce。 CaseCreate.Origin \$1。 ThirdParty.Salesforce。 CaseCreate. 主题 \$1。 ThirdParty.Salesforce。 CaseCreate。优先级 \$1。 ThirdParty.Salesforce。 CaseCreate。 CreatedDate \$1。 ThirdParty.Salesforce。 CaseCreate。描述  | 
|  OnZendeskTicketCreate  |  \$1。 ThirdParty.Zendesk。 TicketCreate.Id \$1。 ThirdParty.Zendesk。 TicketCreate。优先级 \$1。 ThirdParty.Zendesk。 TicketCreate。 CreatedAt  | 
|  OnZendeskTicketStatusUpdate  |  \$1。 ThirdParty.Zendesk。 TicketStatusUpdate.Id \$1。 ThirdParty.Zendesk。 TicketStatusUpdate。优先级 \$1。 ThirdParty.Zendesk。 TicketStatusUpdate。 CreatedAt  | 

# 搜索 Contact Lens 分析的对话
<a name="search-conversations"></a>

您可以基于以下条件搜索已分析并转录的录音：
+ 发言者（座席或客户）
+ 关键词
+ 情绪得分
+ 非通话时间（仅适用于通话）
+ 响应时间（仅适用于聊天）

此外，您还可以搜索属于特定联系类别的对话（也就是说，对话已根据说出的关键字和短语进行了分类）。

以下各节介绍了这些标准。

**重要**  
当联系上启用了 Contact Lens 以及通话或聊天结束**并且**座席完成了联系后续工作（ACW）后，Contact Lens 会分析（对于通话，还包括转录）座席与客户对话的录音。座席必须先选择**关闭联系**。  
只有当启用了 Contact Lens 时，系统才会对聊天转录建立搜索索引；如果 Contact Lens 未启用，则聊天转录无法被搜索。

## 用于搜索对话所需的权限
<a name="security-profile-permissions-for-search"></a>

在可搜索对话之前，您需要在安全配置文件中拥有以下权限。它们允许您进行所需类型的搜索。
+ 启用以下权限之一以访问**联系搜索**页面：
  + **联系搜索**。允许您搜索所有联系。
  + **查看我的联系**：允许您仅搜索您作为座席处理的联系。
+ **按对话特征搜索联系**。这包括非通话时间、情绪得分和联系类别。
+ **按关键字搜索联系人**

有关更多信息，请参阅 [分配权限](permissions-for-contact-lens.md)。

## 搜索单词或短语
<a name="keyword-search"></a>

要进行关键词搜索，请Contact Lens使用 Amazon OpenSearch 服务中的`standard`分析器。此分析器不区分大小写。例如，如果您输入 *thank you for your business 2 CANCELLED Flights*，搜索将查找：

 [thank, you, for, your, business, 2, cancelled, flights]

如果您输入 *"thank you for your business", two, "CANCELLED Flights"*，搜索将查找：

 [thank you for your business, two, cancelled flights]

**在对话中搜索单词或短语**

1. 在 Amazon Connect 中，使用已分配**CallCenterManager**安全配置文件或启用**按关键字搜索联系人**权限的用户账户登录。

1. 选择**分析和优化**、**联系人搜索**。

1. 在**筛选条件**分区中，指定要搜索的时间段，并指定通道。
**提示**  
按日期搜索时，您一次最多可以搜索 8 周。

1. 选择**单击此处添加筛选条件**，然后在下拉菜单中选择**单词或短语**。  
![\[“联系搜索”页面，“筛选条件”分区，“添加筛选条件”下拉菜单，“单词或短语”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-search-words-phrases.png)

1. 在**使用者**分区中，选择要搜索对话的哪一部分。注意以下几点：
   + **系统**适用于聊天，其中，参与者可能是 Lex 自动程序或提示。
   + 要搜索所有参与者使用的单词或短语，请选择**座席**、**客户**、**系统**。
   + 如果未选中任何框，则表示搜索任何参与者使用的单词或短语。

1. 在**逻辑**中，从以下选项中进行选择：
   + 选择**任意匹配**可返回脚本中包含任意单词的联系。

     例如，以下查询表示匹配 (hello OR cancellation OR "example airline")。而且，由于未选中**使用者**框，这意味着“查找任何参与者使用过任何这些单词的联系”。  
![\[“单词或短语”对话框，“任意匹配”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/match-any.png)
   + 选择**全部匹配**可返回脚本中包含所有单词的联系。

     例如，以下查询表示匹配 ("thank you for your business" AND cancellation AND "example airline")。而且，由于所有参与者框都处于选中状态，这意味着“查找所有参与者都使用了所有这些单词和短语的联系”。  
![\[“单词或短语”对话框，“全部匹配”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/match-all.png)

1. 在**单词或短语**分区中，输入要搜索的单词，以逗号进行分隔。如果输入短语，请用引号将其引起来。

   您最多可以输入 128 个字符。

## 搜索情绪得分或评估情绪转变
<a name="sentiment-search"></a>

使用 Contact Lens，您可以在对话中搜索评分范围在 -5（最消极）到 \$15（最积极）之间的情绪得分或情绪转变。这使您能够识别通话为什么良好或不佳的模式和因素。

![\[“联系搜索”页面，“情绪得分”筛选条件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-sentiment-score-shift.png)


例如，假设您要识别并调查客户情绪最终是负面的所有联系。您可以搜索情绪得分 **<=**（小于或等于）-1 的所有联系。

有关更多信息，请参阅 [调查情绪得分](sentiment-scores.md)。

**搜索情绪得分或评估情绪转变**

1. 在 Amazon Connect 中，使用已分配**CallCenterManager**安全配置文件或启用**按对话特征搜索联系人**权限的用户账户登录。

1. 在**联系搜索**页面上，指定您是否需要客户或座席所说的单词或短语的情绪得分。

1. 在**得分类型分析**中，指定要返回的分数类型：
   + **情绪得分**：此选项将返回客户或座席的对话部分的平均得分。

     除了搜索当座席或客户联系时的情绪得分外，您还可以按客户何时处于以下状态来筛选搜索：
     + **正在和座席聊天**
     + **未在和座席聊天**：这是客户与自动程序聊天、提示和排队时间。  
![\[“情绪得分”筛选条件，“参与者”下拉菜单，“客户未在和座席聊天”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-search-sentiment-participant.png)
   + **情绪转变**：确定客户或座席在联系期间的情绪变化。

     例如，下图显示一个搜索联系的示例，其中，客户的情绪得分从小于等于 -1 开始，以大于等于 \$11 结束。此外，客户正在与在场的座席聊天。  
![\[“情绪得分”筛选条件，“情绪转变”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-search-sentiment-score.png)

## 搜索非说话时间
<a name="nontalk-time-search"></a>

为了帮助您识别需要调查的通话，您可以搜索非说话时间。例如，您可能希望查找非说话时间大于 20% 的所有通话，然后对其进行调查。

非说话时间包括保持时间和两个参与者都超过 3 秒没有说话的任何无声时间。无法自定义此持续时间。

使用下拉箭头来指定是要在对话中搜索非说话时间的持续时间还是百分比。这些选项如下图所示。

 有关如何使用此指标的信息，请参阅[调查非通话时间](non-talk-time.md)。

![\[“非通话时间”筛选条件，“持续时间”和“百分比”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/non-talk-time.png)


## 根据响应时间搜索聊天对话
<a name="response-time-search"></a>

可依据以下内容搜索：
+ 座席或客户在聊天期间的平均响应时间
+ 座席或客户在聊天期间的最长响应时间

您可以指定持续时间是小于、大于或等于特定时间。有关如何使用此指标的信息，请参阅[在 Contact Lens 中调查聊天期间的响应时间](response-time.md)。

有关支持的最短和最长响应时间，请参阅[Amazon Connect 规则功能规范](feature-limits.md#rules-feature-specs)。

下图显示了对座席平均响应时间大于或等于 1 分钟的联系的搜索情况。

![\[“响应时间”筛选条件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/response-time.png)


## 搜索联系类别
<a name="contact-category-search"></a>

1. 在**联系人搜索**页面上，选择**添加筛选条件**、**联系类别**。

1. 在**联系类别**框中，使用下拉框列出所有可供您搜索的当前类别。或者，如果您开始键入，则输入将用于匹配现有类别并筛选不匹配的类别。
   + **任意匹配**：搜索与任何选定类别匹配的联系。
   + **全部匹配**：搜索与全部选定类别匹配的联系。
   + **无匹配**：搜索与任何选定类别不匹配的联系。请注意，这样只会返回经过 Contact Lens 对话分析功能分析过的联系。

   下图显示了一个下拉菜单，其中列出了所有当前类别。  
![\[“联系类别”筛选条件，“全部匹配”选项，联系类别。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-search-contact-category2.png)

# 使用 Contact Lens 审核分析的对话
<a name="review-transcripts"></a>

通过使用 Amazon Connect Contact Lens，您可以审核转录并确定感兴趣的联系部分。您无需收听整个通话或阅读完整的聊天转录即可了解其中的有趣之处。您可以专注于音频或转录的特定部分。无论哪里有兴趣点，都会为您突出显示这两个部分。

例如，您可能会扫描联系转录，并看到表示客户转变的红色情绪表情符号，表明客户正在表达负面情绪。您可以选择时间戳并跳转到录音或聊天互动的那一部分。

下图显示了一个语音联系示例。

![\[对语音联系的分析。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-category-hit.png)


下图显示了一个聊天联系示例。**系统消息**适用于聊天，其中，参与者可能是 Lex 自动程序或提示。

![\[对聊天联系的分析。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-category-hit-chat.png)


**审核分析的对话**

1. 使用在安全配置文件中具有**联系人搜索**和 **Contact Lens – 对话分析**权限的用户账户登录 Amazon Connect。

1. 在 Amazon Connect 中，依次选择**分析和优化**、**联系搜索**。

1. 使用页面上的筛选条件来缩小搜索联系的范围。对于日期，您一次最多可以搜索 14 天。有关搜索联系的更多信息，请参阅[搜索已完成和正在进行的联系](contact-search.md)。

1. 选择联系 ID 以查看该联系人的联系详细信息。

1. 在**联系详细信息**页面的**录音**和**转录**分区中，查看所说或所写的内容、时间以及他们的情绪。

1. 对于通话，如果需要，请选择收听录音的播放提示。或者，点击录音的相关部分以收听您感兴趣的部分。

1. 对于聊天，如果需要，请使用图表导航到转录中您感兴趣的部分。

# 在 Amazon Connect Contact Lens 中浏览转录和音频
<a name="turn-by-turn-transcript"></a>

出于质量保证的考虑，主管通常需要审查许多座席的联系情况。 turn-by-turn笔录和情绪数据可帮助您快速识别并导航到录音中您感兴趣的部分。

下图的联系记录显示的功能使您能够快速浏览转录和音频以查找需要注意的领域。虽然图片显示的是语音联系，但同样的功能也适用于聊天联系。

![\[对语音联系的分析。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-navigate-transcripts2.png)


1. 使用 “[显示关键要点](#contact-lens-contact-summarization)” 仅查看问题、结果、 and/or 措施项。

1. 对语音联系使用[自动滚动](#autoscroll)，在音频或转录中跳转。这两者始终保持同步。

1. 扫描[情绪表情符号](#sentiment-emojis)，以快速识别您希望阅读或收听的转录部分。

1. 选择时间戳以跳转到录音或转录的相应部分。时间戳是从联系人内的客户互动的开始计算的。

## 显示主要亮点
<a name="contact-lens-contact-summarization"></a>

查看长达数百行的联系人转录可能会很耗时。为了使此过程更快、更高效，Contact Lens 为您提供了查看主要亮点的选项。这些亮点仅显示 Contact Lens 在转录中发现了问题、结果或操作项的那些行。
+ **问题**表示呼叫驱动因素。例如，“我正在考虑升级到您的在线订阅计划。” 
+ **结果**表示联系的可能性结论或结果。例如，“根据您当前的计划，我会推荐我们现有的在线基本知识计划。”
+ **操作项**表示座席采取的操作项。例如，“请留意一封包含报价的电子邮件。我会尽快把它发送给您。”

每位联系人只能有一个问题、一个结果和一个操作项。并非所有联系人都同时拥有这三项。

**注意**  
如果 Contact Lens 显示消息 **There are no key highlights for this transcript**，则表示未发现任何问题、结果或操作项。

您无需配置主要亮点。它 out-of-the-box无需对机器学习模型进行任何训练即可运行。

## 开启自动滚动以同步转录和音频
<a name="autoscroll"></a>

对于语音联系，使用**自动滚动**在音频或转录之间跳转，这两者始终保持同步。例如：
+ 当您收听对话时，转录会随之移动，向您显示情绪表情符号和任何检测到的问题。
+ 您可以滚动浏览转录，然后选择相应轮次的时间戳以收听录音中的特定点。

由于音频和转录是一致的，因此转录可帮助您了解座席和客户在说什么。这在以下情况下尤其有用：
+ 音频不好，可能是由于连接问题造成的。转录可以帮助您了解所说的内容。
+ 有一种方言或语言变体。我们的模型接受了不同的口音训练，因此转录可以帮助您了解所说的内容。

## 扫描情绪表情符号
<a name="sentiment-emojis"></a>

情绪表情符号可以帮助您快速扫描转录，这使您可以收听对话的相应部分。

例如，当您看到客户转变的红色表情符号，然后看到绿色表情符号时，可以选择相应时间戳以跳至对话的特定点，以查看该座席是如何帮助客户的。

## 点击或单击类别标签以浏览转录
<a name="category-navigation"></a>

当你点击或点击类别标签时，会Contact Lens自动导航到脚本 point-of-interests中的相应标签。互动的可视化中还有类别标记，用于指示录音文件的哪一部分具有与该类别相关的表达。

下图显示了聊天的**联系详细信息**页面的一部分。

![\[聊天转录，类别，转录的相关部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-category-tag-navigation.png)


# 在 Amazon Connect 中查看由生成式人工智能驱动的联系后摘要
<a name="view-generative-ai-contact-summaries"></a>

**注意**  
**由 Amazon Bedrock** 提供支持： AWS 实现[自动滥用检测](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html)。由于生成式人工智能驱动的联系后摘要是在 Amazon Bedrock 上构建的，因此用户可以充分利用 Amazon Bedrock 中实施的控制措施，以确保安全且负责任地使用人工智能（AI）。

通过生成式人工智能驱动的联系后摘要，您可以节省宝贵的时间，这些摘要能够以结构化、简洁且易于阅读的格式提供客户对话中的基本信息。您可以快速查看摘要并了解背景，而不必通读转录和监听通话。

您可以通过多种方式访问生成式人工智能驱动的联系后摘要：
+ **代理**可以在联系人控制面板 (CCP) 上访问语音和电子邮件联系人的联系后摘要。他们可以利用摘要快速完成联系后续工作 (ACW)。要了解座席的体验，请参阅 [查看 CCP 上的联系后摘要](#summaries-on-agentws)。
+ **经理和主管**可以在 Amazon Connect 管理员网站、联系人**详细信息和**联系人**搜索页面上访问语音、聊天和电子邮件联系**人的摘要。他们可以使用摘要快速了解他们正在审查的联系人的问题和结果。要了解经理的体验，请参阅 [在 Amazon Connect 管理员网站上查看联系后摘要](#summaries-on-website)。
+ **开发人员**可以直接将摘要从提取[APIs](contact-lens-api.md)到第三方系统中。它们还可以[与 Amazon Kinesis Data Streams 集成](contact-analysis-segment-streams.md)，实现流式传输。当负载较高，而您又希望避免 TPS 节流时，后一种选择非常有用。

**Topics**
+ [启用联系后摘要](#gen-ai-getstarted)
+ [为电子邮件启用联系人摘要](#enable-email-summaries)
+ [查看 CCP 上的联系后摘要](#summaries-on-agentws)
+ [在 Amazon Connect 管理员网站上查看联系后摘要](#summaries-on-website)
+ [为什么不生成摘要](#summary-not-generated)

## 启用联系后摘要
<a name="gen-ai-getstarted"></a>

**要在座席的 CCP 上启用语音联系的联系后摘要**

1. 将[设置录音和分析行为](set-recording-behavior.md)数据块添加到流中。

1.  配置数据块的**属性**页面：

   1. 将**通话录音**设置为**开启**。选择**座席和客户**，如下图所示。  
![\[通话录音配置的“设置录音和分析”行为数据块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/call-recording-summaries.png)

   1. 将**分析**设置为**开启**。

   1. 选择**启用语音分析**。

   1. 选择**实时分析和通话后分析**。

   1. 在 **Contact Lens 生成式人工智能功能**下，选择**联系后摘要**。

   下图显示了 “**属性**” 页面的 “**分析**” 部分，该页面配置为在座席的 CCP 上启用联系后摘要：  
![\[“设置录音和分析行为”数据块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/set-block-post-contact-summaries-ccp.png)

1. 为座席的安全配置文件分配以下权限：
   + **联系人控制面板（CCP）– Contact Lens 数据 - 访问**
   + **分析和优化 - Contact Lens–联系后摘要 - 查看**
   + **分析和优化 - 记录的对话（加密的）**、**查看记录的对话（未加密的）**、**全部**或**访问**权限（建议最低权限为**访问**）
   + **分析和优化：查看我的联系人**或**搜索联系人**

**在 Amazon Connect 管理员网站上启用联系后摘要**

1. 配置 [设置录音和分析行为](set-recording-behavior.md) 的**属性**页面如下：

   1. 将**分析**设置为**开启**。

   1. 选择**启用语音分析**、**启用聊天分析**或两者。

      如果您选择语音分析，则任选其一：
      + **通话后分析**
      + **实时和通话后分析**：如果用户想要查看正在进行的联系的联系后摘要（即座席仍在 ACW 中，但通话已经结束），请选择此选项。

   1. 联系后摘要不支持细粒度加密。当选择了细粒度加密时，联系后摘要会将文本中识别出的所有个人身份信息（PII）进行加密，并用 [PII] 标签替换。

   1. 在 **Contact Lens 生成式人工智能功能**下，选择**联系后摘要**。

1. 为用户的安全配置文件分配以下权限：
   + **分析和优化：联系人搜索**或**查看我的联系人**
   + **分析和优化 - Contact Lens–联系后摘要 - 查看**
   + **分析和优化 - 记录的对话（加密的）**、**查看记录的对话（未加密的）**、**全部**或**访问**权限（建议最低权限为**访问**）

## 为电子邮件启用联系人摘要
<a name="enable-email-summaries"></a>

**为电子邮件联系人启用联系人摘要**

1. 在您的入站电子邮件流中添加[设置记录、分析和处理行为](set-recording-analytics-processing-behavior.md)屏蔽。

1. 配置数据块的**属性**页面：

   1. 对于 “**频道**”，选择 “**电子邮件**”。

   1. 将**分析**设置为**开启**。

   1. 选择 “**启用电子邮件分析**”。

   1. 在**Contact Lens生成式 AI 功能**下，选择**联系人摘要**。

1. 选择**保存**。

## 查看 CCP 上的联系后摘要
<a name="summaries-on-agentws"></a>

为了帮助座席完成联络后工作 (ACW)，Amazon Connect 在语音联络的 CCP 上显示了生成式人工智能驱动的联络后摘要。下图显示了一个示例摘要。

![\[“联系人控制面板”显示联系后续工作（ACW）期间生成式人工智能驱动的联系后摘要。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/genai-summary-ccp1.png)


1. 座席在 ACW。他们可以在页面顶部显示“生成摘要”横幅的同时浏览文字记录。

1. 当座席正在浏览时，会显示一条消息，说明摘要已可用。如果座席单击横幅，CCP 会在显示摘要时滚动到页面顶部。

1. 座席单击横幅后，横幅就会消失。

**注意**  
基于人工智能的生成式联系后摘要支持 CCP 上的语音、聊天和电子邮件联系人。

## 在 Amazon Connect 管理员网站上查看联系后摘要
<a name="summaries-on-website"></a>

为了帮助经理和其他用户查看联系人，他们可以在 Amazon Connect 管理员网站上查看联系后摘要。下图显示了在**联系详细信息**页面上生成式人工智能驱动的联系后摘要的示例。

![\[“联系详细信息”页面显示生成式人工智能驱动的联系后摘要，其中包含有关客户对话的结构化信息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/genai-summary2.png)


下图显示了**联系搜索**页面上生成式人工智能驱动的联系后摘要示例。

![\[“联系人搜索”页面以列表视图格式显示多个客户交互的生成式人工智能驱动的联系后摘要。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/genai-summary-contactsearch2.png)


每个联系只能生成一个摘要。并非所有联系都会生成摘要；有关更多信息，请参阅 [为什么不生成摘要](#summary-not-generated)。

## 为什么不生成摘要
<a name="summary-not-generated"></a>

如果未生成摘要，则会在**联系详细信息**和**联系人搜索**页面上显示一条错误消息。此外，错误 ReasonCode 的 for 出现在Contact Lens输出文件的`ContactSummary`对象中，类似于以下示例：

```
"JobDetails": {
    "SkippedAnalysis": [
      {
        "Feature": "POST_CONTACT_SUMMARY",
        "ReasonCode": "INSUFFICIENT_CONVERSATION_CONTENT"
      }
    ]
  },
```

以下是在未生成摘要的情况下，联系信息或搜索页面可能显示的错误信息列表。同时列出的还有出现在 Contact Lens 输出文件中的相关原因代码。
+ **由于超出并发摘要的配额，无法生成摘要**。 ReasonCode: `QUOTA_EXCEEDED`。

  如果您收到此消息，建议您[提交一份工单](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-connect)，以增加[并发联系后摘要作业](amazon-connect-service-limits.md#contactlens-quotas)配额。
+ **由于符合条件的对话不足，无法生成摘要**。 ReasonCode: `INSUFFICIENT_CONVERSATION_CONTENT`。

  语音方面，每个参与者必须发表 1 条语音。聊天时，每个参与者必须发送 1 条支持类型的消息。支持的消息类型为 `text/plain` 和 `text/markdown`。其他类型的消息（例如 `application/json`）不用于摘要。
+ Cont@@ **act Flow 的 “ PostContact 摘要” Contact Lens 配置无效，例如语言代码不支持或语言代码无效**。 ReasonCode: `INVALID_ANALYSIS_CONFIGURATION`。

  如果启用的摘要与其他 Contact Lens 设置不兼容，特别是为不支持的区域设置启用了该功能，则会返回此错误。
+ **无法提供摘要，因为它不符合安全和质量的要求。** ReasonCode: `FAILED_SAFETY_GUIDELINES`。

  在 Amazon Connect 中处理并发的通话后摘要任务时可能会出现这个错误。Amazon Connect 将联系数据传递给 Amazon Bedrock 以生成摘要。如果联系数据包含未加密的个人身份信息（PII），则会触发 Amazon Bedrock 的安全准则。因此，Amazon Bedrock 拒绝生成摘要以保护敏感信息，从而导致 Amazon Connect 中出现此错误。
+ 内部系统错误。 ReasonCode: `INTERNAL_ERROR`

# 在联系人控制面板 (CCP) 中查看客户对话的关键要点
<a name="key-highlights"></a>

查看长达数百行的联系人转录可能会很耗时。为了使这一过程更快、更高效，Contact Lens 会自动识别和标记客户对话的关键部分，然后显示对话的重点内容。经理可以在**联系详细信息**页面上查看这些亮点。座席可以在联系人控制面板（CCP）中查看亮点。

**提示**  
有关支持的语言列表，请参阅 [Amazon Connect Contact Lens 支持的语言](supported-languages.md#supported-languages-contact-lens)主题中的*主要亮点*列。

启用 Contact Lens 后，它会识别客户对话的关键部分，为这些部分分配标签（例如问题、结果或操作项），并显示客户对话的重点内容。您可以展开亮点以查看完整的联系转录。

以下示例显示了**联系详细信息**页面上的主要亮点。

![\[联系详细信息页面上的主要亮点。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-key-highlights.png)


1. 根据需要开启和关闭**显示主要亮点**。

1. **问题**表示联系驱动因素。例如，“我正在考虑升级到您的在线订阅计划。” 

1. **操作项**表示座席采取的操作项。例如，“请留意一封包含报价的电子邮件。我会尽快把它发送给您。”

1. **结果**表示联系的可能性结论或结果。例如，“根据您目前的计划，我推荐我们的在线基本知识计划。”

联系只有一个问题、一个结果和一个操作项。有些联系可能三者都不具备。

**注意**  
当 Contact Lens 无法识别问题、结果或操作项时，您会看到消息 **There are no key highlights for this transcript**。

要了解座席的体验（即转录的哪一部分会显示在联系人控制面板（CCP）中，以及何时显示），请参阅[为主要亮点设计流](enable-analytics.md#call-summarization-agent)。

# 使用 Amazon Connect Contact Lens 中的主题检测发现联系问题
<a name="use-theme-detection"></a>

使用主题检测，从成千上万的客户互动中发现以前未知或新出现的联系主题。例如，您可以找出客户外联的常见原因，例如“取消预留”或“延迟订单”。然后，您可以采取适当的措施，通过加快问题解决、改进 IVR 选项、知识库文章和座席培训来改善客户体验。

## 需要了解的重要事项
<a name="important-td"></a>
+ 主题检测功能可在以下 Amazon Connect Contact Lens 支持的语言中使用：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/use-theme-detection.html)
+ 主题检测功能在 2023 年 1 月 30 日当天或之后创建的联系中受支持。
+ 只有当您保存的搜索包含至少 300 个带有由 Contact Lens 检测出的问题的联系时，才会启用**生成主题报告**按钮。
+ 主题检测报告是为最近的 3,000 个联系而生成的。
+ 主题检测报告将在创建后保留 30 天可用。30 天后，这些报告将从数据库中删除且无法检索。
+ 已保存搜索的最新 20 个主题报告可在**查看主题报告**下拉菜单中找到，如下图所示。  
![\[“联系搜索”页面，“查看主题报告”下拉菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-view-theme-reports.png)

## 如何生成主题报告
<a name="generate-theme-report"></a>

1. 使用具有以下安全配置文件权限的账户登录 Amazon Connect：
   + **联系搜索 – 访问**
   + **Contact Lens - 主题检测 - 创建**
   + **Contact Lens - 主题检测 - 查看**

1. 在 Amazon Connect 的左侧导航菜单中，选择**分析和优化**、**联系搜索**。

1. 在**联系人搜索**页面上，应用筛选条件以选择一组已由 Contact Lens 分析过的联系。
**重要**  
您的搜索查询必须返回至少 300 个带有由 Contact Lens 检测出的问题的联系。否则，将不会启用**生成主题报告**按钮。

1. 选择**保存搜索**以保存您的结果。为您的搜索分配一个名称。

1. 选择**生成主题报告**。

   Contact Lens 应用机器学习来自动对有类似问题的联系进行分组。生成报告后，横幅会显示主题报告的链接。下图中显示了一个示例横幅。  
![\[“联系搜索”页面，主题检测横幅。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-theme-detection-banner.png)

1. 单击或点击主题报告的链接。

   此时将显示主题报告。其中包括主题标签和联系人列表，如下图所示。  
![\[包含多个主题标签的主题报告。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-theme-detection-drilldown.png)

1. 单击或点击主题标签可查看关联的联系人、收听特定录音以及阅读转录以进行更深入的分析。

# 使用 Contact Lens 调查联系对话期间的情绪得分
<a name="sentiment-scores"></a>

## 什么是情绪得分？
<a name="what-are-sentiment-scores"></a>

情绪分数是对文本的分析，以及对文本是主要包含正面、负面还是中性语言的评级。主管可以使用情绪得分来搜索对话，并识别与不同程度的客户体验（正面或负面）相关的联系。它帮助主管识别需要调查的联系。

您可以查看整个对话的情绪得分，以及整个联系的情绪趋势。

## 如何调查情绪得分
<a name="how-to-use-sentiment-scores"></a>

在努力改善联络中心时，您可能需要重点关注以下内容：
+ 以正面情绪得分开始但以负面得分结束的联系人。

  例如，如果您想重点关注一组有限的联系人以进行质量保证采样，则可以查看那些您知道客户一开始拥有正面情绪但最终拥有负面情绪的联系人。这表明他们离开谈话时对某些事情感到不满。
+ 以负面情绪得分开始但以正面得分结束的联系人。

  分析这些联系人将帮助您确定可以在联络中心再现哪些体验。您可以与其他座席分享成功的技术。

观察情绪进展的另一种方法是查看情绪趋势线。随着联系的进行，您可以查看客户情绪的变化。例如，下图显示了一段对话，其情绪得分在对话开始时非常低，随后上升，然后在对话结束时又再次下降。

![\[客户情绪趋势。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-sentiment-trend.png)


有关更多信息，请参阅 [搜索情绪得分或评估情绪转变](search-conversations.md#sentiment-search)。

## 如何确定情绪得分
<a name="how-sentiment-scores-are-determined"></a>

Amazon Connect Contact Lens 会分析对话中发言者每一轮次的情绪是“积极”、“消极”还是“中性”。然后，它会考虑每个参与者轮次的以下两个因素，以便为每个通话周期分配一个介于 -5 到 \$15 之间的得分：
+ 频率。情绪为正面、负面或中性的次数。
+ 情绪倾向。相同情绪的连续轮次。

总体情绪得分是在通话的每个部分中所分配得分的平均值。

# 使用 Amazon Connect Contact Lens 调查通话期间的无人讲话时间
<a name="non-talk-time"></a>

## 什么是非通话时间？
<a name="what-is-non-talk-time"></a>

Amazon Connect Contact Lens 还可识别通话中*无人讲话时间*******的时长。非通话时间等于保持时间，加上两个参与者都超过 3 秒没有说话的任何静默时间。无法自定义此持续时间。

下图显示了**联系详细信息**页面上非通话时间数据的位置。

![\[“联系详细信息”页面，“通话时间”分区，非通话时间数据。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-nontalk-time-overview.png)


## 如何调查非通话时间
<a name="how-to-investigate-non-talk-time"></a>

非通话时间可以帮助您识别进展不佳的通话。这可能是因为：
+ 客户提出您的联络中心不熟悉的问题。
+ 座席要花费很长时间才能有所行动，但他们训练有素。这表明座席所使用的工具可能存在问题。例如，这些工具的响应速度不够快或不易于使用。
+ 座席没有现成的答案，但他们都是新手。这表明他们需要更多的培训。

您可以决定是否重点关注这些联系人，以改善您的联络中心。例如，您可以转至音频的相应部分，然后查看转录以了解发生了什么。

 在以下示例中，当座席搜索呼叫方的行程 ID 时出现了非通话时间。这可能表明座席的工具存在问题。或者，如果座席是新手，则他们需要更多的培训。

![\[联系人录音和转录，非通话时间的位置。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-non-talk-time-transcript.png)


有关更多信息，请参阅 [搜索非说话时间](search-conversations.md#nontalk-time-search)。

# 在 Contact Lens 中调查聊天期间的响应时间
<a name="response-time"></a>

使用响应时间指标来了解座席或客户在聊天联系期间的响应情况。

Contact Lens 计算以下指标：
+ **座席问候时间**。这是座席的第一响应时间，即座席加入聊天后与客户互动的速度。例如，如果客户在对话开始时有负面情绪，则较长的第一响应时间可以解释这一点。
+ **座席平均响应时间**和**客户平均响应时间**。座席响应时间可帮助您根据组织的基准检查座席的绩效。
+ **座席最长响应时间**和**客户最长响应时间**。

  客户的最长响应时间可以解释座席的响应时间。例如，如果客户在五分钟内没有回复，然后发送一条消息，则座席可能需要花费比平时更长的时间才能回复，因为他们同时要处理其他聊天。

建议结合可显示对话和参与者情绪差距的互动图表来检查响应时间指标。

您可以单击或点击图表上的最长响应时间值，以定向到转录中的关联消息。

下图的**联系详细信息**页面显示了聊天对话的指标。请注意，**座席问候时间** = 座席加入聊天后，他们多久才发送第一响应。

![\[“联系详细信息”页面，聊天指标。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contactlens-contactdetails-chat1b.png)


有关更多信息，请参阅 [根据响应时间搜索聊天对话](search-conversations.md#response-time-search)。

# 使用 Contact Lens 调查通话中座席和客户的音量
<a name="contact-lens-loudness"></a>

音量得分用于衡量客户或座席在通话过程中说话的音量。Contact Lens 会展示对话分析，让您识别客户或座席可能正在大声说话且带有负面情绪的具体位置。

## 如何使用音量分数
<a name="investigate-loudness-scores"></a>

建议将音量分数与情绪结合使用。查找对话中音量分数高而情绪得分低的区域。然后阅读转录的相应部分或收听通话的相应部分。

例如，以下是录音和转录分析图。尖型垂直条指示客户大声说话的位置。红色水平条指示他们的情绪是负面的。

![\[“联系详细信息”页面，音量分数。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-amplitude.png)


# 使用 Contact Lens 通过敏感数据加密来保护客户隐私
<a name="sensitive-data-redaction"></a>

为了帮助您保护客户的隐私，Contact Lens对话分析允许您自动编辑对话记录、音频文件和电子邮件记录中的敏感数据。它使用自然语言理解功能加密敏感数据，例如姓名、地址和信用卡信息。

在**设置记录和分析行为**数据块上启用对话分析后，您就可以选择启用编辑。有关更多信息，请参阅 [启用对敏感数据的加密](enable-analytics.md#enable-redaction)。

对于语音联系人，敏感数据将在呼叫断开连接后进行修改。对于电子邮件联系人，将在电子邮件联系人结束后应用密文。

**重要**  
加密功能旨在识别和删除敏感数据。但是，由于机器学习的预测性质，它可能无法识别和删除由 Contact Lens 生成的转录中的所有敏感数据的实例。建议您查看所有加密的输出，以确保其满足您的需求。  
加密功能不符合医疗隐私法 [例如 1996 年美国健康保险便利和责任法案 (HIPAA)] 所规定的去身份化要求，因此建议您在加密后继续将其视为受保护的健康信息。

有关 Contact Lens 加密功能支持的语言列表，请参阅 [Amazon Connect 功能支持的语言](supported-languages.md)。

## 关于加密的文件
<a name="about-redacted-files"></a>

经过编辑的语音文件存储在您的语音 Amazon S3 存储桶中，例如：connect-*instanceARN* /Analysis。

经过编辑的聊天文件存储在您的聊天 Amazon S3 存储桶中，例如：connect-*instanceARN* /Analysis/Chat

经过编辑的电子邮件文件存储在您的电子邮件 Amazon S3 存储桶中，例如：connect-*instanceARN* /Analysis/Email

您可以使用 Amazon S3 控制台通过 AWS 控制台访问所有文件（加密、未加密、原始文件等）。

假设您拥有相应[的安全配置文件权限](permissions-for-contact-lens.md)，则可以使用 Amazon Connect 管理网站（例如**联系人详细信息**页面）访问的内容列表如下：
+ 访问经过编辑的语音、聊天和电子邮件文件。
+ 下载加密的录音。

**注意**  
目前，您无法下载加密的聊天文件和语音转录。

启用加密功能后，Contact Lens 会生成以下文件：
+ 加密的文件。默认情况下，此文件在启用加密功能后生成。它是输出架构，其中敏感数据已加密。有关示例文件，请参阅[通过 Contact Lens 对话分析功能分析的通话加密文件示例](contact-lens-example-output-files.md#example-redacted-file)。
+ 经过分析的原始文件。仅当您在[设置录音和分析行为](set-recording-behavior.md)数据块中选择**获得加密的原始转录和加密的音频**时，才会生成此文件。有关示例文件，请参阅[通过 Contact Lens 对话分析功能分析的通话原始文件示例](contact-lens-example-output-files.md#example-original-output-file)。
**重要**  
对于语音联系，原始分析文件是存储完整对话的唯一位置。如果将其删除，则不会有已加密的敏感数据的记录。
+ 用于语音联系的加密音频文件 (wav)。音频文件中的敏感数据以静默方式加密。这些静默时间不会在 Amazon Connect 管理员网站或其他地方标记为非通话时间。

使用您的文件保留策略来确定将这些文件保留多长时间。

# Contact Lens APIs 用于聊天分析
<a name="contact-lens-api"></a>

Contact Lens包括两个 APIs 支持对话分析的工具。使用它们 APIs 来构建可提高联络中心效率的解决方案。
+ [ListRealtimeContactAnalysisSegments](https://docs.aws.amazon.com/contact-lens/latest/APIReference/API_ListRealtimeContactAnalysisSegments.html): 用于语音联系人。
+ [ListRealtimeContactAnalysisSegmentsV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListRealtimeContactAnalysisSegmentsV2.html)：用于聊天联系人。

这些对话分析 APIs 是使用标准 request/response 交换进行轮询 APIs的，您无需与任何其他服务集成。但是，存在[速率限制](amazon-connect-service-limits.md#connect-contactlens-api-quotas)。如果需要，您可以使用[流式传输 API](contact-analysis-segment-streams.md) 来消除这些限制。它需要与 Amazon Kinesis Data Streams 集成。

以下是通话和聊天分析 API 的两个使用场景。

## 提高联系转接效率
<a name="contact-lens-api-transfers"></a>

当联系人从一个座席转接到另一个座席时，您可以将对话的转录转接给新的座席。这样，新座席就能了解客户联系联络中心的原因，客户也无需重复他们已经提供的信息。将 [ListRealtimeContactAnalysisSegments](https://docs.aws.amazon.com/contact-lens/latest/APIReference/API_ListRealtimeContactAnalysisSegments.html)API 用于语音联系人，使用 [ListRealtimeContactAnalysisSegmentsV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListRealtimeContactAnalysisSegmentsV2.html) API 进行聊天，以获取到特定点的完整对话记录，并与新代理共享。

## 突出对话的关键部分，如标签、问题、操作项和结果
<a name="contact-lens-api-call-summary"></a>

通过主要亮点，座席可以在联系结束后快速做笔记，主管也可以快速识别联系人，以进行质量和座席绩效管理。这提高了座席和主管的工作效率。

# 使用 Amazon Kinesis Data Streams 获取针对语音和聊天的 Contact Lens 分析
<a name="contact-analysis-segment-streams"></a>

联系分析分段流使您能够获取针对语音和聊天联系的 Contact Lens 分析。直播克服了现有[通话和聊天分析 APIs](contact-lens-api.md)的扩展限制。对于语音联系，它还提供对名为 `Utterance` 的数据段的访问权限，该数据段允许您访问部分文字记录。这样您就能够满足超低延迟要求，以协助座席进行实时通话。

本节介绍如何与 Amazon Kinesis Data Streams 集成以实现流式传输。

通过流式传输，您可以接收以下事件类型：
+ 在联系人分析会话开始时发布的 STARTED 事件。
+ 在联系人分析会话期间发布的 SEGMENTS 事件。这些事件包含带有已分析信息的分段列表。
+ 在联系人分析会话结束时发布的 COMPLETED 或 FAILED 事件。

**Topics**
+ [启用联系人分析分段流](enable-contact-analysis-segment-streams.md)
+ [语音：对话分析分段流数据模型](real-time-contact-analysis-segment-streams-data-model.md)
+ [聊天：对话分析分段流数据模型](chat-real-time-contact-analysis-segment-streams-data-model.md)
+ [语音：对话分析段流样本](sample-real-time-contact-analysis-segment-stream.md)
+ [聊天：对话分析段流样本](chat-sample-real-time-contact-analysis-segment-stream.md)

# 启用联系分析分段流分析 Contact Lens 对话
<a name="enable-contact-analysis-segment-streams"></a>

默认情况下，未启用联系人分析分段流。本主题介绍如何启用它们。

## 步骤 1：创建 Kinesis 流
<a name="enable-segment-streams-step1"></a>

在您的 Amazon Connect 实例所驻留的同一账户和区域创建数据流。有关说明，请参阅《Amazon Kinesis Data Streams 开发人员指南**》中的[步骤 1：创建数据流](https://docs.aws.amazon.com/streams/latest/dev/tutorial-stock-data-kplkcl-create-stream.html)。

**提示**  
建议为每种类型的数据创建一个单独的流。虽然可以将同一个流用于联系人分析分段流、座席事件和联系记录，但是当您为每个流使用单独的流时，管理数据和从流中获取数据要容易得多。有关更多信息，请参阅 [Amazon Kinesis Data Streams 开发人员指南](https://docs.aws.amazon.com/streams/latest/dev/introduction.html)。

## 步骤 2：为 Kinesis 流设置服务器端加密（可选，但建议使用）
<a name="enable-segment-streams-step2"></a>

可通过多种方式执行此操作。
+ 选项 1：使用 Kinesis AWS 托管式密钥 (`aws/kinesis`)。这无需您进行额外的设置即可使用。
+ 选项 2：在您的 Amazon Connect 实例中使用相同的客户自主管理型密钥进行通话录音、聊天转录或导出报告。

  启用加密，并在您的 Amazon Connect 实例中使用客户自主管理型密钥进行通话录音、聊天转录或导出报告。然后为您的 Kinesis 数据流选择相同的 KMS 密钥。此密钥已具有使用所需的权限（授权）。
+ 选项 3：使用其他客户自主管理型密钥。

  使用现有客户自主管理型密钥或创建一个新密钥并添加 Amazon Connect 角色使用相应密钥所需的权限。要使用 AWS KMS 授权添加权限，请参阅以下示例：

  ```
  aws kms create-grant \
      --key-id your key ID \
      --grantee-principal arn:aws:iam::your AWS account ID:role/aws-service-role/connect.amazonaws.com/AWSServiceRoleForAmazonConnect_11111111111111111111 \
      --operations GenerateDataKey \
      --retiring-principal arn:aws:iam::your AWS account ID:role/adminRole
  ```

  其中 `grantee-principal` 是与您的 Amazon Connect 实例关联的服务相关角色的 ARN。要查找服务相关角色的 ARN，请在 Amazon Connect 控制台中，转至**概述**、**分配设置**、**服务相关角色**。

## 步骤 3：关联 Kinesis 流
<a name="enable-segment-streams-step3"></a>

使用 Amazon Connect [AssociateInstanceStorageConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_AssociateInstanceStorageConfig.html)API 关联以下资源类型：
+ 对于语音联系，请使用 `REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS`
+ 对于聊天联系，请使用 `REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS`

**注意**  
`REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` 已被弃用，但仍受支持，且仅适用于语音联系。使用 `REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS` 来继续语音联系。  
如果您之前已将流与 `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` 关联，则无需任何操作即可将流更新为 `REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS`。

指定发布实时联系分析片段的 Kinesis 流。您需要相应的实例 ID 和 Kinesis 流 ARN。下方代码显示了一个示例：

```
// Build request
  const request: Connect.Types.AssociateInstanceStorageConfigRequest = {
    InstanceId: 'your Amazon Connect instance ID',
    ResourceType: 'REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS or REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS',
    StorageConfig: {
      StorageType: 'KINESIS_STREAM',
      KinesisStreamConfig: {
        StreamArn: 'the ARN of your Kinesis stream',
      },
    }
  };
```

### AWS CLI
<a name="step3-cli"></a>

下面是聊天联系的示例。

**提示**  
如果您不包括 AWS 区域 (`--region`)，则它将使用基于 CLI 配置文件的默认区域。  
`--storage-config` 参数值不得包含在单引号（'）中，否则会引发错误。

```
aws connect associate-instance-storage-config \
--region "us-west-2" \
--instance-id your Amazon Connect instance ID \
--resource-type REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS \
--storage-config StorageType=KINESIS_STREAM,KinesisStreamConfig={StreamArn=the ARN of your Kinesis stream}
```

### AWS SDK
<a name="step3-sdk"></a>

下面是语音联系的示例。

```
import { Connect } from 'aws-sdk';

async function associate (): Promise <void> {
  const clientConfig: Connect.ClientConfiguration = {
    region: 'the Region of your Amazon Connect instance',
  };

  const connect = new Connect(clientConfig);

  // Build request
  const request: Connect.Types.AssociateInstanceStorageConfigRequest = {
    InstanceId: 'your Amazon Connect instance ID',
    ResourceType: 'REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS',
    StorageConfig: {
      StorageType: 'KINESIS_STREAM',
      KinesisStreamConfig: {
        StreamArn: 'the ARN of your Kinesis stream',
      },
    }
  };

  try {
    // Execute request
    const response: Connect.Types.AssociateInstanceStorageConfigResponse = await connect.associateInstanceStorageConfig(request).promise();

    // Process response
    console.log('raw response: ${JSON.stringify(response, null, 2)}');
  } catch (err) {
    console.error('Error calling associateInstanceStorageConfig. err.code: ${err.code},' +
      'err.message: ${err.message}, err.statusCode: ${err.statusCode}, err.retryable: ${err.retryable}');
  }
}

associate().then(r => console.log('Done'));
```

## 步骤 4：为您的 Amazon Connect 实例启用 Contact Lens
<a name="enable-segment-streams-step4"></a>

有关说明，请参阅[在 Amazon Connect Contact Lens 中启用对话分析](enable-analytics.md)。

## 步骤 5（可选）：查看示例分段流
<a name="enable-segment-streams-step5"></a>

建议您查看[语音](sample-real-time-contact-analysis-segment-stream.md)或[聊天](chat-sample-real-time-contact-analysis-segment-stream.md)示例分段流，以熟悉其外观。

# Contact Lens 中用于分析语音联系的对话分析分段流数据模型
<a name="real-time-contact-analysis-segment-streams-data-model"></a>

实时联系人分析分段流以 JSON 格式生成。事件 JSON Blob 将发布到启用了实时对话分析的每个联系人的关联流中。语音联系的对话分析会话可以发布以下类型的事件：
+ STARTED 事件 – 每个对话分析会话都会在会话开始时发布一个 STARTED 事件。
+ SEGMENTS 事件 – 每个对话分析会话在会话期间都可以发布零个或多个 SEGMENTS 事件。这些事件包含带有已分析信息的分段列表。对于语音联系，分段列表可能包括“`Utterance`”、“`Transcript`”、“`Categories`”或“`PostContactSummary`”分段。
+ COMPLETED 或 FAILED 事件 – 每个对话分析会话在会话结束时都会发布一个 COMPLETED 或 FAILED 事件。

## 语音联系的所有活动中包含的常用属性
<a name="segment-streams-data-model-common-properties"></a>

每个时间均包括以下属性：

**版本**  
事件架构的版本。  
类型：字符串

**频道**  
此联系的通道类型。  
类型：字符串  
有效值：`VOICE`、`CHAT`、`TASK`  
有关通道的更多信息，请参阅[在 Amazon Connect 中路由联系人的渠道和并发性](channels-and-concurrency.md)。

**AccountId**  
此次联系发生的账户的标识符。  
类型：字符串

**ContactId**  
正在分析的联系人的标识符。  
类型：字符串

**InstanceId**  
此次联系发生的实例的标识符。  
类型：字符串 

**LanguageCode**  
与此联系人相关的语言代码。  
类型：字符串   
有效值：[Contact Lens 实时通话分析支持的语言](supported-languages.md#supported-languages-contact-lens)之一的语言代码。

**EventType**  
已发布的事件类型。  
类型：字符串  
有效值：`STARTED`、`SEGMENTS`、`COMPLETED`、`FAILED`

## STARTED 事件
<a name="segment-streams-data-model-started-event"></a>

`STARTED` 事件仅包含常用属性：
+ 版本
+ 频道
+ AccountId
+ ContactId
+ LanguageCode
+ EventType: 已启动

## SEGMENTS 事件
<a name="segment-streams-data-model-segments-event"></a>

`SEGMENTS` 事件包括以下属性：
+ 版本
+ 频道
+ AccountId
+ ContactId
+ LanguageCode
+ EventType: 细分
+ 分段：除了常用属性外，`SEGMENTS` 事件还包括具有已分析信息的分段列表。

  类型：[分段](#segment)对象数组
+ PostContactSummary：有关语音联系区段的联系后摘要的信息。

  类型：[PostContactSummary](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-contact-lens_PostContactSummary.html)物体 

  必需：否

**分段**  
用于实时分析会话的已分析分段。  
每个分段都是一个具有以下可选属性的对象。这些属性中只有一个存在，具体取决于分段类型：  
+ 表达
+ 转录
+ 类别
+ PostContactSummary

**表达**  
已分析的表达。  
必需：否  
+ **Id**

  表达的标识符。

  类型：字符串
+ ** TranscriptId**

  与此表达关联的转录的标识符。

  类型：字符串
+ **ParticipantId**

  参与者的标识符。

  类型：字符串
+ ** ParticipantRole**

  参与者的角色。例如，它是客户、座席还是系统。

  类型：字符串
+ ** PartialContent**

  表达的内容。

  类型：字符串
+ ** BeginOffsetMillis**

  此转录的联系人中的起始偏移量。

  类型：整数
+ ** EndOffsetMillis**

  此转录的联系人中的结束偏移量。

  类型：整数

**转录**  
已分析的转录。  
类型：[转录](https://docs.aws.amazon.com/contact-lens/latest/APIReference/API_Transcript.html)对象   
必需：否

**类别**  
匹配的类别规则。  
类型：[类别](https://docs.aws.amazon.com/contact-lens/latest/APIReference/API_Categories.html)对象  
必需：否

**PostContactSummary**  
有关语音联络分段的联系后摘要信息的信息。  
类型：[PostContactSummary](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-contact-lens_PostContactSummary.html) 对象  
必需：否

## COMPLETED 事件
<a name="segment-streams-data-model-completed-event"></a>

`COMPLETED` 事件仅包括以下常用属性：
+ 版本
+ 频道
+ AccountId
+ ContactId
+ LanguageCode
+ EventType: 已完成

## FAILED 事件
<a name="segment-streams-data-model-failed-event"></a>

`FAILED` 事件仅包括以下常用属性：
+ 版本
+ 频道
+ AccountId
+ ContactId
+ LanguageCode
+ EventType: 失败

# Contact Lens 中用于分析聊天的对话分析分段流数据模型
<a name="chat-real-time-contact-analysis-segment-streams-data-model"></a>

聊天联系的对话分析分段流以 JSON 格式生成。事件 JSON Blob 将发布到启用了实时对话分析的每个联系人的关联流中。聊天联系的对话分析会话可以发布以下类型的事件：
+ STARTED 事件 – 每个对话分析会话都会在会话开始时发布一个 STARTED 事件。
+ SEGMENTS 事件 – 每个对话分析会话在会话期间都可以发布零个或多个 SEGMENTS 事件。这些事件包含带有已分析信息的分段列表。对于聊天联系，分段列表可能包括 “`Attachments`”、“`Transcript`”、“`Categories`”、“`Events`”、“`Issues`”或“`PostContactSummary`”分段。
+ COMPLETED 或 FAILED 事件 – 每个对话分析会话在会话结束时都会发布一个 COMPLETED 或 FAILED 事件。

## 聊天联系的所有活动中包含的常用属性
<a name="chat-segment-streams-data-model-common-properties"></a>

每个时间均包括以下属性：

**版本**  
事件架构的版本。对于聊天联系，这是 2.0.0。  
类型：字符串

**频道**  
此联系的通道类型。  
类型：字符串  
有效值：`VOICE`、`CHAT`、`TASK`  
有关通道的更多信息，请参阅[在 Amazon Connect 中路由联系人的渠道和并发性](channels-and-concurrency.md)。

**AccountId**  
此次联系发生的账户的标识符。  
类型：字符串

**InstanceId**  
此次联系发生的实例的标识符。  
类型：字符串 

**ContactId**  
正在分析的联系人的标识符。  
类型：字符串

**StreamingEventType**  
已发布的事件类型。  
类型：字符串   
有效值：`STARTED`、`SEGMENTS`、`COMPLETED`、`FAILED`

**StreamingSettings**  
此联系的 Contact Lens 设置  
类型：[StreamingSettings](#streamingsettingsobject) 对象 

## StreamingSettings 对象
<a name="streamingsettingsobject"></a>

**LanguageCode**  
与此联系人相关的语言代码。  
类型：字符串   
有效值：[Contact Lens 实时通话分析支持的语言](supported-languages.md#supported-languages-contact-lens)之一的语言代码。

**Output**  
为此联系启用的 Contact Lens 输出类型。  
类型：字符串  
有效值：`Raw`、`Redacted`、`RedactedAndRaw`

**RedactionTypes**  
为此联系启用的编辑类型。  
类型：字符串数组  
有效值：`PII`

**RedactionTypesMetadata**  
每种编辑类型的编辑元数据。  
类型： RedactionType 字符串到[RedactionMetadata](#redactionmetadata)对象   
有效值：`PII`

## RedactionMetadata 对象
<a name="redactionmetadata"></a>

提供有关编辑设置的信息。

**RedactionMaskMode**  
数据编辑替换设置  
类型：字符串   
有效值：`PII`、`EntityType`

## STARTED 事件
<a name="chat-segment-streams-data-model-started-event"></a>

`STARTED` 事件仅包含常用属性：
+ 版本
+ 频道
+ AccountId
+ ContactId
+ StreamingEventType: 已启动
+ StreamingSettings

## SEGMENTS 事件
<a name="chat-segment-streams-data-model-segments-event"></a>

`SEGMENTS` 事件包括以下属性：
+ 版本
+ 频道
+ AccountId
+ OutputType
  + 当前分段的 Contact Lens 输出类型
  + 类型：字符串
  + 有效值：`Raw`、`Redacted`
+ ContactId
+ StreamingEventType: 细分
+ StreamingSettings
+ Segments
  + 包含已分析信息的分段列表。
  + 类型：[分段](#chat-segment)对象数组

**分段**  
用于实时分析会话的已分析分段。  
每个分段都是一个具有以下可选属性的对象。这些属性中只有一个存在，具体取决于分段类型：  
+  [附件](#chat-attachments)
+  [类别](#chat-category)
+  [Event (事件)](#chat-event)
+  [问题](#chat-issues)
+  [文字记录](#chat-transcript)
+ [PostContactSummary](#chat-postcontactsummary)

**附件**  
已分析的附件。  
必需：否  
类型：[RealTimeContactAnalysisSegmentAttachments](https://docs.aws.amazon.com/connect/latest/APIReference/API_RealTimeContactAnalysisSegmentAttachments.html) 对象

**类别**  
匹配的类别规则。  
类型：[RealTimeContactAnalysisSegmentCategories](https://docs.aws.amazon.com/connect/latest/APIReference/API_RealTimeContactAnalysisSegmentCategories.html) 对象  
必需：否

**事件**  
描述联系活动的片段类型。  
类型：[RealTimeContactAnalysisSegmentEvent](https://docs.aws.amazon.com/connect/latest/APIReference/API_RealTimeContactAnalysisSegmentEvent.html) 对象  
必需：否

**问题**  
包含检测到的问题列表的片段类型。  
类型：[RealTimeContactAnalysisSegmentIssues](https://docs.aws.amazon.com/connect/latest/APIReference/API_RealTimeContactAnalysisSegmentIssues.html) 对象  
必需：否

**文字记录**  
已分析的文字记录片段。  
类型：[RealTimeContactAnalysisSegmentTranscript](https://docs.aws.amazon.com/connect/latest/APIReference/API_RealTimeContactAnalysisSegmentTranscript.html) 对象  
必需：否

**PostContactSummary**  
有关聊天的实时联系段的联系后摘要信息。  
类型：[RealTimeContactAnalysisSegmentPostContactSummary](https://docs.aws.amazon.com/connect/latest/APIReference/API_RealTimeContactAnalysisSegmentPostContactSummary.html) 对象   
必需：否

## COMPLETED 事件
<a name="chat-segment-streams-data-model-completed-event"></a>

`COMPLETED` 事件仅包括以下常用属性：
+ 版本
+ 频道
+ AccountId
+ InstanceId
+ ContactId
+ StreamingEventType: 已完成
+ StreamingSettings

## FAILED 事件
<a name="chat-segment-streams-data-model-failed-event"></a>

`FAILED` 事件仅包括以下常用属性：
+ 版本
+ 频道
+ AccountId
+ InstanceId
+ ContactId
+ StreamingEventType: 失败
+ StreamingSettings

# 使用 Contact Lens 分析通话的对话分析分段流示例
<a name="sample-real-time-contact-analysis-segment-stream"></a>

本主题为语音联系过程中可能发生的 STARTED、COMPLETED 和 FAILED 活动提供样本段流。

## 示例 STARTED 事件
<a name="sample-started-event"></a>
+ EventType: 已启动
+ 在对话分析会话开始时发布。

```
{
    "Version": "1.0.0",
    "Channel": "VOICE",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "LanguageCode": "en-US", // the language code of the contact
    "EventType": "STARTED"
}
```

## 示例 SEGMENTS 事件
<a name="sample-segments-event"></a>
+ EventType: 细分
+ 在对话分析会话期间发布。此事件包含带有已分析信息的分段列表。该分段列表可能包括“`Utterance`”、“`Transcript`”、“`Categories`”或“`PostContactSummary`”分段。

```
{
    "Version": "1.0.0",
    "Channel": "VOICE",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "LanguageCode": "en-US", // the language code of the contact
    "EventType": "SEGMENTS",
    "Segments": [
        {
            "Utterance": {
                "Id": "7b48ca3d-73d3-443a-bf34-a9e8fcc01747",
                "TranscriptId": "121d1581-905f-4169-9804-b841bb4df04a",
                "ParticipantId": "AGENT",
                "ParticipantRole": "AGENT",
                "PartialContent": "Hello, thank you for calling Example Corp. My name is Adam.",
                "BeginOffsetMillis": 19010,
                "EndOffsetMillis": 22980
            }
        },
        {
            "Utterance": {
                "Id": "75acb743-2154-486b-aaeb-c960ae290e88",
                "TranscriptId": "121d1581-905f-4169-9804-b841bb4df04a",
                "ParticipantId": "AGENT",
                "ParticipantRole": "AGENT",
                "PartialContent": "How can I help you?",
                "BeginOffsetMillis": 23000,
                "EndOffsetMillis": 24598
            }
        },
        {
            "Transcript": {
                "Id": "121d1581-905f-4169-9804-b841bb4df04a",
                "ParticipantId": "AGENT",
                "ParticipantRole": "AGENT",
                "Content": "Hello, thank you for calling Example Corp. My name is Adam. How can I help you?",
                "BeginOffsetMillis": 19010,
                "EndOffsetMillis": 24598,
                "Sentiment": "NEUTRAL"
            }
        },
        {
            "Transcript": {
                "Id": "4295e927-43aa-4447-bbfc-8fccc2027530",
                "ParticipantId": "CUSTOMER",
                "ParticipantRole": "CUSTOMER",
                "Content": "I'm having trouble submitting the application, number AX876293 on the portal. I tried but couldn't connect to my POC on the portal. So, I'm calling on this toll free number",
                "BeginOffsetMillis": 19010,
                "EndOffsetMillis": 22690,
                "Sentiment": "NEGATIVE",
                "IssuesDetected": [
                    {
                        "CharacterOffsets": {
                            "BeginOffsetChar": 0,
                            "EndOffsetChar": 81
                        }
                    }
                ]
            }
        },
        {
            "Categories": {
                "MatchedCategories": [
                    "CreditCardRelated",
                    "CardBrokenIssue"
                ],
                "MatchedDetails": {
                    "CreditCardRelated": {
                        "PointsOfInterest": [
                            {
                                "BeginOffsetMillis": 19010,
                                "EndOffsetMillis": 22690
                            }
                        ]
                    },
                    "CardBrokenIssue": {
                        "PointsOfInterest": [
                            {
                                "BeginOffsetMillis": 25000,
                                "EndOffsetMillis": 29690
                            }
                        ]
                    }
                }
            }
        },
        {
            "PostContactSummary": {
                "Content": "Customer contacted Example Corp because of an issue with their application",
                "Status": "COMPLETED"
            }
        }
    ]
}
```

## 示例 COMPLETED 事件
<a name="sample-completed-event"></a>
+ EventType: 已完成
+ 如果分析成功完成，则在对话分析会话结束时发布。

```
{
    "Version": "1.0.0",
    "Channel": "VOICE",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "LanguageCode": "en-US", // the language code of the contact
    "EventType": "COMPLETED"
}
```

## 示例 FAILED 事件
<a name="sample-failed-event"></a>
+ EventType: 失败
+ 如果分析失败，则在对话分析会话结束时发布。

```
{
    "Version": "1.0.0",
    "Channel": "VOICE",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "LanguageCode": "en-US", // the language code of the contact
    "EventType": "FAILED"
}
```

# 在 Contact Lens 中分析聊天的对话分析流示例
<a name="chat-sample-real-time-contact-analysis-segment-stream"></a>

本主题为聊天联系过程中可能发生的 STARTED、COMPLETED 和 FAILED 活动提供样本段流。

## 示例 STARTED 事件
<a name="chat-sample-started-event"></a>
+ EventType: 已启动
+ 在对话分析会话开始时发布。

```
{
    "Version": "2.0.0",
    "Channel": "CHAT",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "StreamingEventType": "STARTED",
    "StreamingSettings": {
      "LanguageCode": "en-US", // the language code of the contact
      "Output": "RedactedAndRaw",
      "RedactionTypes": [
          "PII"
      ],
      "RedactionTypesMetadata": {
        "PII": {
            "RedactionMaskMode": "PII"
         }
       }
    }
}
```

## 示例 SEGMENTS 事件
<a name="chat-sample-segments-event"></a>
+ EventType: [细分](chat-real-time-contact-analysis-segment-streams-data-model.md#chat-segment-streams-data-model-segments-event) 
+ 在对话分析会话期间发布。此事件包含包含已分析信息的[RealtimeContactAnalysisSegment](https://docs.aws.amazon.com/connect/latest/APIReference/API_RealtimeContactAnalysisSegment.html)对象列表。区段列表可能包括`"Transcript"`、`"Categories"`、`"Issue"`、`"Event"``"Attachment"`、或 “PostContactSummary” 区段。

```
{
    "Version": "2.0.0",
    "Channel": "CHAT",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "OutputType": "Redacted",
    "StreamingEventType": "SEGMENTS",
    "StreamingSettings": {
        "LanguageCode": "en-US", // the language code of the contact
        "Output": "RedactedAndRaw",
        "RedactionTypes": [
            "PII"
        ],
        "RedactionTypesMetadata": {
            "PII": {
                "RedactionMaskMode": "PII"
            }
        }
    },
    "Segments": [{
        "Transcript": {
            "Id": "07a2d668-5c9e-4f69-b2fe-986261b0743a",
            "ParticipantId": "a309ac1e-ca87-44ca-bb5d-197eca8ed77a",
            "ParticipantRole": "AGENT",
            "DisplayName": "[PII]",
            "Content": "Hello, thank you for contacting Example Corp. My name is Ray.",
            "ContentType": "text/markdown",
            "Time": {
                "AbsoluteTime": "2024-03-14T19:39:26.715Z"
            },
            "Sentiment": "NEUTRAL"
        }
    }, {
        "Categories": {
            "MatchedDetails": {
                "Hi": {
                    "PointsOfInterest": [{
                        "TranscriptItems": [{
                            "Id": "5205b050-8aa9-4645-a381-a308801649ab",
                            "CharacterOffsets": {
                                "BeginOffsetChar": 0,
                                "EndOffsetChar": 40
                            }
                        }]
                    }]
                }
            }
        }
    }, {
        "Issues": {
            "IssuesDetected": [{
                "TranscriptItems": [{
                    "Content": "I have an issue with my bank account",
                    "Id": "0e5574a7-2aeb-4eab-8bb5-3a7f66a2284a",
                    "CharacterOffsets": {
                        "BeginOffsetChar": 7,
                        "EndOffsetChar": 43
                    }
                }]
            }]
        }
    }, {
        "Attachments": {
            "Id": "06ddc1eb-2302-4a8e-a73f-37687fe41aa9",
            "ParticipantId": "7810b1de-cca8-4153-b522-2498416255af",
            "ParticipantRole": "CUSTOMER",
            "DisplayName": "Customer",
            "Attachments": [{
                "AttachmentName": "Lily.jpg",
                "ContentType": "image/jpeg",
                "AttachmentId": "343e34da-391a-4541-8b7e-3909d931fcfa",
                "Status": "APPROVED"
            }],
            "Time": {
                "AbsoluteTime": "2024-03-14T19:39:26.715Z"
            }
        }
    }, {
        "Event": {
            "Id": "fbe61c5f-d0d8-4345-912a-4e81f5734d3b",
            "ParticipantId": "7810b1de-cca8-4153-b522-2498416255af",
            "ParticipantRole": "CUSTOMER",
            "DisplayName": "Customer",
            "EventType": "application/vnd.amazonaws.connect.event.participant.left",
            "Time": {
                "AbsoluteTime": "2024-03-14T19:40:00.614Z"
            }
        }
    },
    {
        "PostContactSummary": {
            "Content": "Customer contacted Example Corp because of an issue with their bank account",
            "Status": "COMPLETED"
        }
    }]
}
```

## 示例 COMPLETED 事件
<a name="chat-sample-completed-event"></a>
+ EventType: 已完成
+ 如果分析成功完成，则在对话分析会话结束时发布。

```
{
    "Version": "2.0.0",
    "Channel": "CHAT",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "StreamingEventType": "COMPLETED",
    "StreamingEventSettings": {
        "LanguageCode": "en-US", // the language code of the contact
        "Output": "RedactedAndRaw",
        "RedactionTypes": ["PII"],
        "RedactionTypesMetadata": {
            "PII": {
                "RedactionMaskMode": "PII"
            }
        }
    }
}
```

## 示例 FAILED 事件
<a name="chat-sample-failed-event"></a>
+ EventType: 失败
+ 如果分析失败，则在对话分析会话结束时发布。

```
{
    "Version": "2.0.0",
    "Channel": "CHAT",
    "AccountId": "123456789012", // your AWS account ID
    "InstanceId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",  // your Amazon Connect instance ID
    "ContactId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", // the ID of the contact
    "StreamingEventType": "FAILED",
    "StreamingEventSettings": {
        "LanguageCode": "en-US",
        "Output": "RedactedAndRaw",
        "RedactionTypes": ["PII"],
        "RedactionTypesMetadata": {
            "PII": {
                "RedactionMaskMode": "PII"
            }
        }
    }
}
```

# 通过 Contact Lens 对话分析功能分析的文件的输出文件位置
<a name="example-contact-lens-output-locations"></a>

以下是当 Contact Lens 对话分析输出文件存储在您的实例的 Amazon S3 存储桶中时，它们的文件路径示例。
+ 原始分析转录文件 (JSON)
  + **/connect-instance-bucket/ Analysis/Voice /2020/02/04/ \$1analysis\$12020-02-04T 21:14:16 z.json** *contact's\$1ID*
  + **/connect-instance-bucket/ Analysis/Chat /2020/02/04/ \$1analysis\$12020-02-04T 21:14:16 z.json** *contact's\$1ID*
  + **/connect-instance-bucket/ Analysis/Email /2026/03/10/ \$1analysis\$120260310T 22:35 \$1utc.json** *contact's\$1ID*
+ 加密分析转录文件 (JSON)
  + **/connect-instance-bucket **Analysis/Voice/Redacted**//2020/02/04/ \$1 analysis\$1redacted \$12020-02-04T 21:14:16 z.json *contact's\$1ID***
  + **/connect-instance-bucket **Analysis/Chat/Redacted**//2020/02/04/ \$1 analysis\$1redacted \$12020-02-04T 21:14:16 z.json *contact's\$1ID***
  + **/connect-instance-bucket/ /2026/03/10/ \$1 analysis\$1redacted \$120260310T 22:35 \$1utc.j **Analysis/Email/Redacted**son *contact's\$1ID***
+ 加密音频文件
  + **/connect-instance-bucket **Analysis/Voice/Redacted**//2020/02/04/ \$1 call\$1redecting\$1redacted \$12020-02-04T 21:14:16 Z *contact's\$1ID*** **wav**

**重要**  
要删除录音，必须删除加密和未加密录音的文件。

# 通话的 Contact Lens 对话分析输出文件示例
<a name="contact-lens-example-output-files"></a>

以下各节提供了一些示例，展示了当 Contact Lens 对话分析检测到问题、匹配到分类、指示出大声说话、加密了敏感数据以及跳过分析时所产生的输出。

展开每个部分以了解更多信息。

## 通过 Contact Lens 对话分析功能分析的通话原始文件示例
<a name="example-original-output-file"></a>

以下示例显示 Contact Lens 对话分析功能分析的通话的架构。此示例显示了音量、问题检测、通话驱动程序以及要加密的具体信息。

请注意有关分析文件的以下内容：
+ 它并不指示哪些敏感数据已加密。所有数据均被称为 PII（个人身份信息）。
+ 仅当每个轮次包含 PII 时，它才包括 `Redaction` 分区。
+ 如果 `Redaction` 分区存在，则它包括以毫秒为单位的偏移量。在 .wav 文件中，加密的部分将静音。如果需要，您可以使用偏移量将静音替换为其他内容，例如哔音。
+ 如果轮次中存在两个或更多个 PII 加密，则第一个偏移量适用于第一个 PII，第二个偏移量适用于第二个 PII，依此类推。

```
{
  "Version": "1.1.0",    
  "AccountId": "your AWS account ID",
  "Channel": "VOICE",
  "ContentMetadata": {
      "Output": "Raw" 
  },
  "JobStatus": "COMPLETED",
  "JobDetails": {
    "SkippedAnalysis": [
        {
            "Feature": "CATEGORIZATION",
            "ReasonCode": "QUOTA_EXCEEDED", 
            "SkippedEntities": [
                {
                    "CategoryName": "PotentialFraud"
                    "RuleId": "a1130485-9529-4249-a1d4-5738b4883748"
                },
                {
                    "CategoryName": "Refund"
                    "RuleId": "bbbbbbb-9529-4249-a1d4-5738b4883748"
                }
            ]
        },
        {
            "Feature": "CATEGORIZATION",
            "ReasonCode": "FAILED_SAFETY_GUIDELINES", 
            "SkippedEntities": [
                {
                    "CategoryName": "ManagerEscalation"
                    "RuleId": "cccccccc-9529-4249-a1d4-5738b4883748"
                },
            ]
        },
    ]
  },
  "LanguageCode": "en-US",
  "Participants": [
      {
          "ParticipantId": "CUSTOMER",
          "ParticipantRole": "CUSTOMER"
      },
      
      {
          "ParticipantId": "AGENT",
          "ParticipantRole": "AGENT"
      }
  ],
  "Categories": {
      "MatchedCategories": ["Cancellation"],
      "MatchedDetails": {
          "Cancellation": {
              "PointsOfInterest": [
                  {
                      "BeginOffsetMillis": 7370,
                      "EndOffsetMillis": 11190
                  }
              ]
          }
      }
  },
  "ConversationCharacteristics": {
     "ContactSummary": {
          "PostContactSummary": {
           "Content": "The customer and agent's conversation did not have any clear issues, outcomes or next steps. Agent verified customer information and finished the call."
           }
      },
     "TotalConversationDurationMillis": 32110,
      "Sentiment": {
          "OverallSentiment": {
              "AGENT": 0,
              "CUSTOMER": 3.1
          },
          "SentimentByPeriod": {
              "QUARTER": {
                  "AGENT": [
                      {
                          "BeginOffsetMillis": 0,
                          "EndOffsetMillis": 7427,
                          "Score": 0
                      },
                      {
                          "BeginOffsetMillis": 7427,
                          "EndOffsetMillis": 14855,
                          "Score": -5
                      },
                      {
                          "BeginOffsetMillis": 14855,
                          "EndOffsetMillis": 22282,
                          "Score": 0
                      },
                      {
                          "BeginOffsetMillis": 22282,
                          "EndOffsetMillis": 29710,
                          "Score": 5
                      }
                  ],
                  "CUSTOMER": [
                      {
                          "BeginOffsetMillis": 0,
                          "EndOffsetMillis": 8027,
                          "Score": -2.5
                      },
                      {
                          "BeginOffsetMillis": 8027,
                          "EndOffsetMillis": 16055,
                          "Score": 5
                      },
                      {
                          "BeginOffsetMillis": 16055,
                          "EndOffsetMillis": 24082,
                          "Score": 5
                      },
                      {
                          "BeginOffsetMillis": 24082,
                          "EndOffsetMillis": 32110,
                          "Score": 5
                      }
                  ]
              }
          }
      },
      "Interruptions": {
        "InterruptionsByInterrupter": {
            "CUSTOMER": [
                {
                    "BeginOffsetMillis": 10710,
                    "DurationMillis": 3790,
                    "EndOffsetMillis": 14500
                }
            ],
            "AGENT": [
                {
                    "BeginOffsetMillis": 10710,
                    "DurationMillis": 3790,
                    "EndOffsetMillis": 14500
                }
            ]
        },
        "TotalCount": 2,
        "TotalTimeMillis": 7580
      },
      "NonTalkTime": {
          "TotalTimeMillis": 0,
          "Instances": []
      },
      "TalkSpeed": {
          "DetailsByParticipant": {
              "AGENT": {
                  "AverageWordsPerMinute": 239
              },
              "CUSTOMER": {
                  "AverageWordsPerMinute": 163
              }
          }
      },
      "TalkTime": {
          "TotalTimeMillis": 28698,
          "DetailsByParticipant": {
              "AGENT": {
                  "TotalTimeMillis": 15079
              },
              "CUSTOMER": {
                  "TotalTimeMillis": 13619
              }
          }
      }
  },
  "CustomModels": [
      {    // set via https://docs.aws.amazon.com/connect/latest/adminguide/add-custom-vocabulary.html             
           "Type": "TRANSCRIPTION_VOCABULARY",
           "Name": "ProductNames",  
           "Id": "4e14b0db-f00a-451a-8847-f6dbf76ae415" // optional field
      }
  ],
  "Transcript": [
      {
          "BeginOffsetMillis": 0,
          "Content": "Okay.",
          "EndOffsetMillis": 90,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              79.27
          ]
      },
      {
          "BeginOffsetMillis": 160,
          "Content": "Just hello. My name is Peter and help.",
          "EndOffsetMillis": 4640,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              66.56,
              40.06,
              85.27,
              82.22,
              77.66
          ],
          "Redaction": {
              "RedactedTimestamps": [
                  {
                      "BeginOffsetMillis": 3290,
                      "EndOffsetMillis": 3620
                  }
              ]
          }
      },
      {
          "BeginOffsetMillis": 4640,
          "Content": "Hello. Peter, how can I help you?",
          "EndOffsetMillis": 6610,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              70.23,
              73.05,
              71.8
          ],
          "Redaction": {
              "RedactedTimestamps": [
                  {
                      "BeginOffsetMillis": 5100,
                      "EndOffsetMillis": 5450
                  }
              ]
          }
      },
      {
          "BeginOffsetMillis": 7370,
          "Content": "I need to cancel. I want to cancel my plan subscription.",
          "EndOffsetMillis": 11190,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "NEGATIVE",
          "LoudnessScore": [
              77.18,
              79.59,
              85.23,
              81.08,
              73.99
          ],
          "IssuesDetected": [
              {
                  "CharacterOffsets": {
                      "BeginOffsetChar": 0,
                      "EndOffsetChar": 55
                  },
                  "Text": "I need to cancel. I want to cancel my plan subscription"
              }
          ]
      },
      {
          "BeginOffsetMillis": 11220,
          "Content": "That sounds very bad. I can offer a 20% discount to make you stay with us.",
          "EndOffsetMillis": 15210,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEGATIVE",
          "LoudnessScore": [
              75.92,
              75.79,
              80.31,
              80.44,
              76.31
          ]
      },
      {
          "BeginOffsetMillis": 15840,
          "Content": "That sounds interesting. Thank you accept.",
          "EndOffsetMillis": 18120,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              73.77,
              79.17,
              77.97,
              79.29
          ]
      },
      {
          "BeginOffsetMillis": 18310,
          "Content": "Alright, I made all the changes to the account and now these discounts applied.",
          "EndOffsetMillis": 21820,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              83.88,
              86.75,
              86.97,
              86.11
          ],
          "OutcomesDetected": [
              {
                  "CharacterOffsets": {
                      "BeginOffsetChar": 9,
                      "EndOffsetChar": 77
                  },
                  "Text": "I made all the changes to the account and now these discounts applied"
              }
          ]
      },
      {
          "BeginOffsetMillis": 22610,
          "Content": "Awesome. Thank you so much.",
          "EndOffsetMillis": 24140,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              79.11,
              81.7,
              78.15
          ]
      },
      {
          "BeginOffsetMillis": 24120,
          "Content": "No worries. I will send you all the details later today and call you back next week to check up on you.",
          "EndOffsetMillis": 29710,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              87.07,
              83.96,
              76.38,
              88.38,
              87.69,
              76.6
          ],
          "ActionItemsDetected": [
              {
                  "CharacterOffsets": {
                      "BeginOffsetChar": 12,
                      "EndOffsetChar": 102
                  },
                  "Text": "I will send you all the details later today and call you back next week to check up on you"
              }
          ]
      },
      {
          "BeginOffsetMillis": 30580,
          "Content": "Thank you. Sir. Have a nice evening.",
          "EndOffsetMillis": 32110,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              81.42,
              82.29,
              73.29
          ]
      }
  ]    
  }
}
```

## 通过 Contact Lens 对话分析功能分析的通话加密文件示例
<a name="example-redacted-file"></a>

本节显示了一个通话经过 Contact Lens 对话分析功能分析后的加密文件示例。它是原始分析文件的孪生文件。唯一的区别在于敏感数据被加密了。在此示例中，选择了三个实体进行加密：“`CREDIT_DEBIT_NUMBER`”、“`NAME`”、“`USERNAME`”。

在此示例中，`RedactionMaskMode` 设置为 PII。当某个实体被加密时，Contact Lens 用 `[PII]` 来替换它。如果将其设置为 `ENTITY_TYPE`，则 Contact Lens 会将数据替换为实体的名称，例如 `[CREDIT_DEBIT_NUMBER]`。

```
{
  "Version": "1.1.0", 
  "AccountId": "your AWS account ID",
  "ContentMetadata": {
      "Output": "Redacted",
      "RedactionTypes": ["PII"],
      "RedactionTypesMetadata": {
          "PII": {
              "RedactionEntitiesRequested": ["CREDIT_DEBIT_NUMBER", "NAME", "USERNAME"],
              "RedactionMaskMode": "PII" // if you were to choose ENTITY_TYPE instead, the redaction would say, for example, [NAME]
          }
      }
  },
  "Channel": "VOICE",
  "JobStatus": "COMPLETED",
  "JobDetails": {
    "SkippedAnalysis": [
        {
            "Feature": "CATEGORIZATION",
            "ReasonCode": "QUOTA_EXCEEDED", 
            "SkippedEntities": [
                {
                    "CategoryName": "PotentialFraud"
                    "RuleId": "a1130485-9529-4249-a1d4-5738b4883748"
                },
                {
                    "CategoryName": "Refund"
                    "RuleId": "bbbbbbb-9529-4249-a1d4-5738b4883748"
                }
            ]
        },
        {
            "Feature": "CATEGORIZATION",
            "ReasonCode": "FAILED_SAFETY_GUIDELINES", 
            "SkippedEntities": [
                {
                    "CategoryName": "ManagerEscalation"
                    "RuleId": "cccccccc-9529-4249-a1d4-5738b4883748"
                },
            ]
        },
    ]
  },
  "LanguageCode": "en-US",
  "Participants": [
      {
          "ParticipantId": "CUSTOMER",
          "ParticipantRole": "CUSTOMER"
      },
      
      {
          "ParticipantId": "AGENT",
          "ParticipantRole": "AGENT"
      }
  ],
  "Categories": {
      "MatchedCategories": ["Cancellation"],
      "MatchedDetails": {
          "Cancellation": {
              "PointsOfInterest": [
                  {
                      "BeginOffsetMillis": 7370,
                      "EndOffsetMillis": 11190
                  }
              ]
          }
      }
  }, 
  "ConversationCharacteristics": {
       "ContactSummary": {
             "PostContactSummary": {
               "Content": "The customer and agent's conversation did not have any clear issues, outcomes or next steps. Agent verified customer information and finished the call."
              }
      },
      "TotalConversationDurationMillis": 32110,
      "Sentiment": {
          "OverallSentiment": {
              "AGENT": 0,
              "CUSTOMER": 3.1
          },
          "SentimentByPeriod": {
              "QUARTER": {
                  "AGENT": [
                      {
                          "BeginOffsetMillis": 0,
                          "EndOffsetMillis": 7427,
                          "Score": 0
                      },
                      {
                          "BeginOffsetMillis": 7427,
                          "EndOffsetMillis": 14855,
                          "Score": -5
                      },
                      {
                          "BeginOffsetMillis": 14855,
                          "EndOffsetMillis": 22282,
                          "Score": 0
                      },
                      {
                          "BeginOffsetMillis": 22282,
                          "EndOffsetMillis": 29710,
                          "Score": 5
                      }
                  ],
                  "CUSTOMER": [
                      {
                          "BeginOffsetMillis": 0,
                          "EndOffsetMillis": 8027,
                          "Score": -2.5
                      },
                      {
                          "BeginOffsetMillis": 8027,
                          "EndOffsetMillis": 16055,
                          "Score": 5
                      },
                      {
                          "BeginOffsetMillis": 16055,
                          "EndOffsetMillis": 24082,
                          "Score": 5
                      },
                      {
                          "BeginOffsetMillis": 24082,
                          "EndOffsetMillis": 32110,
                          "Score": 5
                      }
                  ]
              }
          }
      },
      "Interruptions": {
        "InterruptionsByInterrupter": {
            "CUSTOMER": [
                {
                    "BeginOffsetMillis": 10710,
                    "DurationMillis": 3790,
                    "EndOffsetMillis": 14500
                }
            ],
            "AGENT": [
                {
                    "BeginOffsetMillis": 10710,
                    "DurationMillis": 3790,
                    "EndOffsetMillis": 14500
                }
            ]
        },
        "TotalCount": 2,
        "TotalTimeMillis": 7580
      },  
      "NonTalkTime": {
          "TotalTimeMillis": 0,
          "Instances": []
      },
      "TalkSpeed": {
          "DetailsByParticipant": {
              "AGENT": {
                  "AverageWordsPerMinute": 239
              },
              "CUSTOMER": {
                  "AverageWordsPerMinute": 163
              }
          }
      },
      "TalkTime": {
          "TotalTimeMillis": 28698,
          "DetailsByParticipant": {
              "AGENT": {
                  "TotalTimeMillis": 15079
              },
              "CUSTOMER": {
                  "TotalTimeMillis": 13619
              }
          }
      }
  },
  "CustomModels": [
      {   // set via https://docs.aws.amazon.com/connect/latest/adminguide/add-custom-vocabulary.html
           "Type": "TRANSCRIPTION_VOCABULARY",
           "Name": " LNK POPProductNames",  
           "Id": "4e14b0db-f00a-451a-8847-f6dbf76ae415" // optional field
      }
  ],  
  "Transcript": [
      {
          "BeginOffsetMillis": 0,
          "Content": "Okay.",
          "EndOffsetMillis": 90,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              79.27
          ]
      },
      {
          "BeginOffsetMillis": 160,
          "Content": "Just hello. My name is [PII] and help.",  
          "EndOffsetMillis": 4640,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              66.56,
              40.06,
              85.27,
              82.22,
              77.66
          ],
          "Redaction": {
              "RedactedTimestamps": [
                  {
                      "BeginOffsetMillis": 3290,
                      "EndOffsetMillis": 3620
                  }
              ]
          }
      },
      {
          "BeginOffsetMillis": 4640,
          "Content": "Hello. [PII], how can I help you?",
          "EndOffsetMillis": 6610,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              70.23,
              73.05,
              71.8
          ],
          "Redaction": {
              "RedactedTimestamps": [
                  {
                      "BeginOffsetMillis": 5100,
                      "EndOffsetMillis": 5450
                  }
              ]
          }
      },
      {
          "BeginOffsetMillis": 7370,
          "Content": "I need to cancel. I want to cancel my plan subscription.",
          "EndOffsetMillis": 11190,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "NEGATIVE",
          "LoudnessScore": [
              77.18,
              79.59,
              85.23,
              81.08,
              73.99
          ],
          "IssuesDetected": [
              {
                  "CharacterOffsets": {
                      "BeginOffsetChar": 0,
                      "EndOffsetChar": 55
                  },
                  "Text": "I need to cancel. I want to cancel my plan subscription"
              }
          ]
      },
      {
          "BeginOffsetMillis": 11220,
          "Content": "That sounds very bad. I can offer a 20% discount to make you stay with us.",
          "EndOffsetMillis": 15210,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEGATIVE",
          "LoudnessScore": [
              75.92,
              75.79,
              80.31,
              80.44,
              76.31
          ]
      },
      {
          "BeginOffsetMillis": 15840,
          "Content": "That sounds interesting. Thank you accept.",
          "EndOffsetMillis": 18120,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              73.77,
              79.17,
              77.97,
              79.29
          ]
      },
      {
          "BeginOffsetMillis": 18310,
          "Content": "Alright, I made all the changes to the account and now these discounts applied.",
          "EndOffsetMillis": 21820,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "NEUTRAL",
          "LoudnessScore": [
              83.88,
              86.75,
              86.97,
              86.11
          ],
          "OutcomesDetected": [
              {
                  "CharacterOffsets": {
                      "BeginOffsetChar": 9,
                      "EndOffsetChar": 77
                  },
                  "Text": "I made all the changes to the account and now these discounts applied"
              }
          ]
      },
      {
          "BeginOffsetMillis": 22610,
          "Content": "Awesome. Thank you so much.",
          "EndOffsetMillis": 24140,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              79.11,
              81.7,
              78.15
          ]
      },
      {
          "BeginOffsetMillis": 24120,
          "Content": "No worries. I will send you all the details later today and call you back next week to check up on you.",
          "EndOffsetMillis": 29710,
          "Id": "the ID of the turn",
          "ParticipantId": "AGENT",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              87.07,
              83.96,
              76.38,
              88.38,
              87.69,
              76.6
          ],
          "ActionItemsDetected": [
              {
                  "CharacterOffsets": {
                      "BeginOffsetChar": 12,
                      "EndOffsetChar": 102
                  },
                  "Text": "I will send you all the details later today and call you back next week to check up on you"
              }
          ]
      },
      {
          "BeginOffsetMillis": 30580,
          "Content": "Thank you. Sir. Have a nice evening.",
          "EndOffsetMillis": 32110,
          "Id": "the ID of the turn",
          "ParticipantId": "CUSTOMER",
          "Sentiment": "POSITIVE",
          "LoudnessScore": [
              81.42,
              82.29,
              73.29
          ]
      }
  ]    
}
```

# Contact Lens 对话分析功能分析的聊天的 Contact Lens 输出文件示例
<a name="contact-lens-example-output-files-chat"></a>

本节显示通过 Contact Lens 对话分析功能分析的聊天对话的架构示例。该示例显示了推断的情绪、匹配的类别、联系摘要和响应时间。

经过分析的原始文件包含完整的聊天转录。**联系详细信息**页面上聊天**转录**字段里的内容与原始 Contact Lens 分析文件中 `Transcript` 字段里的内容相同。此外，分析的文件可能包含更多字段，例如用于指示加密分析文件中有加密数据的 `Redaction` 分区。

**注意**  
 某些 `ConversationCharacteristics` 包括 `DetailsByParticipantRole` 映射，参与者角色为密钥。但是，并非 `Participants` 列表中的所有角色（如 `CUSTOMER` 或 `AGENT`）都保证在 `DetailsByParticipantRole` 对象中具有相应的密钥。参与者的某个键是否存在取决于是否有符合 Contact Lens 分析条件的数据。

## 类别
<a name="chat-categories"></a>

`PointsOfInterest` 在聊天后类别和通话后类别之间有所不同：
+ 通话后 `PointsOfInterest` 具有数毫秒的偏移量。
+ 聊天后 `PointsOfInterest` 有一个 `TranscriptItems` 数组；每个项目都有一个 `id` 和 `CharacterOffset`。

有一个 `PointsOfInterest` 数组。每个数组都有一个 `TranscriptItems` 数组：每个 `PointOfInterest` 都用于类别匹配，但每个匹配均可以跨越多个转录项目。

对于通话和聊天，`PointsOfInterest` 数组可能为空。这意味着相应类别与整个联系匹配。例如，如果在联系中未提及 `Hello` 时创建规则以匹配类别，则转录中没有任何部分可以精确指出这种情况。

**注意**  
目前，仅针对 `text/plain`、`text/markdown` 聊天消息推断类别。

## 主要亮点
<a name="chat-contactsummary"></a>

**关键要点**位于 `ConversationCharacteristics.ContactSummary.SummaryItemsDetected` 数组中。该数组中只能有一个项目，强调只能找到一组 `Issue`、`Outcome` 和 `Action` 项目。

数组中的每个对象均具有以下字段：`IssuesDetected`、`OutcomesDetected`、`ActionItemsDetected`。

每个字段都有一个包含 `Id` 和 `CharacterOffsets` 的 `TranscriptItems` 数组。它们描述了 `TranscriptItems` 和被确定为包含相应联系摘要的特定部分：问题、结果或操作项。

**注意**  
目前，只针对 `text/plain` 聊天消息推断关键要点。

## 情绪
<a name="chat-sentiment"></a>

### 总体情绪
<a name="chat-overallsentiment"></a>

联系参与者的 `DetailsByParticipantRole` 字段情绪得分与用于语音分析文件的 Contact Lens 类似。

`DetailsByInteraction` 字段会提供聊天互动 `WithAgent` 和 `WithoutAgent` 部分的 `CUSTOMER` 情绪得分。如果互动的这些部分没有客户消息，则相应的字段将不存在。

**注意**  
目前，仅针对 `text/plain`、`text/markdown` 聊天消息推断情绪。

### 情绪转变
<a name="chat-sentimentshift"></a>

`DetailsByParticipantRole` 字段包含一个对象，用于描述联系参与者（即 `AGENT`、`CUSTOMER`）的情绪转变：`BeginScore` 和 `EndScore`。

`DetailsByInteraction` 字段会提供聊天互动 `WithAgent` 和 `WithoutAgent` 部分的 `CUSTOMER` 情绪转变。如果互动的这些部分没有客户消息，则相应的字段将不存在。

情绪转变可提供有关参与者在整个聊天互动过程中情绪如何变化的信息。

## 响应时间
<a name="chat-responsetime"></a>

`AgentGreetingTimeMillis` 测量当 `AGENT` 加入聊天时与他们结束向客户发送第一条消息之时之间的时间。

`DetailsByParticipantRole` 对于每个参与者均具有以下特征：
+ `Average`：参与者的平均响应时间是多长。
+ `Maximum`：参与者的最长响应时间是多长。如果有多个转录项目具有相同的最长响应时间，那么它们是哪些项目。

要计算给定参与者的 `Average` 和 `Maximum` 响应时间，他们需要响应来自另一个参与者的消息（`AGENT` 需要响应 `CUSTOMER`，反之亦然）。

例如，如果在聊天结束之前只有一条来自 `CUSTOMER` 的消息，然后只有一条来自 `AGENT` 的消息，则 Contact Lens 将计算 `AGENT` 的响应时间，但不会计算 `CUSTOMER` 的响应时间。

**注意**  
目前，仅针对 ` text/plain`、`text/markdown` 聊天消息推断响应时间。

## 加密
<a name="chat-redaction"></a>

请注意关于聊天原始分析文件的以下信息：
+ 仅当有数据需要加密时，转录项目才会包括 `Redaction` 分区。该分区包含加密分析文件中已加密数据的字符偏移量。
+ 如果加密了两条或更多条消息，则第一个偏移量适用于第一条已加密消息，第二个偏移量适用于第二条已加密消息，依此类推。

`AGENT` 和 `CUSTOMER` 的 `DisplayNames` 将被加密，因为它们包含 PII。这一点也适用于 `AttachmentName`。

`CharacterOffsets` 会考虑加密分析文件中 `Content` 长度的加密更改。`CharacterOffsets` 描述的是加密的内容，而不是原始内容。

## 原始聊天文件示例
<a name="chat-exampleoriginalfile"></a>

```
{
    "AccountId": "123456789012",
    "Categories": {
        "MatchedCategories": [
            "agent-intro"
        ],
        "MatchedDetails": {
            "agent-intro": {
                "PointsOfInterest": [
                    {
                        "TranscriptItems": [
                            {
                                "CharacterOffsets": {
                                    "BeginOffsetChar": 0,
                                    "EndOffsetChar": 73
                                },
                                "Id": "e4949dd1-aaa1-4fbd-84e7-65c95b2d3d9a"
                            }
                        ]
                    }
                ]
            }
        }
    },
    "Channel": "CHAT",
    "ChatTranscriptVersion": "2019-08-26",
    "ContentMetadata": {
        "Output": "Raw"
    },
    "ConversationCharacteristics": {
        "ContactSummary": {
           "PostContactSummary": {
               "Content": "The customer and agent's conversation did not have any clear issues, outcomes or next steps. Agent verified customer information and finished the call."
               }
           },
            "SummaryItemsDetected": [
                {
                    "ActionItemsDetected": [],
                    "IssuesDetected": [
                        {
                            "TranscriptItems": [
                                {
                                    "CharacterOffsets": {
                                        "BeginOffsetChar": 72,
                                        "EndOffsetChar": 244
                                    },
                                    "Id": "2b8ba020-53ee-4053-b5b7-35364ac1c7df"
                                }
                            ]
                        }
                    ]
                    "OutcomesDetected": [
                        {
                            "TranscriptItems": [
                                {
                                    "CharacterOffsets": {
                                        "BeginOffsetChar": 0,
                                        "EndOffsetChar": 150
                                    },
                                    "Id": "72cc8c8d-2199-422a-b363-01d6d3fdc851"
                                }
                            ]
                        }
                    ]
                }
            ],
            
        "ResponseTime": {
            "AgentGreetingTimeMillis": 2511,
            "DetailsByParticipantRole": {
                "AGENT": {
                    "Average": {
                        "ValueMillis": 5575
                    },
                    "Maximum": {
                        "TranscriptItems": [
                            {
                                "Id": "21acf0fc-7259-4a08-b4cd-688eb56587d3"
                            }
                        ],
                        "ValueMillis": 7309
                    }
                },
                "CUSTOMER": {
                    "Average": {
                        "ValueMillis": 5875
                    },
                    "Maximum": {
                        "TranscriptItems": [
                            {
                                "Id": "c71ad383-f876-4bb3-b254-7837b6a3d395"
                            }
                        ],
                        "ValueMillis": 11366
                    }
                }
            }
        },
        "Sentiment": {
            "DetailsByTranscriptItemGroup": [
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "e4949dd1-aaa1-4fbd-84e7-65c95b2d3d9a"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3673d926-6e75-4620-a6f0-7ea571790a15"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "46d37141-32d8-4f2e-a664-bcd3f34a68b3"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3c4a2a1e-6790-46a6-8ad4-4a0980b04795"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "f9cd41b6-3f68-4e83-a47d-664395f324c0"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "21acf0fc-7259-4a08-b4cd-688eb56587d3"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "2b8ba020-53ee-4053-b5b7-35364ac1c7df"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "28d0a1ce-64d1-4625-bbef-4cfeb97b6742"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "ef9b8622-32d5-4cfd-9ccc-a242502267bc"
                        },
                        {
                            "Id": "03a9de67-f9e1-4884-a1a3-ecea78a4ce9e"
                        },
                        {
                            "Id": "cfee5ece-a671-4a11-9ec2-89aba4b7d688"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "72cc8c8d-2199-422a-b363-01d6d3fdc851"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "61bb2591-fe87-44e4-bba0-a3619c4cef1f"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "1761f27e-0989-4b6d-a046-fc03d2c6bc9c"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 3.3333333333333335,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "8cdff161-dc25-44e6-986f-fc0e08ee0a7d"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -1.6666666666666667,
                    "Sentiment": "NEGATIVE",
                    "TranscriptItems": [
                        {
                            "Id": "bcc51949-3a79-4398-be1b-a27345a8a8ad"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -3.75,
                    "Sentiment": "NEGATIVE",
                    "TranscriptItems": [
                        {
                            "Id": "7d5c07d7-3d26-4b34-ae91-39aeaeef685c"
                        },
                        {
                            "Id": "e0efbd17-9139-439b-8c80-ebf2b9b703b9"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -3.75,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "8fbb8dd4-9fd4-4991-83dc-5f06eeead9aa"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -2.5,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3b856fd9-0eeb-4fb2-93ed-95ec4aeae3a6"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "ecb8c498-96d7-448b-8360-366eeddb4090"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "d334058f-e3de-4cf1-a361-32e4e61f1839"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3ec6adb5-3f11-409c-af39-40cf7ba6f078"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "c71ad383-f876-4bb3-b254-7837b6a3d395"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "4b292b64-4a33-45ff-89df-d5a175d16d70"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "2da5a3c2-9d1b-458c-ae53-759a4e63198d"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "e23a2331-f3fc-4d3c-8a51-1541451186c9"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 3.75,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "5a27cc39-9b73-4ebe-9275-5e6723788a1b"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 3.75,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "540368c7-ec19-4fc0-8c86-0a5ee62d31a0"
                        }
                    ]
                }
            ],
            "OverallSentiment": {
                "DetailsByInteraction": {
                    "DetailsByParticipantRole": {
                        "CUSTOMER": {
                            "WithAgent": 0
                        }
                    }
                },
                "DetailsByParticipantRole": {
                    "AGENT": 1.1538461538461537,
                    "CUSTOMER": 0
                }
            },
            "SentimentShift": {
                "DetailsByInteraction": {
                    "DetailsByParticipantRole": {
                        "CUSTOMER": {
                            "WithAgent": {
                                "BeginScore": -3,
                                "EndScore": 3.75
                            }
                        }
                    }
                },
                "DetailsByParticipantRole": {
                    "AGENT": {
                        "BeginScore": 0,
                        "EndScore": 2.5
                    },
                    "CUSTOMER": {
                        "BeginScore": -3.75,
                        "EndScore": 3.75
                    },
                    "SYSTEM": {
                        "BeginScore": 2.5,
                        "EndScore": 0
                    }
                }
            }
        }
    },
    "CustomerMetadata": {
        "ContactId": "b49644f6-672f-445c-b209-f76b36482830",
        "InputS3Uri": "path to the json file in s3",
        "InstanceId": "f23fc323-3d6d-48aa-95dc-EXAMPLE012"
    },
    "JobStatus": "COMPLETED",
    "LanguageCode": "en-US",
    "Participants": [
        {
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER"
        },
        {
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM"
        },
        {
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT"
        }
    ],
    "Transcript": [
        {
            "AbsoluteTime": "2022-10-27T03:31:50.735Z",
            "ContentType": "application/vnd.amazonaws.connect.event.participant.joined",
            "DisplayName": "John",
            "Id": "740c494d-9df7-4400-91c0-3e4df33922c8",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "EVENT"
        },
        {
            "AbsoluteTime": "2022-10-27T03:31:53.390Z",
            "Content": "Hello, thanks for contacting us. This is an example of what the Amazon Connect virtual contact center can enable you to do.",
            "ContentType": "text/plain",
            "DisplayName": "SYSTEM_MESSAGE",
            "Id": "78aa8229-714a-4c87-916b-ce7d8d567ab2",
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:31:55.131Z",
            "Content": "The time in queue is less than 5 minutes.",
            "ContentType": "text/plain",
            "DisplayName": "SYSTEM_MESSAGE",
            "Id": "1276382b-facb-49c5-8d34-62e3b0f50002",
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:31:56.618Z",
            "Content": "You are now being placed in queue to chat with an agent.",
            "ContentType": "text/plain",
            "DisplayName": "SYSTEM_MESSAGE",
            "Id": "88c2363e-8206-4781-a353-c15e1ccacc12",
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:00.951Z",
            "ContentType": "application/vnd.amazonaws.connect.event.participant.joined",
            "DisplayName": "Jane",
            "Id": "c05cca74-d50b-4aa5-b46c-fdb5ae8c814c",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "EVENT"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:03.462Z",
            "Content": "Hello, thanks for reaching Example Corp. This is Jane. How may I help you?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "e4949dd1-aaa1-4fbd-84e7-65c95b2d3d9a",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 46,
                        "EndOffsetChar": 53
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:08.102Z",
            "Content": "I'd like to see if I can get a refund or an exchange, because I ordered one of your grow-it-yourself indoor herb garden kits and nothing sprouted after a couple weeks so I think something is wrong with the seeds and this product may be defective.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "bcc51949-3a79-4398-be1b-a27345a8a8ad",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:14.137Z",
            "Content": "My wife is blind and sensitive to the sun so I was going to surprise her for her birthday with all the herbs that she loves so you guys actually really let me down.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "7d5c07d7-3d26-4b34-ae91-39aeaeef685c",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:18.781Z",
            "Content": "I should be taking my business elsewhere. I don't see why I should be giving money to a company that isn't even going to sell a product that works.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "e0efbd17-9139-439b-8c80-ebf2b9b703b9",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:24.123Z",
            "Content": "Ok. Can I get your first and last name please?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "3673d926-6e75-4620-a6f0-7ea571790a15",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:29.879Z",
            "Content": "Yeah. My first name is John and last name is Doe.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "8fbb8dd4-9fd4-4991-83dc-5f06eeead9aa",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 21,
                        "EndOffsetChar": 26
                    },
                    {
                        "BeginOffsetChar": 44,
                        "EndOffsetChar": 49
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:34.670Z",
            "Content": "Could you please provide me with the order ID number?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "46d37141-32d8-4f2e-a664-bcd3f34a68b3",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:39.726Z",
            "Content": "Yes, just . Looking ...",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "3b856fd9-0eeb-4fb2-93ed-95ec4aeae3a6",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:44.887Z",
            "Content": "Not a problem, take your time.",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "3c4a2a1e-6790-46a6-8ad4-4a0980b04795",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:52.978Z",
            "Content": "Okay, that should be #5376897. You know, if the product was fine I wouldn't have to scrounge through emails.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "ecb8c498-96d7-448b-8360-366eeddb4090",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:59.441Z",
            "Content": "alright, perfect. And could you also just confirm the shipping address for me?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "f9cd41b6-3f68-4e83-a47d-664395f324c0",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 77,
                        "EndOffsetChar": 78
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:05.455Z",
            "Content": "123 Any Street, Any Town, and the zip code is 98109.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "d334058f-e3de-4cf1-a361-32e4e61f1839",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 0,
                        "EndOffsetChar": 27
                    },
                    {
                        "BeginOffsetChar": 49,
                        "EndOffsetChar": 54
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:12.764Z",
            "Content": "Thank you very much. Just waiting on my system here. .. I'll also need the last four digits of your debit card.",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "21acf0fc-7259-4a08-b4cd-688eb56587d3",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:17.412Z",
            "Content": "Ok. Last four for my debit care are 9008",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "3ec6adb5-3f11-409c-af39-40cf7ba6f078",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 27,
                        "EndOffsetChar": 31
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:22.486Z",
            "Content": "It's just too bad. I thought this was going to be the best gift idea. How can you guys be sending out defective seeds? Isn't that your whole business?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "2b8ba020-53ee-4053-b5b7-35364ac1c7df",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },        
        {
            "AbsoluteTime": "2022-10-27T03:33:38.961Z",
            "Content": "I apologize for the experience you had Mr. Doe, its very uncommon that our customer will have this issue. We will look into this and get this sorted out for you right away.",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "28d0a1ce-64d1-4625-bbef-4cfeb97b6742",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 41,
                        "EndOffsetChar": 46
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:44.192Z",
            "Content": "Well, my wife's birthday already passed, so. There's not too much you can do. But I would still like to grow the herbs for her, if possible.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "4b292b64-4a33-45ff-89df-d5a175d16d70",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:51.310Z",
            "Content": "Totally understandable. Let me see what we can do for you. Please give me couple of minutes as I check the system.",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "ef9b8622-32d5-4cfd-9ccc-a242502267bc",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:56.287Z",
            "Content": "Thank you sir one moment please.",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "03a9de67-f9e1-4884-a1a3-ecea78a4ce9e",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:01.224Z",
            "Content": "Alright are you still there Mr Doe?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "cfee5ece-a671-4a11-9ec2-89aba4b7d688",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 30,
                        "EndOffsetChar": 35
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:07.093Z",
            "Content": "Yeah.",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "2da5a3c2-9d1b-458c-ae53-759a4e63198d",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:12.562Z",
            "Content": "We are not only refunding the cost of the grow-it-yourself indoor herb kit but we will also be sending you a replacement. Would you be okay with this?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "72cc8c8d-2199-422a-b363-01d6d3fdc851",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:17.029Z",
            "Content": "Yeah! That would be great. I just want my wife to be able to have these herbs in her room. And I'm always happy to get my money back!",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "e23a2331-f3fc-4d3c-8a51-1541451186c9",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:22.269Z",
            "Content": "Awesome! We really want to keep our customers happy and satisfied, and again I want to apologize for your less than satisfactory experience with the last product you ordered from us.",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "61bb2591-fe87-44e4-bba0-a3619c4cef1f",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:26.353Z",
            "Content": "Okay! No problem. Sounds great. Thank you for all your help!",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "5a27cc39-9b73-4ebe-9275-5e6723788a1b",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:31.431Z",
            "Content": "Is there anything else I can help you out with John?",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "1761f27e-0989-4b6d-a046-fc03d2c6bc9c",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 48,
                        "EndOffsetChar": 53
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:36.704Z",
            "Content": "Nope!",
            "ContentType": "text/markdown",
            "DisplayName": "John",
            "Id": "540368c7-ec19-4fc0-8c86-0a5ee62d31a0",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:41.448Z",
            "Content": "Ok great! Have a great day.",
            "ContentType": "text/markdown",
            "DisplayName": "Jane",
            "Id": "8cdff161-dc25-44e6-986f-fc0e08ee0a7d",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:42.799Z",
            "ContentType": "application/vnd.amazonaws.connect.event.participant.left",
            "DisplayName": "John",
            "Id": "d1ba54ba-61d4-4a48-9a9a-6cd17d70b8fb",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "EVENT"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:43.192Z",
            "ContentType": "application/vnd.amazonaws.connect.event.chat.ended",
            "Id": "2d9a0e4f-faec-485f-97af-2767dde1f30a",
            "Type": "EVENT"
        }
    ],
    "Version": "CHAT-2022-11-30"
}
```

## 加密聊天文件示例
<a name="chat-exampleredactedfile"></a>

```
{
    "AccountId": "123456789012",
    "Categories": {
        "MatchedCategories": [
            "agent-intro"
        ],
        "MatchedDetails": {
            "agent-intro": {
                "PointsOfInterest": [
                    {
                        "TranscriptItems": [
                            {
                                "CharacterOffsets": {
                                    "BeginOffsetChar": 0,
                                    "EndOffsetChar": 71
                                },
                                "Id": "e4949dd1-aaa1-4fbd-84e7-65c95b2d3d9a"
                            }
                        ]
                    }
                ]
            }
        }
    },
    "Channel": "CHAT",
    "ChatTranscriptVersion": "2019-08-26",
    "ContentMetadata": {
        "Output": "Redacted",
        "RedactionTypes": [
            "PII"
        ],
        "RedactionTypesMetadata": {
            "PII": {
                "RedactionMaskMode": "PII"
            }
        }
    },
    "ConversationCharacteristics": {
        "ContactSummary": {
            "SummaryItemsDetected": [
                {
                    "ActionItemsDetected": [],
                    "IssuesDetected": [
                        {
                            "TranscriptItems": [
                                {
                                    "CharacterOffsets": {
                                        "BeginOffsetChar": 72,
                                        "EndOffsetChar": 244
                                    },
                                    "Id": "2b8ba020-53ee-4053-b5b7-35364ac1c7df"
                                }
                            ]
                        }
                    ],
                    "OutcomesDetected": [
                        {
                            "TranscriptItems": [
                                {
                                    "CharacterOffsets": {
                                        "BeginOffsetChar": 0,
                                        "EndOffsetChar": 150
                                    },
                                    "Id": "72cc8c8d-2199-422a-b363-01d6d3fdc851"
                                }
                            ]
                        }
                    ]
                }
            ]
            "ContactSummary": {
                       "PostContactSummary": {
                          "Content": "The customer and agent's conversation did not have any clear issues, outcomes or next steps. Agent verified customer information and finished the call."
                           }
                    }
            ],
        },
        
        "ResponseTime": {
            "AgentGreetingTimeMillis": 2511,
            "DetailsByParticipantRole": {
                "AGENT": {
                    "Average": {
                        "ValueMillis": 5575
                    },
                    "Maximum": {
                        "TranscriptItems": [
                            {
                                "Id": "21acf0fc-7259-4a08-b4cd-688eb56587d3"
                            }
                        ],
                        "ValueMillis": 7309
                    }
                },
                "CUSTOMER": {
                    "Average": {
                        "ValueMillis": 5875
                    },
                    "Maximum": {
                        "TranscriptItems": [
                            {
                                "Id": "c71ad383-f876-4bb3-b254-7837b6a3d395"
                            }
                        ],
                        "ValueMillis": 11366
                    }
                }
            }
        },
        "Sentiment": {
            "DetailsByTranscriptItemGroup": [
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "e4949dd1-aaa1-4fbd-84e7-65c95b2d3d9a"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3673d926-6e75-4620-a6f0-7ea571790a15"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "46d37141-32d8-4f2e-a664-bcd3f34a68b3"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3c4a2a1e-6790-46a6-8ad4-4a0980b04795"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "f9cd41b6-3f68-4e83-a47d-664395f324c0"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "21acf0fc-7259-4a08-b4cd-688eb56587d3"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "2b8ba020-53ee-4053-b5b7-35364ac1c7df"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "28d0a1ce-64d1-4625-bbef-4cfeb97b6742"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "ef9b8622-32d5-4cfd-9ccc-a242502267bc"
                        },
                        {
                            "Id": "03a9de67-f9e1-4884-a1a3-ecea78a4ce9e"
                        },
                        {
                            "Id": "cfee5ece-a671-4a11-9ec2-89aba4b7d688"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "72cc8c8d-2199-422a-b363-01d6d3fdc851"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "61bb2591-fe87-44e4-bba0-a3619c4cef1f"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "1761f27e-0989-4b6d-a046-fc03d2c6bc9c"
                        }
                    ]
                },
                {
                    "ParticipantRole": "AGENT",
                    "ProgressiveScore": 3.3333333333333335,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "8cdff161-dc25-44e6-986f-fc0e08ee0a7d"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -1.6666666666666667,
                    "Sentiment": "NEGATIVE",
                    "TranscriptItems": [
                        {
                            "Id": "bcc51949-3a79-4398-be1b-a27345a8a8ad"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -3.75,
                    "Sentiment": "NEGATIVE",
                    "TranscriptItems": [
                        {
                            "Id": "7d5c07d7-3d26-4b34-ae91-39aeaeef685c"
                        },
                        {
                            "Id": "e0efbd17-9139-439b-8c80-ebf2b9b703b9"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -3.75,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "8fbb8dd4-9fd4-4991-83dc-5f06eeead9aa"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": -2.5,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3b856fd9-0eeb-4fb2-93ed-95ec4aeae3a6"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "ecb8c498-96d7-448b-8360-366eeddb4090"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "d334058f-e3de-4cf1-a361-32e4e61f1839"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "3ec6adb5-3f11-409c-af39-40cf7ba6f078"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "c71ad383-f876-4bb3-b254-7837b6a3d395"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "4b292b64-4a33-45ff-89df-d5a175d16d70"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 0,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "2da5a3c2-9d1b-458c-ae53-759a4e63198d"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 1.6666666666666667,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "e23a2331-f3fc-4d3c-8a51-1541451186c9"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 3.75,
                    "Sentiment": "POSITIVE",
                    "TranscriptItems": [
                        {
                            "Id": "5a27cc39-9b73-4ebe-9275-5e6723788a1b"
                        }
                    ]
                },
                {
                    "ParticipantRole": "CUSTOMER",
                    "ProgressiveScore": 3.75,
                    "Sentiment": "NEUTRAL",
                    "TranscriptItems": [
                        {
                            "Id": "540368c7-ec19-4fc0-8c86-0a5ee62d31a0"
                        }
                    ]
                }
            ],
            "OverallSentiment": {
                "DetailsByInteraction": {
                    "DetailsByParticipantRole": {
                        "CUSTOMER": {
                            "WithAgent": 0
                        }
                    }
                },
                "DetailsByParticipantRole": {
                    "AGENT": 1.1538461538461537,
                    "CUSTOMER": 0
                }
            },
            "SentimentShift": {
                "DetailsByInteraction": {
                    "DetailsByParticipantRole": {
                        "CUSTOMER": {
                            "WithAgent": {
                                "BeginScore": -3,
                                "EndScore": 3.75
                            }
                        }
                    }
                },
                "DetailsByParticipantRole": {
                    "AGENT": {
                        "BeginScore": 0,
                        "EndScore": 2.5
                    },
                    "CUSTOMER": {
                        "BeginScore": -3.75,
                        "EndScore": 3.75
                    }
                }
            }
        }
    },
    "CustomerMetadata": {
        "ContactId": "b49644f6-672f-445c-b209-f76b36482830",
        "InputS3Uri": "path to the json file in s3",
        "InstanceId": "f23fc323-3d6d-48aa-EXAMPLE012"
    },
    "JobStatus": "COMPLETED",
    "LanguageCode": "en-US",
    "Participants": [
        {
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER"
        },
        {
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM"
        },
        {
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT"
        }
    ],
    "Transcript": [
        {
            "AbsoluteTime": "2022-10-27T03:31:50.735Z",
            "ContentType": "application/vnd.amazonaws.connect.event.participant.joined",
            "DisplayName": "[PII]",
            "Id": "740c494d-9df7-4400-91c0-3e4df33922c8",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "EVENT"
        },
        {
            "AbsoluteTime": "2022-10-27T03:31:53.390Z",
            "Content": "Hello, thanks for contacting us. This is an example of what the Amazon Connect virtual contact center can enable you to do.",
            "ContentType": "text/plain",
            "DisplayName": "SYSTEM_MESSAGE",
            "Id": "78aa8229-714a-4c87-916b-ce7d8d567ab2",
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:31:55.131Z",
            "Content": "The time in queue is less than 5 minutes.",
            "ContentType": "text/plain",
            "DisplayName": "SYSTEM_MESSAGE",
            "Id": "1276382b-facb-49c5-8d34-62e3b0f50002",
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:31:56.618Z",
            "Content": "You are now being placed in queue to chat with an agent.",
            "ContentType": "text/plain",
            "DisplayName": "SYSTEM_MESSAGE",
            "Id": "88c2363e-8206-4781-a353-c15e1ccacc12",
            "ParticipantId": "2b2288b4-ff6e-4996-8d8e-260fd5a8ac02",
            "ParticipantRole": "SYSTEM",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:00.951Z",
            "ContentType": "application/vnd.amazonaws.connect.event.participant.joined",
            "DisplayName": "[PII]",
            "Id": "c05cca74-d50b-4aa5-b46c-fdb5ae8c814c",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "EVENT"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:03.462Z",
            "Content": "Hello, thanks for reaching Example Corp. This is [PII]. How may I help you?",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "e4949dd1-aaa1-4fbd-84e7-65c95b2d3d9a",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 46,
                        "EndOffsetChar": 51
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:08.102Z",
            "Content": "I'd like to see if I can get a refund or an exchange, because I ordered one of your grow-it-yourself indoor herb garden kits and nothing sprouted after a couple weeks so I think something is wrong with the seeds and this product may be defective.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "bcc51949-3a79-4398-be1b-a27345a8a8ad",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:14.137Z",
            "Content": "My wife is blind and sensitive to the sun so I was going to surprise her for her birthday with all the herbs that she loves so you guys actually really let me down.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "7d5c07d7-3d26-4b34-ae91-39aeaeef685c",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:18.781Z",
            "Content": "I should be taking my business elsewhere. I don't see why I should be giving money to a company that isn't even going to sell a product that works.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "e0efbd17-9139-439b-8c80-ebf2b9b703b9",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:24.123Z",
            "Content": "Ok. Can I get your first and last name please?",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "3673d926-6e75-4620-a6f0-7ea571790a15",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:29.879Z",
            "Content": "Yeah. My first name is [PII] and last name [PII].",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "8fbb8dd4-9fd4-4991-83dc-5f06eeead9aa",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 21,
                        "EndOffsetChar": 26
                    },
                    {
                        "BeginOffsetChar": 44,
                        "EndOffsetChar": 49
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:34.670Z",
            "Content": "Could you please provide me with the order ID number?",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "46d37141-32d8-4f2e-a664-bcd3f34a68b3",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:39.726Z",
            "Content": "Yes, just . Looking ...",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "3b856fd9-0eeb-4fb2-93ed-95ec4aeae3a6",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:44.887Z",
            "Content": "Not a problem, take your time.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "3c4a2a1e-6790-46a6-8ad4-4a0980b04795",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:52.978Z",
            "Content": "Okay, that should be #5376897. You know, if the product was fine I wouldn't have to scrounge through emails.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "ecb8c498-96d7-448b-8360-366eeddb4090",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:32:59.441Z",
            "Content": "alright, perfect. And could you also just confirm the shipping address for me, [PII]",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "f9cd41b6-3f68-4e83-a47d-664395f324c0",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 77,
                        "EndOffsetChar": 82
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:05.455Z",
            "Content": "[PII], and the zip code [PII].",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "d334058f-e3de-4cf1-a361-32e4e61f1839",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 0,
                        "EndOffsetChar": 5
                    },
                    {
                        "BeginOffsetChar": 27,
                        "EndOffsetChar": 32
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:12.764Z",
            "Content": "Thank you very much. Just waiting on my system here. .. I'll also need the last four digits of your debit card.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "21acf0fc-7259-4a08-b4cd-688eb56587d3",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:17.412Z",
            "Content": "Ok. Last four for my debit card [PII]",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "3ec6adb5-3f11-409c-af39-40cf7ba6f078",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 27,
                        "EndOffsetChar": 32
                    }
                ]
            },
            "Type": "MESSAGE"
        },        
        {
            "AbsoluteTime": "2022-10-27T03:33:33.852Z",
            "Content": "It's just too bad. I thought this was going to be the best gift idea. How can you guys be sending out defective seeds? Isn't that your whole business?",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "c71ad383-f876-4bb3-b254-7837b6a3d395",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:38.961Z",
            "Content": "I apologize for the experience you had Mr [PII], its very uncommon that our customer will have this issue. We will look into this and get this sorted out for you right away.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "28d0a1ce-64d1-4625-bbef-4cfeb97b6742",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 41,
                        "EndOffsetChar": 46
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:44.192Z",
            "Content": "Well, my wife's birthday already passed, so. There's not too much you can do. But I would still like to grow the herbs for her, if possible.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "4b292b64-4a33-45ff-89df-d5a175d16d70",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:51.310Z",
            "Content": "Totally understandable. Let me see what we can do for you. Please give me couple of minutes as I check the system.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "ef9b8622-32d5-4cfd-9ccc-a242502267bc",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:33:56.287Z",
            "Content": "Thank you sir one moment please.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "03a9de67-f9e1-4884-a1a3-ecea78a4ce9e",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:01.224Z",
            "Content": "Alright are you still there Mr [PII]?",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "cfee5ece-a671-4a11-9ec2-89aba4b7d688",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 30,
                        "EndOffsetChar": 35
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:07.093Z",
            "Content": "Yeah.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "2da5a3c2-9d1b-458c-ae53-759a4e63198d",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:12.562Z",
            "Content": "We are not only refunding the cost of the grow-it-yourself indoor herb kit but we will also be sending you a replacement. Would you be okay with this?",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "72cc8c8d-2199-422a-b363-01d6d3fdc851",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:17.029Z",
            "Content": "Yeah! That would be great. I just want my wife to be able to have these herbs in her room. And I'm always happy to get my money back!",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "e23a2331-f3fc-4d3c-8a51-1541451186c9",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:22.269Z",
            "Content": "Awesome! We really want to keep our customers happy and satisfied, and again I want to apologize for your less than satisfactory experience with the last product you ordered from us.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "61bb2591-fe87-44e4-bba0-a3619c4cef1f",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:26.353Z",
            "Content": "Okay! No problem. Sounds great. Thank you for all your help!",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "5a27cc39-9b73-4ebe-9275-5e6723788a1b",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:31.431Z",
            "Content": "Is there anything else I can help you out with Mr [PII]?",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "1761f27e-0989-4b6d-a046-fc03d2c6bc9c",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Redaction": {
                "CharacterOffsets": [
                    {
                        "BeginOffsetChar": 48,
                        "EndOffsetChar": 53
                    }
                ]
            },
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:36.704Z",
            "Content": "Nope!",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "540368c7-ec19-4fc0-8c86-0a5ee62d31a0",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:41.448Z",
            "Content": "Ok great! Have a great day.",
            "ContentType": "text/plain",
            "DisplayName": "[PII]",
            "Id": "8cdff161-dc25-44e6-986f-fc0e08ee0a7d",
            "ParticipantId": "f36a545d-67b2-4fd4-89fb-896136b609a7",
            "ParticipantRole": "AGENT",
            "Type": "MESSAGE"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:42.799Z",
            "ContentType": "application/vnd.amazonaws.connect.event.participant.left",
            "DisplayName": "[PII]",
            "Id": "d1ba54ba-61d4-4a48-9a9a-6cd17d70b8fb",
            "ParticipantId": "e9b36a6d-12aa-4c21-9745-1881648ecfc8",
            "ParticipantRole": "CUSTOMER",
            "Type": "EVENT"
        },
        {
            "AbsoluteTime": "2022-10-27T03:34:43.192Z",
            "ContentType": "application/vnd.amazonaws.connect.event.chat.ended",
            "Id": "2d9a0e4f-faec-485f-97af-2767dde1f30a",
            "Type": "EVENT"
        }
    ],
    "Version": "CHAT-2022-11-30"
}
```

# 隐形眼镜对话分析所分析的电子邮件的隐形眼镜输出文件示例
<a name="contact-lens-example-output-files-email"></a>

本节显示了已通过 ContactLens 对话分析进行分析的电子邮件联系人的示例架构。该示例显示了匹配的类别和联系人链摘要。

请注意以下有关电子邮件分析输出文件的内容：
+ `Channel` 字段设置为 `EMAIL`。
+ 该`Version`字段使用`EMAIL`前缀（例如，`EMAIL-2026-01-01`）。
+ 电子邮件输出文件不包括情绪分数、情绪转变、响度或非通话时间数据。
+ 该`Categories`部分包括一个设置为的`EventSource`字段`OnEmailAnalysisAvailable`。
+ 使用联系人摘要来`ContactChainSummary`代替`PostContactSummary`，因为电子邮件分析汇总了完整的电子邮件话题（联系人链）。
+ 本`CustomerMetadata.InputFiles`节引用了存储在 Amazon S3 中的电子邮件和纯文本文件。

## 电子邮件分析输出文件示例
<a name="email-exampleoriginalfile"></a>

以下示例显示了启用分类、密文和联系人链摘要的电子邮件联系人的输出。

```
{
  "Version": "EMAIL-2026-01-01",
  "AccountId": "123456789012",
  "Channel": "EMAIL",
  "Configuration": {
    "ChannelConfiguration": {
      "AnalyticsModes": [
        "ContactLens"
      ]
    },
    "LanguageLocale": "en-US",
    "RedactionConfiguration": {
      "Behavior": "Enable",
      "Policy": "RedactedAndOriginal",
      "Entities": [],
      "MaskMode": "EntityType"
    },
    "SummaryConfiguration": {
      "SummaryModes": [
        "ContactChain"
      ]
    }
  },
  "CustomerMetadata": {
    "ContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "InstanceId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "InputFiles": {
      "EmailMessageS3URI": "connect/your-instance/EmailMessages/2026/01/15/a1b2c3d4_message.json",
      "EmailMessagePlainTextS3URI": "connect/your-instance/EmailMessages/2026/01/15/a1b2c3d4_plain_text.json"
    }
  },
  "Categories": {
    "MatchedCategories": [
      "refund-request",
      "shipping-issue"
    ],
    "MatchedDetails": {
      "refund-request": {
        "PointsOfInterest": [
          {
            "Contacts": [
              {
                "ContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
              }
            ]
          }
        ],
        "EventSource": "OnEmailAnalysisAvailable"
      },
      "shipping-issue": {
        "PointsOfInterest": [],
        "EventSource": "OnEmailAnalysisAvailable"
      }
    }
  },
  "ConversationCharacteristics": {
    "ContactSummary": {
      "ContactChainSummary": {
        "Content": "The customer reported that their order arrived damaged and requested a full refund including shipping costs. The agent confirmed the refund would be processed within 3-5 business days and offered a replacement unit."
      }
    }
  },
  "JobDetails": {}
}
```

# 排查 Amazon Connect Contact Lens 中的问题
<a name="contact-lens-troubleshoot"></a>

## 为什么我看不到或听不到未加密的内容？
<a name="where-is-unredacted-content"></a>

如果您的组织正在使用Contact Lens密文功能，则默认情况下， Amazon Connect 管理员网站中仅显示已编辑的内容。

您必须拥有查看未加密内容的权限。有关更多信息，请参阅 [在 Amazon Connect 中分配使用 Contact Lens 对话分析的权限](permissions-for-contact-lens.md)。