

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

# 设置渠道
<a name="set-channels"></a>

Amazon Connect 是一个统一的全渠道解决方案，旨在为客户的首选渠道提供个性化、高效和主动的体验。无论是通过电话、应用程序内通话和网络通话、视频、聊天、短信服务（SMS）还是电子邮件，您都可以为客户量身定制无缝体验。客户可以继续通过不同渠道与同一座席合作，但如果是不同的座席，他们的互动历史记录会被保留，这样他们就不必再重复。全渠道联络中心可改善客户体验，同时缩短解决问题的时间。

![\[Amazon Connect 客户体验，跨渠道实现无缝、个性化和积极主动。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/omnichannel-diagram.png)


**Topics**
+ [设置您的电话号码](ag-overview-numbers.md)
+ [设置客户的聊天体验](enable-chat-in-app.md)
+ [设置 SMS 消息收发](setup-sms-messaging.md)
+ [将 Amazon Connect 小部件添加到您的网站](connect-widget-on-website.md)
+ [启用 Apple Messages for Business](apple-messages-for-business.md)
+ [设置 WhatsApp 企业消息](whatsapp-integration.md)
+ [设置应用程序内通话、网络通话、视频通话和屏幕共享功能](inapp-calling.md)
+ [设置任务](concepts-getting-started-tasks.md)
+ [设置电子邮件](setup-email-channel.md)
+ [创建快速响应](create-quick-responses.md)

# 为 Amazon Connect 实例设置联络中心电话号码
<a name="ag-overview-numbers"></a>

在创建 Amazon Connect 实例后，您可以获取一个电话号码供联络中心使用。您可以使用该号码向联络中心拨打测试电话，确认它是否正常工作。您也可以在您的生产环境中使用它。
+ 有关申请的电话号码的定价信息，请参阅 [Amazon Connect 定价](https://aws.amazon.com/connect/pricing/)。
+ 有关 Amazon Connect 提供的电话功能列表，请参阅 [Amazon Connect 电信国家/地区覆盖指南](https://d1v2gagwb6hfe1.cloudfront.net/Amazon_Connect_Telecoms_Coverage.pdf)。

如果您要保留已有的电话号码，可以将其转网到 Amazon Connect 中使用。携号转网到 Amazon Connect 后，它将出现在可用的电话号码列表中，供您分配联系流。

**Topics**
+ [语音渠道](concepts-telephony.md)
+ [Stir/Shaken 认证](stirshaken.md)
+ [低延迟设计](low-latency-design.md)
+ [转网当前的电话号码](port-phone-number.md)
+ [申请和管理您的电话号码](claim-and-manage-phonenumbers.md)
+ [利用呼叫方身份识别功能实现个性化客户互动](caller-id-personalizing-customer-interaction.md)
+ [第三方号码](third-party-numbers.md)
+ [UIFN 服务支持：仅限入站](uifn-service.md)
+ [订购和转网电话号码的地区要求](phone-number-requirements.md)

# Amazon Connect 中的语音频道
<a name="concepts-telephony"></a>

**重要**  
尝试联系 Amazon 寻求支持？ 参见 [Amazon Customer Service](https://www.amazon.com/gp/help/customer/display.html)（Amazon 订单和配送）或 [AWS 支持](https://aws.amazon.com/premiumsupport/)（Amazon Web Services）。

Amazon Connect 提供了多种选择，让您的公司能够拨打和接听电话。Amazon Connect 的一大优势是为您 AWS 管理电话基础设施：运营商连接、冗余和路由。而且，它是可扩展的。

本主题介绍了 Amazon Connect 为电话提供的选项，可帮助您构建满足业务需求的解决方案。

**Topics**
+ [通话架构](#concepts-telephony-architecture)
+ [不同配置的应用场景](#concepts-use-cases)

## 通话架构
<a name="concepts-telephony-architecture"></a>

Amazon Connect 提供在 Amazon Connect 支持的所有 AWS 地区托管免费电话号码和直拨号码 (DID) 的功能。您可以在单个实例中同时使用这两种类型的号码。有关支持 countries/regions 和费用的完整列表，请参阅 [Amazon Connect 定价](https://aws.amazon.com/connect/pricing/)页面。

AWS 管理与我们的承运人网络的连接，为 Amazon Connect 支持的每个地区的多个承运人提供不同的连接。当 Amazon Connect 部署在一个区域中时，我们利用 AWS 可用区设计的内置冗余，为多个数据中心提供多个运营商接口。您可以[在此处](https://infrastructure.aws/)查看如何 AWS 管理区域的设计。

除了分布在多个可用区的 Amazon Connect 服务外， AWS 还拥有多个电话提供商。这些提供商有多个指向这些可用区中的数据中心的链接。这样可以确保如果来自运营商的单个或多个链接出现故障，仍有备用路由可确保服务保持可用。

要了解有关 Amazon Connect 架构的更多信息，请参阅 [Amazon Connect 的架构指导](architecture-guidance.md)。
+ **AWS 作为负责任的组织管理免费电话号码**

  这些电话号码是带有不同前缀代码的电话号码，拨打该号码是免费的。这样的号码使来电者可以联系到该地区以外的企业 and/or 个人，而无需为通话收取长途费。

  在美国，[联邦通信委员会](https://www.fcc.gov/consumers/guides/what-toll-free-number-and-how-does-it-work)规定了获取和使用免费电话号码的规则。在其他国家/地区，类似的理事机构确保根据当地法律管理和分配这类电话号码。

  当您向 Amazon Connect 申请或转网美国免费电话号码时，我们会在 [SOMOS](https://www.somos.com/) 注册该号码。注册号码后，我们可以选择多个运营商来提供路由和运营商冗余。这提供了最高级别的可用性，从而确保即使运营商完全中断，号码仍然可用。享有此级别的服务需要额外付费，因为这类电话号码的价格比直拨号码高，但服务可靠性和客户体验使其成为最具吸引力的选项。
+ **本地电话号码**

  直接内部拨号 (DID) 在欧洲也称为直接拨入 (DDI)，是电话公司向用户提供的一项电信服务。DID 号码提供可与本地用户的拨号模式匹配的本地电话号码。例如，在美国华盛顿州西雅图，本地拨号模式为 \$11(206)-NXX-XXXX。DID 号码的提供商将提供采用 \$11(206) 模式的号码以与本地拨号匹配。

  在美国，DID 号码由国家公用事业委员会管理。DID 号码由单个运营商管理。虽然它们是便携式的，但不能 balanced/managed 在多个承运人之间装载。这使它们不如免费电话号码可靠。

  使用 DID 号码，您可以在进行出站呼叫时显示本地呼叫线路识别，并向入站呼叫方显示本地状态。这对于提高客户应答出站和排队回拨呼叫的可能性非常有用。如果您没有发布免费电话号码，它还可以向客户显示您在他们所在地区本地，可提供比长途电话更便宜的入站路由。

  由于 DID 号码连接到单个运营商，因此 Amazon Connect 没有为 DID 号码提供运营商冗余。我们确实在多个可用区中提供了链接冗余，因此即使一个链接出现故障，该运营商仍在其他位置具有可用设施来传递呼叫。DID 号码对单个号码可容纳的呼叫数量也有容量限制，这个数字因区域而异。如果您计划使用 DID 号码作为主要呼入渠道，并且预计每个号码的并发呼叫次数超过 100 个，请务必与您的 AWS 客户团队合作，确保正确使用正确类型的 DID 号码。

  DID 号码比免费电话号码便宜，但没有免费电话号码的冗余和广泛的地理覆盖范围。本地化号码的功能对您的企业来说可能是一个具有吸引力的选项。

## 不同配置的应用场景
<a name="concepts-use-cases"></a>

### 使用 Amazon Connect 重新开始
<a name="concepts-new-config"></a>

在此案例中，仅使用申请号码流程选择新号码。有关说明，请参阅[获取本地免费或 DID Amazon Connect 电话号码](get-connect-number.md)。

### 从另一个提供商/平台迁移到 Amazon Connect
<a name="concepts-migrate-platforms"></a>

如果要从其他平台迁移到 Amazon Connect，建议您从概念证明开始，然后随着时间的推移迁移到 Amazon Connect。
+ 最佳实践是将您的现有号码转发到 Amazon Connect 中申请的一个（或多个）新号码，直到完全转换为止。
+ 完全转换后，使用[转网流程](port-phone-number.md)将您的号码转入 Amazon Connect。
+ 这为您提供了退路，以防您出现迁移问题。

### 维护两个单独的平台
<a name="concepts-two-platforms"></a>

在某些情况下，您可能具有多个需要通话的联络中心平台。下面概述了如何对此进行配置：
+ 选择一个平台作为初始呼叫处理服务，然后转发到其他平台。
+ 如果 Amazon Connect 是主要呼叫处理平台，您可以转网或申请号码。您将设计流，以使用您将在流中提供的电话号码将呼叫转接到其他平台。
+ 如果外部平台是主要呼叫处理者，您将需要将该平台配置为将呼叫转发到您在 Amazon Connect 中申请的号码。选择一个免费电话号码，这将在增加成本的情况下为您提供更好的冗余和容量，或者选择一组 DID 号码来终止对 Amazon Connect 的呼叫。
+ 对于该用例，我们建议您聘请 AWS 解决方案架构支持，以确保您的联络中心架构良好，以实现最佳结果。

# Amazon Connect 中的 Stir/Shaken 认证
<a name="stirshaken"></a>

Amazon Connect 支持对出 STIR/SHAKEN 站呼叫进行认证，以帮助防止来电显示欺骗。

当从美国 direct-inward-dial (DID) 拨打或拨打免费电话号码至北美号码计划 (NANP) 目的地（\$11 前缀）时，Amazon Connect 会使用标题来签名呼叫， STIR/SHAKEN 标题指明认证级别。

**Topics**
+ [什么是 STIR/SHAKEN？](#what-is-stirshaken)
+ [Amazon Connect 认证级别](#attestation-levels)
+ [A 级认证要求](#attestation-level-a)
+ [B 级认证要求](#attestation-level-b)
+ [C 级认证示例](#examples-c-attestation)
+ [需要了解的重要事项](#important-attestation)

## 什么是 STIR/SHAKEN？
<a name="what-is-stirshaken"></a>

该 STIR/SHAKEN 框架旨在打击电话网络中的欺诈性来电显示欺骗行为。它由两个部分组成：
+ STIR（安全电话身份验证修订版）：这是一套底层协议集，用于对呼叫号码进行加密签名和验证。
+ SHAKEN（基于签名对断言信息的处理KENs）：跨网络实现这些协议的指导方针。

有关 STIR/SHAKEN 的更多信息，请参阅美国联邦通信委员会（FCC）网站上的[使用来电显示认证打击欺诈性机器人电话](https://www.fcc.gov/call-authentication)。

## Amazon Connect 认证级别
<a name="attestation-levels"></a>

在签署出站电话时，Amazon Connect 会分配以下三个认证级别之一：
+ A 级（完全）- Amazon Connect：
  + 验证了主叫方的身份
  + 确认了主叫方有权使用该主叫号码
+ B 级（部分）- Amazon Connect：
  + 验证了主叫方的身份
  + 无法验证其使用该号码的授权
+ C 级（网关）- Amazon Connect：
  + 发起通话
  + 无法验证主叫方的身份
  + 无法验证该号码的合法使用

## A 级认证要求
<a name="attestation-level-a"></a>

如果您受 AWS 服务条款约束或是授权 AWS 解决方案 Provider/Distribution 销售商的客户，并且满足以下任一条件，则您的来电将获得 A 级认证：
+ 通过 Amazon Connect 门户网站/API 申请的号码。
+ 已移植到 Amazon Connect 中的号码。
+ 与您的账户对应的第三方号码，并附有经过验证的文档。

## B 级认证要求
<a name="attestation-level-b"></a>

在以下情况下，您的呼叫将获得 B 级认证：
+ 您已收到通知，需要其他信息才能维持 A 级认证。
+ 我们尚未通知您我们已成功验证您提供的信息。

## 获得 C 级认证的呼叫示例
<a name="examples-c-attestation"></a>

所有未获得 A 级或 B 级认证的呼叫都将获得 C 级认证。

以下是获得 C 级认证的呼叫示例：
+ 客户使用未经授权的解决方案提供商拨打的电话。
+ 违反 AWS 服务条款拨打的电话（例如，转移呼叫）。
+ 我们已通知您需要其他信息，但未在指定日期之前收到所要求的证明文件的案例。

## 需要了解的重要事项
<a name="important-attestation"></a>
+ 虽然 Amazon Connect 向承运人提供 STIR/SHAKEN 标头，但 end-to-end由于某些运营商网络中的旧设备无法传输这些标头，因此可能无法保留认证。
+  运营商可能会使用认证级别作为其确定是否在网络中接通呼叫的过程的一部分。
+  为了保持对您的来电的最高认证水平，Amazon Connect 可能会要求您提供更多信息。在我们发送给您的通知电子邮件中，我们将说明您何时需要回复所要求的信息。任何在提供信息方面的延迟都可能影响您通话的认证级别，并最终可能影响您通话的成功送达率。

# 设计低延迟的 Amazon Connect 联络中心，确保通话质量
<a name="low-latency-design"></a>

**注意**  
自 2023 年 7 月起，我们简化了申领位于您的 Amazon Connect 实例所在 AWS 地区以外的国家/地区的电话号码的要求。该流程已得到简化，无需选择性批准。相反，我们提供最佳实践设计指南。这使您可以更轻松地使用在美国东部地区创建的 Amazon Connect 实例，然后在日本申领号码。或者，如果您的实例是在亚太地区（新加坡）创建的，则无需联系 AWS Support 即可申领欧洲或美国地区的电话号码。  
我们将继续扩展 Amazon Connect 的支持，以便您随时随地在所需国家/地区申请电话号码。

如果您要将 Amazon Connect 实例配置为支持您所在国家/ AWS 地区以外的电话号码，我们建议您采用以下最佳实践。

1. 将您的电话号码或代理商固定在他们所在的同一 AWS 区域。例如，如果您的代理位于美国地区，那么您的 Amazon Connect 实例也应在美国的某个 AWS 地区创建。或者，如果您的电话号码位于欧盟国家，则也应在欧盟 AWS 区域创建您的 Amazon Connect 实例。

   1. 如果您的电话号码**和**代理所处的 AWS 区域与创建 Amazon Connect 实例的区域不同，则网络延迟 (WebRTC RTT) 的呼叫延迟会延长到 500 毫秒以上。这种延迟可能会导致通话质量问题。

1. 在生产环境中设置 Amazon Connect 联系中心之前，请先计算延迟。在测试环境中执行以下步骤：

   1. 使用 [Amazon Connect Endpoint Test Utility](check-connectivity-tool.md) 来检查延迟。

   1. 使用基于互联网的外部工具（例如）计算将电话从一个国家/ AWS 地区路由到该地区的延迟。[WonderNetwork](https://wondernetwork.com/)

   1. 对于具有最佳通话质量的呼叫，我们建议配置延迟 end-to-end小于 500 毫秒。

   1. 您可以确定，对于网络和电话延迟而言，在高达 900 毫秒的延迟下，通话质量是可以接受的。（900 毫秒是 500 毫秒的网络延迟和 400 毫秒的运营商延迟的总和。） 但是，如果您注意到可能由延迟引起的通话质量问题，并且排除了其他潜在原因（例如，既未检测到丢包也未检测到抖动），建议您配置 Amazon Connect 实例或电话以降低延迟。例如，在电话或座席所在的区域内创建您的 Amazon Connect 实例。
**重要**  
当网络和电话的呼叫延迟都大于 900 毫秒时，会导致座席和客户之间出现明显的延迟。

1. 检查延迟是否符合您的设计。

   在您申领号码后，您可以立即拨打该号码，以了解客户的体验会是什么样子。Amazon Connect 使用[默认流](contact-flow-default.md)来增强您的初始体验。

   要测试自定义流，请为其[分配一个电话号码](associate-claimed-ported-phone-number-to-flow.md)，然后拨打该号码。

# 将当前的电话号码转网到 Amazon Connect
<a name="port-phone-number"></a>

您可以将现有的电话号码转网到 Amazon Connect 联络中心。

**Topics**
+ [携号转网前的注意事项](things-to-know-before-porting.md)
+ [Amazon Connect 实例的韩国转网规定](porting-numbers-sk.md)
+ [泰国号码转网须知](porting-numbers-th.md)
+ [携号转网](porting-your-phone-numbers.md)
+ [携号转网完成后](porting-troubleshoot.md)

# 携号转网到 Amazon Connect 之前的注意事项
<a name="things-to-know-before-porting"></a>

本节的主题解释了哪些号码可以携号转网、需要多长时间以及可能产生的费用。

这些主题中使用了以下术语：

**Letter of Authorization**  
授权书 (LOA) 是一份法律文件，您可以在其中向 Amazon Connect 运营商声明，您有权将电话号码从当前运营商转网到 Amazon Connect 运营商。传统上，这是一份需要实际签名的纸质文档。

**Losing carrier**  
也称为您当前的运营商。这是当前持有您电话号码所有权的运营商。您原来的运营商会审核授权书（LOA）中提供的所有信息，并验证这些信息是否与为您存档的信息一致。

**双方商定的日期和时间**  
在 LOA 获得前运营商的批准后，前运营商和新运营商将会商定转网的日期和时间。

**电话号码便携性**  
携号转网允许您将您的电话号码转移到其他运营商。运营商和国家/地区可能有独特的流程和程序。

**获胜的航空公司**  
也就是 Amazon Connect 运营商。这是电话号码将要入网的运营商，转网完成后该电话号码将归其所有。

**Topics**
+ [什么是携号转网？](what-is-phone-number-porting.md)
+ [它的成本是多少？](fees-for-number-porting.md)
+ [我可以携号转网吗？](what-numbers-can-be-ported.md)
+ [携号转网需要多长时间？](how-long-for-number-porting.md)
+ [我可以取消预定的携号转网吗？](cancel-port-request.md)
+ [我什么时候可以取消现有的电信服务？](cancel-current-service.md)

# 携号转网到 Amazon Connect 意味着什么？
<a name="what-is-phone-number-porting"></a>

携号转网是将电话号码从一个电话服务提供商或运营商转移到另一个电话服务提供商或运营商的过程。许多企业和组织已经有了一个向其客户进行宣传的电话号码，改变此号码将会造成很大的问题。

如果您从当前运营商携号转网到 Amazon Connect，联络中心就可以继续使用相同的电话号码。无需更新您的业务联系信息。

## 携号转网过程中的停机和服务中断
<a name="porting-downtime"></a>

携号转网过程会要求前运营商从其系统中删除您的号码，然后新运营商会将您的号码添加到他们的系统中，并更新号码路由。大多数携号转网会在 15-30 分钟内完成，可能会导致通话中断。为了确保工程师能够及时排除故障，大多数前运营商只会在正常工作时间进行携号转网操作。运营商通常会留两小时的转网沟通窗口，以解决可能出现的任何问题。

有关可用携号转网日期和时间的详细信息，请参阅您所在国家或地区的[在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。

## 携号转网后会发生什么
<a name="what-happens-after-number-porting"></a>

只要您继续为该电话号码付费，并且不将其从您的 Amazon Connect 实例中释放，该号码就会一直属于您，并向您收取相应的费用。

要释放电话号码，请按照[将一个电话号码从 Amazon Connect 释放回库存](release-phone-number.md)中的步骤操作。

当您的 Amazon Connect 实例释放电话号码后：
+ 您不必再为此付费。
+ 您无法重新申请该电话号码。
+ Amazon Connect 保留允许其他客户申请该电话号码的权利。

如果您将联络中心从 Amazon Connect 移除，并希望从 Amazon Connect 中转出电话号码，请参阅[将电话号码从 Amazon Connect 中转出](port-away.md)。

# 携号转网到 Amazon Connect 需要多少费用？
<a name="fees-for-number-porting"></a>

Amazon Connect 不对携号转网收取费用。您现有的运营商可能会因断开连接和提前终止服务而收取相关费用。

携号转网到 Amazon Connect 后，[Amazon Connect 服务的使用和相关的电话费](https://aws.amazon.com/connect/pricing/)将适用标准定价。

# 您可以转网到 Amazon Connect 的电话号码
<a name="what-numbers-can-be-ported"></a>

并非所有电话号码都可以转网。能否携号转网取决于几个因素。例如：
+ 电话号码所在国家或地区的规定。
+ 前运营商和新运营商之间的协议。
+ 要转网的电话号码类型。
+ 您与当前服务提供商签订的服务合同。

要了解您当前拥有的电话号码（无论是本地电话号码、移动电话号码还是免费电话号码）能否携号转网到 Amazon Connect：

1. 请查看您所在的国家或地区是否支持携号转网：[在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。

1. 然后[提交 Amazon Connect 支持工单进行号码验证](about-porting.md#step1-porting)。

## 将从其他联络中心提供商处购买的号码进行转网
<a name="numbers-from-other-providers"></a>

在大多数情况下，您可以将从其他联络中心提供商处购买的号码进行转网。请与您当前持有该号码分配权的联络中心提供商确认，并与他们合作，确保授权书 (LOA) 中提供的信息正确无误。

## 短电话号码的转网
<a name="port-short-numbers"></a>

由于不同国家或地区的电信法规，需要对短电话号码进行 case-by-case评估。要验证您的电话号码是否可以携号转网到 Amazon Connect，[请提交 Amazon Connect 支持工单](about-porting.md#step1-porting)。

## 仅转网到一个欧盟地区
<a name="port-across-eu-regions"></a>

Amazon Connect 区域的 EU-CENTRAL-1 和 EU-WEST-2 是对称的欧洲区域，可为电话提供相同的运营商覆盖范围。如果无法携号转网到其中一个区域的实例，那么也就无法携号转网到另一个区域的实例。

如果您已携号转网到 EU-CENTRAL-1 或 EU-WEST-2 区域，并想将电话号码转移到其他区域，[请提交 Amazon Connect 支持工单](about-porting.md#step1-porting)以获得帮助。

北美地区的 US-EAST-1 和 US-WEST-2 也是如此。

## 从一组号码中转网一个子号码
<a name="port-subset-of-numbers"></a>

如果您有一组号码，在某些情况下，Amazon Connect 可以转网您的部分电话号码。在其他情况下，运营商要求转网所有的电话号码。

如果您只想将您当前拥有的电话号码的一部分转网到 Amazon Connect，[请提交 Amazon Connect 支持工单](about-porting.md#step1-porting)，以验证电话号码是否可以转网。我们将验证哪些操作可以完成，并协助您完成后续步骤。

**注意**  
如果您只转网了部分电话号码，则仍需承担前运营商的剩余电话号码及相关费用。  
如果您打算释放未转网到 Amazon Connect 的剩余电话号码，建议您等到请求的携号转网完成，避免服务中断。

## 妥协书
<a name="letter-of-compromise"></a>

在携号转网之前，一些客户会要求 Amazon 提供一份妥协书，声明如果他们迁移了联络中心，Amazon 将允许他们将其电话号码从 Amazon Connect 转移到其他服务。由于不同国家/地区的电信法规，因此需要对电话号码进行 case-by-case评估。要验证您的电话号码是否可以转网到 Amazon Connect，[请提交 Amazon Connect 支持工单](about-porting.md#step1-porting)。

# 携号转网到 Amazon Connect 需要多长时间？
<a name="how-long-for-number-porting"></a>

**重要**  
针对美国直拨号码和免费电话号码的移植申请，提交时间不得早于预定的移植日期前 30 天。  
对于其他国家/地区的号码，建议您尽可能提前在预定的上线日期之前提交号码移植申请。

携号转网所需的时间取决于国家/地区、请求的复杂性、要移植的号码类型和数量以及您当前的运营商。电信运营商也可能会因为节假日和网络维护，在这几天禁止携号转网。因此，Amazon Connect 要求在待定上线日期前几个月就开始接受携号转网请求。

有关国家/地区及其携号转网窗口的列表，请参阅[在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。

## 在美国和加拿大境内
<a name="how-long-porting-us"></a>

美国或加拿大的电话号码通常需要两到四周的时间才能完成携号转网，此前必须验证电话号码是否可以携号转网，并向运营商正确提交所有所需文件。

## 除了美国和加拿大以外
<a name="how-long-non-us-porting"></a>

美国和加拿大以外的电话号码需要两到六个月才能完成完整的携号转网过程。这包括：
+ 是时候将所有文件提交给 Su AWS pport 了。
+ 是时候让 Amazon Connect 服务提供商验证他们是否可以转网您请求的所有电话号码了。
+ 是时候让前提供商验证所提供的文档了。

在前提供商验证所有文件后，前提供商和 Amazon Connect 服务提供商将安排一个双方商定的日期，将号码携号转网到Amazon Connect。

## 哪些因素会影响携号转网时间表？
<a name="what-affects-porting-timelines"></a>

如果所需的授权书 (LOA) 上提供的信息不正确，可能会对携号转网时间产生负面影响。这会导致 LOA 被拒绝并重置携号转网时间表。

## 在多个国家或运营商之间转网多个号码
<a name="porting-many-numbers-many-countries"></a>

复杂的携号转网请求有自己的时间表。本主题其他部分讨论的时间表不适用于复杂的携号转网请求。

针对超过 10 个不同号码范围或 10 个不同位置的复杂移植请求被视为一个项目，需要与您的 AWS 客户团队进行高级协调。如果您是商业或者企业客户，请联系您的 Amazon Connect 解决方案架构师 (SA) 或者技术客户经理 (TAM)，以帮助您规划携号转网。

为了使该流程尽可能顺利，请在提交携号转网请求前，收集以下信息：
+ 从要转网号码的当前运营商处获取最近的电话账单。
+ 所需的特定国家/地区文件，请参阅[在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。
+ 可以代表贵组织行事以支持携号转网请求的中心联系人的联系信息。

## 我可以选择携号转网日期吗？
<a name="choosing-port-date"></a>

**重要**  
Amazon Connect 服务团队支持从澳大利亚新南威尔士州悉尼时间星期一上午 9 点到美国华盛顿州西雅图时间星期五下午 5 点之间转网电话号码。

根据所涉及的国家和运营商，您可以选择携号转网日期和时间。不过，在大多数情况下，前运营商会根据自己的日程安排选择日期和时间，然后将其传达给 Amazon Connect。

如果您想申请特定的日期和时间，请在您的支持案例中提供相关信息。我们将与运营商合作，确定他们能否支持在您要求的日期和时间进行携号转网。

**注意**  
大多数运营商仅在正常工作时间内支持携号转网操作。有关您所在国家/地区的可用转网日期和时间的详细信息，请参阅 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。

# 我可以在 Amazon Connect 中取消预定的携号转网吗？
<a name="cancel-port-request"></a>

**重要**  
如果您需要取消或重新安排携号转网时间，请立即通知我们。

根据服务所在国家/地区的不同，在双方商定好日期和时间之后，一般很难取消。

由于运营商之间需要协调，Amazon Connect 支持要求至少提前 5 个工作日通知才能取消或重新安排携号转网请求（如果该号码尚未开始转网）。如果您需要取消或重新安排携号转网时间，请立即通知我们。

端口移至 RespOrg （责任组织）后，您无法取消该端口。携号转网已完成。有关这种情况，请参阅 [转网到 Amazon Connect 后，将电话号码恢复到您原来的运营商](revert-porting-to-original-carrier.md)。

如果成功取消了携号转网，携号转网时间表将被重置，运营商将需要重新确定一个双方同意的日期和时间。这将影响您携号转网的总体时间表。

**注意**  
请注意，有时由于流程自动化的原因，无法取消携号转网请求，但 Amazon Connect 支持会尽一切努力阻止该请求。

# 携号转网到 Amazon Connect 时，我什么时候可以取消现有的电信服务？
<a name="cancel-current-service"></a>

在您的电话号码转网到 Amazon Connect 中并确认可以正常使用之前，请勿取消您现有的电信服务。

在您的号码转网之前取消现有的电信服务会释放您电话号码的分配权，可能导致您丢失该号码。

# 有关携号转网到韩国 Amazon Connect 项目的指南
<a name="porting-numbers-sk"></a>

韩国的规则与其他国家的规则不同。为了帮助满足韩国的要求，这里有一些有用的提示。
+ 在韩国规划您的 Amazon Connect 项目时，您需要做的最重要的事情之一就是预先计划和索取信息。要在韩国携号转网，您可能需要填写并提交 5 份以上的表格，并且可能需要与当地监管机构联系，然后才能获得携号转网批准。
+ 所有地理号码（即除了免费号码、全国号码、代表号码或 070 VOIP 号码以外的号码）必须在物理终端上使用至少 6 个月后才能转网到 Amazon Connect 中。但是，如果号码已存在至少 3 个月，则可以通过向韩国电信部提交特殊申请来转网该号码；获得批准后，可以开始转网程序。Amazon Connect 可以为您提供表格，但您必须填写并直接提交给监管机构。
+ 所有地理号码、代表号码或免费号码（GRTFN）都会被分配一个 070 VOIP 号码，GRTFN 会终止于该号码，并与运营商的 GRTFN 相关联。在删除相关的 GFTN 号码之前，请勿从您的 Amazon Connect 实例中删除此 070 号码。否则，所有入站和出站呼叫都将失败。
+ 代表号码 (RN) 有最低话费要求，取决于运营商确定的代表号码“吸引力”。代表性号码的规模不同，成本也不同。根据您订购的代表性号码的规模，此服务的最低收费频道将从 2 个频道到 500 个频道不等。管理方法是在账户中添加与所需频道数量相等的最少号码数量。在 [Amazon Connect 定价](https://aws.amazon.com/connect/pricing/)页面上显示的是分摊费用服务，系统每天使用费为 0.5433 美元。这些额外的共享费用号码 DIDs 无法分配呼叫流，因此来自这些号码的出站呼叫将失败。如果您断开连接 RNs，请务必同时删除其关联的特殊号码，以免将来计费。在不移除底层 RN DIDs 的情况下删除或减少特殊编号违反了 Amazon Connect 服务条款。

# 泰国号码转网须知
<a name="porting-numbers-th"></a>

泰国的转网与其他国家不同。电话号码不能直接转移到 Amazon Connect，而是需要将当前提供商的呼叫路由到 Amazon Connect。为了帮助您制定计划，以下是一些有用的提示。
+ 转网到 Amazon Connect 的号码必须仅来自 E1 或 SIP 服务。
+ E1 或 SIP 服务以及所有相关号码必须首先路由到 Amazon Connect 提供商的网络。Amazon Connect 将帮助协调这项工作。根据您的配置，这可能需要向您当前的提供商或 Amazon Connect 的提供商支付额外费用，以支持重新路由。
+ 一旦 E1 或 SIP 服务转网到 Amazon Connect 的提供商，就可以激活服务中的选定号码，以便在 Amazon Connect 上使用。激活后，这些号码将使用 Amazon Connect 进行入站和出站呼叫。

# 将您的电话号码从运营商转网到 Amazon Connect
<a name="porting-your-phone-numbers"></a>

您从现运营商携号转网到 Amazon Connect 需要多个步骤。重要的是要在预定的上线日期前几个月就开始执行，并将所有文档整理妥当。

**Topics**
+ [如何携号转网到 Amazon Connect](about-porting.md)
+ [将号码转网到 Amazon Connect 的文档要求](porting-documentation-requirements.md)
+ [如何在携号转网前验证联系流](verify-flows-before-porting.md)

# 如何携号转网到 Amazon Connect
<a name="about-porting"></a>

以下是典型的携号转网请求步骤。这一过程需要及时沟通才能取得进展。如果您回复信息请求的时间超过 30 天，您的携号转网请求可能会被取消、重新安排或从头开始。

**文件要求**：有关特定国家/地区对携号转网的要求列表，请参阅 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。

## 步骤 1：创建 Amazon Connect 支持案例
<a name="step1-porting"></a>

**重要**  
如果您要从不同运营商和国家/地区转网多个号码，请为要从不同运营商和不同国家/地区转网的每组电话号码提交单独的工单。这简化了沟通、跟踪和 LOA 流程。

1. 选择 “[账户和账单](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=service-connect-number-management)”，访问 AWS 支持 控制台中预先填写的表单。您必须登录自己的 AWS 账户才能访问表单。

1. 对于**服务**，应选择 **Connect（号码管理）**，如下图所示。  
![\[已完成转网请求的创建案例页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/porting-support1.png)

1. 对于 “**类别**”，选择 “**北美号码移植” US/Canada/Mexico (**) **或 “非北美号码移植**”。

1. 选择所需的严重性。

1. 选择**下一步：其他信息**

1. 在**其他信息**页面上：

   1. 输入主题。

   1. 在**描述**下，包括以下内容：
      + Amazon Connect 实例 ARN。有关其查找方法的说明，请参阅[找到您的 Amazon Connect 实例 ID 或 ARN](find-instance-arn.md)。

        如果您提供了开发实例的 ARN，而不是生产实例的 ARN，您只能在实例处于同一区域和同一 AWS 账户的情况下，自行在这些实例间迁移电话号码。有关限制和说明，请参阅[在实例之间移动 Amazon Connect 电话号码](move-phone-number-across-instances.md)。
      + 电话号码。例如，使用 E.164 格式：[\$1][国家/地区代码][包括区号的电话号码]。

        如果您要移植多个电话号码，请提供您要移植的至少一个电话号码。
      + 在获得移植批准后，这些号码必须被[映射](associate-claimed-ported-phone-number-to-flow.md)到的[流](connect-contact-flows.md)的确切名称。
      + 移植日期 (yyyy-mm-dd).
**重要**  
针对美国直拨号码和免费电话号码的移植申请不得早于移植日期前 30 天提交。
      + 移植时间（hh: mm AM/PM 时区-12 小时制）
      + 您当前的运营商
      + 被授权对您的当前电话服务进行更改的人员的联系信息。
**重要**  
请勿附上任何包含个人信息的文件。在我们审查您的案例后，会向您发送指向我们安全存储（Amazon S3）的链接，以便您提交所需的文件。[步骤 3：使用我们提供给您的链接提交所需文件](#step3-porting)中对此进行了描述。

1. 选择**下一步：立即解决或联系我们**。

1. 在**立即解决或联系我们**页面上：

   1. 选择**联系我们**选项卡，然后选择您的**首选联系语言**和首选联系方式。

1. 选择**提交**。

1.  Amazon Connect 团队将审核您的票证并与您联系。

## 第 2 步：填写授权书（LOA）。
<a name="step2-porting"></a>

如果该电话号码符合转网条件，Amazon Connect 团队将为您提供一份授权书 (LOA)，供您填写。填写所有必填字段并签署 LOA。

 除 LOA 外，许多国家的电信法规还要求提供其他文件来注册号码，例如业务证明、地址证明和身份证明。有关特定国家/地区对携号转网的要求列表，请参阅 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。

### 如何完成 LOA
<a name="how-to-complete-loa"></a>

所有转网都需要填写授权书 (LOA)。LOA 授权您的当前运营商释放您的号码并允许转网该号码。
+ 每个前运营商的号码都需要单独的 LOA。

要填写 LOA，请提供以下信息：
+ 要转网的号码
+ 有关您当前运营商的信息，例如他们的公司名称和联系信息。
+ 有权更改您电话服务的人员的联系信息。您在 LOA 上提供的姓名、地址和信息必须与您当前运营商存档的信息完全一致。为帮助确保转网过程顺利进行，请附上运营商提供的客户服务记录 (CSR) 或最新电话账单的副本。上面应有您的姓名、地址和相关的电话号码。检查 LOA 上的信息是否与您的 CSR **精确匹配**。
+ 如果您对当前服务的具体细节有任何疑问，请咨询您当前的运营商，以确保数据准确无误。这将最大限度地降低 LOA 被拒绝的风险。

**重要**  
您的 LOA 表必须满足以下条件：  
它必须清晰易读：书写清晰或打字清晰。
它必须列出您的公司名称、公司地址和联系人姓名。此信息必须与当前运营商 CSR 上的信息一致。
其中必须包括传统的手写签名：用钢笔和墨水签名的实体纸质文件，也称为湿签名。大多数运营商都拒绝电子签名或印刷签名。
日期必须在最近 15 天内。
如果您还想转网免费电话号码，则必须将其也包括在内。LOA 上最多可以列出 10 个免费电话号码。如果申请转网的电话号码超过 10 个，则需要附上电子表格。在 LOA 上列出电话号码的地方注明“见附件”。
它必须仅包含属于同一运营商且位于同一国家/地区的电话号码。如果您目前有多个承运人和国家，则需要提交多个承运人和国家 LOAs。
要进一步降低 LOA 被拒绝的风险，请参阅 [运营商拒绝 LOA 的常见原因](porting-documentation-requirements.md#why-port-request-rejected)。

## 步骤 3：使用我们提供给您的链接提交所需文件
<a name="step3-porting"></a>

在 Amazon Connect 团队说你可以移植电话号码之后，你需要提交所有必需的文件。以下步骤说明了操作方法。

**注意**  
AWS 支持 提供了一个安全的 Amazon S3 链接，用于上传所有请求的文档。在收到链接之前，请勿继续操作。

**要提交所需文件**

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

1. 登录您的 AWS 账户，然后打开专门为您的账户生成的 Amazon S3 上传链接。
**注意**  
此链接将于十天后过期。此链接专为案例创建账户生成。此链接需要账户中的授权用户执行上传。

1. 选择**添加文件**，然后选择申请所需的文件。

1. 展开权限一节，选择**指定单个 ACL 权限**。

1. 在**访问控制列表 (ACL)** 部分的末尾，选择**添加被授权者**，然后将提供的密钥粘贴 AWS 支持 到被**授权**者框中。

1. 在**对象**下，选择**读取**复选框，然后选择“上传”。

在您提供授权书 (LOA) 和任何其他所需文件后，Amazon Connect 团队会与您现有的电话运营商确认 LOA 上的信息是否正确。如果 LOA 上提供的信息与您的电话运营商存档的信息不匹配，Amazon Connect 团队联系您以更新 LOA 上提供的信息。

## 步骤 4：将转网请求发送给 Amazon Connect 运营商
<a name="step4-porting"></a>

在您提交了所有必需的文件后，Amazon Connect 团队将代表您向新运营商提交转网申请。
+ 前运营商和新运营商会遵循行业标准流程来验证 LOA 的内容和提交的文件。
+ 如果 LOA 存在差异，则会被拒绝，您需要纠正差异并提交新的 LOA。
+ 运营商成功验证 LOA 后，他们将确认您请求的日期或提供实际转网的可用日期。这称为“双方商定的日期和时间”。
+ 您应验证“双方商定的日期和时间”是否正确。
**重要**  
如果您的 LOA 包含多个电话号码，则有些号码可能被赋予不同的“双方商定的日期”。检查每个状态 dates/times 和状态。

大多数运营商要求在正常工作时间内完成转网。有关特定国家/地区的工作时间，请参阅 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。

## 步骤 5：验证实例中的号码，为流分配电话号码，请求增加服务配额
<a name="step5-porting"></a>

在双方商定的日期和时间前大约 3-4 天，Amazon Connect 支持团队会将转网的电话号码加载到您提供的实例 ARN 中，并通知您。现在，您需要执行以下步骤：

1. 登录您的 Amazon Connect 管理网站并确认您的电话号码已列出。有关说明，请参阅[列出已申请到您的 Amazon Connect 实例中的电话号码或导出到 CSV 文件中](list-claimed-phone-numbers.md)。

1. [将电话号码与所需的联系流相关联](associate-claimed-ported-phone-number-to-flow.md)，这样电话号码就可以在转网完成后接听电话了。如果您在为联系流分配多个电话号码时需要帮助，请在支持请求中告知我们。
**重要**  
预计您或您的合作伙伴会将您的电话号码与流相关联。
如果您想让 S AWS upport 代表您执行此操作，请在支持请求中注明这一点。您必须指定要与每个电话号码匹配的流程 name/ARN 。
您或您的合作伙伴必须验证每个电话号码关联的流是否正确。

1. 如需更改服务限额以支持您的应用场景，请至少在双方商定的日期前五天[提交服务限额申请](amazon-connect-service-limits.md)。例如，您可能需要增加每个实例的并发呼叫数量，或者允许国家/地区进行出站呼叫。

## 步骤 6：转网日期的活动清单
<a name="step6-porting"></a>

携号转网可能会造成混乱：该过程涉及更新一个国家或地区运营商之间的电话号码路由，包括未参与实际转网的运营商。在极少数情况下，可能需要几个小时才能完全更新所有电信运营商的所有路由。

### 为尽量减少对电话服务的干扰而执行的步骤
<a name="step5a-porting"></a>

请在双方商定的移植日期和时间执行以下步骤：
+ 再次检查[步骤 5](#step4-porting) 中列出的活动是否已完成：

  1. 验证您已移植的号码出现在所请求的 Amazon Connect 实例中，并且这些号码被分配给了正确的流。

  1. 确认是否已执行 Amazon Connect 实例所需的任何服务限额增加或更改。例如，增加每个实例的并发呼叫数量，或者允许国家/地区进行出站呼叫。
+ 监控来自现有联络中心的呼叫流量，确认入站流量已停止。
+ 对您的 Amazon Connect 实例进行呼叫测试，以验证呼叫是否被路由到正确的联系流。
+ 确保座席已登录到联系人控制面板 (CCP)，并且可以接听来电。
+ 监控 Amazon Connect 实例的呼叫流量，以确认您收到的流量是否达到预期水平。

### Amazon Connect 团队为确保平稳过渡而采取的步骤
<a name="step5b-porting"></a>

1. 在 Amazon Connect 团队收到转网已完成的确认后，我们将进行最终测试，以确认转网是否成功，电话号码能否接收 Amazon Connect 的呼叫。

1. 测试完成后，我们将通知您并要求您验证转网是否成功。

# 将号码转网到 Amazon Connect 的文档要求
<a name="porting-documentation-requirements"></a>

授权书 (LOA) 是一种行业标准文档类型，运营商使用它来授权将电话号码从一家运营商转移到另一家运营商。在许多情况下，LOA 是针对国家或地区、运营商或前运营商和新运营商之间的转网关系而制定的。

如果您的号码可以转网，Amazon Connect 团队将为您提供以下信息：
+ 适合具体情况的 LOA 表格。
+ 指向安全 Amazon S3 存储空间以便上传 LOA 和任何其他所需文件的链接。

 有关更多信息，请参阅 [如何完成 LOA](about-porting.md#how-to-complete-loa)。

此外，一些国家/地区的法规要求提供当地营业地址和特定文件才能使用电话号码。有关特定国家/地区的要求，请参阅 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。如果需要，我们会要求在填写 LOA 时一并提交此信息。

## 运营商拒绝 LOA 的常见原因
<a name="why-port-request-rejected"></a>

前运营商最初可能拒绝 LOA 的常见原因有四种：
+ 不理想的业务关系

  这通常意味着您有未付余额，或运营商收取了转网费。在您向运营商支付账单或费用后，我们将重新提交转网请求。
+ 姓名或地址不匹配

  您在授权书 (LOA) 中提交的信息与运营商在其客户服务记录 (CSR) 中存档的信息不一致。要解决这个问题，请联系您现有的运营商，更新您的 CSR 信息并/或获取正确的 CSR 信息。当他们更新您的信息时，请通知我们，我们将重新提交转网请求。或者，向我们发送一份新的 LOA，并附上您现有运营商提供的正确信息。
+ 无法携号转网

  我们将与该国家/地区的所有 Amazon Connect 运营商合作，为您的携号转网提供支持。但是，在某些情况下，由于监管限制或运营商限制，特定号码可能无法转网。在这种情况下，您可以考虑向 Amazon Connect 申请一个新号码。
+ 缺少信息。

  LOA 上有一个或多个字段为空。这可能包括缺少签名、电话号码、地址信息或其他要求的信息。 LOAs 在提交之前请仔细检查所有内容，以确保您已填写所有要求的数据。在 LOA 更新了所有必要信息后，我们将重新提交转网请求。

# 携号转网到 Amazon Connect 之前先验证流
<a name="verify-flows-before-porting"></a>

建议您在双方商定的转网日期和时间之前，测试您的呼叫流。如果您想测试您的呼叫流，建议您在 Amazon Connect 中申请一个直拨内线 (DID) 或免费电话号码，并将其分配给呼叫流进行测试。

完成测试后，您可以从实例中释放该号码，这样您就不用再为此付费了。有关说明，请参阅[将一个电话号码从 Amazon Connect 释放回库存](release-phone-number.md)。

在您释放该号码之前，您需要按与申请电话号码相关的每日费率和所用电话分钟数的每分钟费率付费。有关更多信息，请参阅 [Amazon Connect 服务使用和相关电话费率](https://aws.amazon.com/connect/pricing/)的标准定价。

# 解决携号转网到 Amazon Connect 后出现的问题
<a name="porting-troubleshoot"></a>

携号转网到 Amazon Connect 后，请使用本节中的主题进行故障排除，或者释放转网后不再需要的号码。

**Topics**
+ [如果携号转网后无法接听来电该怎么办](not-receiving-calls-after-porting.md)
+ [释放不再需要的转网号码](release-ported-numbers-you-do-not-need.md)
+ [转网后回到前运营商](revert-porting-to-original-carrier.md)
+ [转出号码](port-away.md)

# 携号转网到 Amazon Connect 后无法接听来电
<a name="not-receiving-calls-after-porting"></a>

如果在预定转网窗口结束后，如果您仍未在转网的号码上接到来电，请更新您的支持工单。我们将与运营商一起排除故障，验证转网状态并确定解决问题的后续步骤。

Amazon Connect 和我们的运营商会尽一切努力确保携号转网在停机时间最短且不会出现任何问题的情况下进行。在大多数情况下，前运营商负责发起携号转网，并将您的号码发放给新运营商。

在极少数情况下，可能会出现号码路由问题，导致呼叫无法从运营商到达 Amazon Connect。

# 释放您已转网到 Amazon Connect 但不再需要的号码
<a name="release-ported-numbers-you-do-not-need"></a>

您不必保留分配给 Amazon Connect 实例的电话号码。

当您的 Amazon Connect 实例释放电话号码后：
+ 您不必再为此付费。
+ 您无法重新申请该电话号码。
+ Amazon Connect 保留允许其他客户申请该电话号码的权利。

**释放电话号码**

1. 使用 Amazon Connect 管理员帐户或具有**电话号码-发布**安全配置文件权限的用户帐户登录管理网站。

1. 在导航菜单上，选择**通道**、**电话号码**。只有在您的安全配置文件中拥有**电话号码 - 查看**权限时，才会显示此选项。

1. 选择要释放的电话号码，然后选择**释放**。只有在您的安全配置文件中拥有**电话号码 - 释放**权限时，才会显示此选项。

如果电话号码与一个联系流相关联，该流将被停用，直到另一个号码与其关联。

当客户拨打您释放的电话号码时，他们会收到一条消息，告知这不是一个正在使用的电话号码。

# 转网到 Amazon Connect 后，将电话号码恢复到您原来的运营商
<a name="revert-porting-to-original-carrier"></a>

为了完成转网，前运营商和新运营商都要更改配置，转移电话号码的所有权。转网完成后，获得该电话号码的运营商将拥有对电话号码的唯一控制权。

要再次移动电话号码，您必须填写新的 LOA 和并提交所有必需的文档。

# 将电话号码从 Amazon Connect 中转出
<a name="port-away"></a>

1. 选择[账户和账单](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=service-connect-number-management&categoryCode=phone-number-port-out)，转至 AWS 支持 控制台中预先填写的表单。您必须登录您的 AWS 账户来访问该表单。

1. 在**服务**中，应选择 *Connect（号码管理）*。

1. 对于**类别**，应选择*电话号码转出*。

1. 选择所需的严重性。

1. 选择**下一步：其他信息**

1. 在**其他信息**页面上：

   1. 输入主题。

   1. 在**描述**下：

      1. 让我们知道您要转出了。

      1. 您的 Amazon Connect 实例的名称和您要转出的号码。

      1. 您的新运营商名称。

1. 选择**下一步：立即解决或联系我们**。

1. 在**立即解决或联系我们**页面上：

   1. 选择**联系我们**选项卡，然后选择您的**首选联系语言**和首选联系方式。

1. 选择**提交**。

1.  Amazon Connect 团队将审核您的票证并与您联系。

接下来将发生以下情况：

1. AWS 支持 与您联系，表示您应该从中标的承运人开始该流程。

1. 新运营商将要求您提供以下信息：
   + 您要转出号码的所有权证明。向他们提供 Amazon Connect 实例的屏幕截图，其中包含您要转出的电话号码，以及 AWS 账单的屏幕截图。
   + 通常，新运营商会要求您填写一份LOA（授权书）。请务必在 AWS 账单中提供正确的联系方式。

1. 获胜的承运人将把请求发送至 AWS 支持。

1. AWS 支持 将验证获胜运营商的请求是否与我们所掌握的有关谁拥有这些号码的信息相符。如果所有细节**精确匹配**，我们将批准该请求。
**重要**  
验证新运营商转出请求的真实性对您电话号码的安全而言至关重要。如果联系信息不正确（例如，姓名不匹配），您的转出请求可能会被拒绝，从而造成延误，而且会要求您重新提交请求。

1. 新运营商将在您与他们商定的日期和时间完成转出申请。与新运营商合作，完成转出流程的剩余部分，确保无缝过渡。

# 在 Amazon Connect 中申请和管理您的电话号码
<a name="claim-and-manage-phonenumbers"></a>

本节的主题介绍了如何申请 Amazon Connect 电话号码、列出申请到您的实例的电话号码、在 Amazon Connect 实例之间移动电话号码以及释放电话号码。

**Topics**
+ [申请您所在国家/地区的电话号码](get-connect-number.md)
+ [通过 AWS End User Messaging SMS申请支持短信功能的电话号码](sms-number.md)
+ [申请您在其他国家/地区已有的电话号码](another-country.md)
+ [列出为实例申请的电话号码](list-claimed-phone-numbers.md)
+ [为亚太地区（东京）申请电话号码](connect-tokyo-region.md)
+ [申请号码或国际号码](number-request.md)
+ [在实例之间移动电话号码](move-phone-number-across-instances.md)
+ [释放电话号码](release-phone-number.md)

# 获取本地免费或 DID Amazon Connect 电话号码
<a name="get-connect-number"></a>

要在 Amazon Connect 实例中拨打或接听电话，您需要申请一个 DID 或免费电话号码。如果您在创建 Amazon Connect 实例时尚未申请电话号码，请按照以下步骤申请一个号码。

## 为联系中心申请号码
<a name="get-connect-number1"></a>

1. 使用 Amazon Connect 管理员帐户或分配给具有**电话号码-申领**权限的安全配置文件的帐户登录管理网站。

1. 在导航菜单上，选择**通道**、**电话号码**。

1. 选择**申请号码**。您可以选择免费号码或直拨内线 (DID) 号码。如果您在美国，则可以为号码指定所需的区号，这样只会显示带有该区号的可用号码。当返回多个电话号码时，选择其中一个电话号码。  
![\[“申请电话号码”页面，“DID（直拨内线）”选项卡。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tutorial1-claim-number.png)
**注意**  
针对这些情况，选择[账户和账单](https://support.console.aws.amazon.com/support/home#/case/create)选项来创建案例：  
如果您选择了一个国家或地区，但没有显示号码，您就可以为该国家或地区申请其他号码。
如果您想要申请未看到列出的特定区号或前缀，我们也会尽量满足您的要求。
下图显示了**支持中心**控制台的**创建案例**页面上的**账户和账单**选项。  

![\[创建案例页面上的账户和账单选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/create-case-support.png)


1. 输入号码的描述，如果需要，在**流 / IVR** 中将其附加到联系流。

1. 选择**保存**。

1. 重复该过程，直到申请了所需的所有电话号码。

1. 在您申请号码后，请[将其与您的联系流相关联](associate-claimed-ported-phone-number-to-flow.md)。流从始至终定义联络中心的客户体验。

## 您可以申请多少个电话号码
<a name="service-quota-phone-numbers"></a>

您在每个实例中可拥有的电话号码数量都有对应的服务限额。有关默认服务限额，请参阅 [Amazon Connect 服务配额](amazon-connect-service-limits.md)。如果您已达到限额，但想换一个电话号码，可以释放一个之前申请的号码。在释放后，您无法相同的电话号码。

如果您需要更多电话号码，可以使用 [Amazon Connect 服务限额增加表单](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-connect)申请增加服务限额。

## 避免因申请或释放太多号码而被屏蔽
<a name="avoid-being-blocked-claiming"></a>

如果您计划经常申请和释放号码，请联系我们申请服务配额例外。否则，您可能会被禁止申请和释放更多号码，直到最早释放的号码过期 180 天为止。

默认情况下，您可以申请和释放最多 200% 的活跃电话号码。如果您在 180 天的滚动周期内使用 UI 或 API 申请和释放的电话号码超过电话号码服务级别限额的 200%，您将无法再申请任何号码，直到最早释放的号码过期 180 天为止。

例如，如果您已经有 99 个已申请的号码和 99 个电话号码的服务级别限额，在任何 180 天内，如果您释放了 99 个、申请了 99 个，然后又释放了 99 个，那么您就超过了 200% 的限制。此时，在您打开 AWS 支持请求之前，您将无法再申请任何号码。

## 申请电话号码的 API 说明
<a name="get-connect-number-programmatically"></a>

以编程方式申请电话号码：

1. 使用 [SearchAvailablePhoneNumbers](https://docs.aws.amazon.com/connect/latest/APIReference/API_SearchAvailablePhoneNumbers.html)API 搜索您可以向 Amazon Connect 实例申领的可用电话号码。

1. 使用 [ClaimPhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html)API 申领电话号码。

   使用 [ClaimPhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html)API 声明号码会使该号码处于以下三种状态之一：`CLAIMED`、`IN_PROGRESS`、`FAILED`。

1. 运行 [DescribePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html)API 以确定您的号码申领流程的状态。
   + `CLAIMED`表示前一个[UpdatePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html)操作[ClaimPhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html)或操作成功。
   + `IN_PROGRESS`表示[ClaimPhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html)或[UpdatePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html)操作仍在进行且尚未完成。您可以稍后[DescribePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html)致电以验证之前的操作是否已完成。
   + `FAILED`表示之前的[ClaimPhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html)或[UpdatePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html)操作已失败。它会包含一条消息，说明失败原因。失败的一个常见原因可能是您申请电话号码或将其更新为的 `TargetArn` 值已达到其申请总数的上限。如果您收到来自 `ClaimPhoneNumber` API 调用的 `FAILED` 状态，则在电话号码被释放回清单供其他客户申请之前，您有一天的时间可以再次申请该电话号码。

**注意**  
如果号码申请失败，则在 1 天内不会向您收取电话号码的费用。

## “我们无法申请您的电话号码”
<a name="phone-number-limit-message"></a>

即使这是您第一次申请电话号码，也有可能在尝试申请电话号码时收到此错误消息。导致此错误消息的所有问题都需要寻求帮助 AWS 支持 才能解决。

 请联系 AWS 支持 ，他们将提供帮助。有关说明，请参阅[获取 Amazon Connect 的管理支持](get-admin-support.md)。

# 通过以下方式申请支持短信功能的电话号码 AWS End User Messaging SMS
<a name="sms-number"></a>

**重要**  
有些国家/地区要求注册电话号码和发件人 IDs 才能在该国使用。提交注册请求后，可能需要长达 15 个工作日才能处理该请求。强烈建议您尽早开始此过程。有关注册的更多信息，请参阅[注册](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html)。

通过使用 AWS End User Messaging SMS，您可以请求新的支持短信功能的电话号码或重复使用支持短信功能的现有电话号码，以便在 Amazon Connect 中使用。您可以请求短代码、10 位数长代码（10DLC）和免费电话号码。这些也称为起源身份 (OIDs)。

有关获取 SMS 消息号码的说明，请参阅*《AWS End User Messaging SMS 用户指南》*中的[申请电话号码](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html)。

## 请求 SMS 号码的最佳实践
<a name="bp-request-sms-number"></a>
+ 每种类型的 OID 都有不同的注册流程，租赁成本也各不相同。在此处查看定价：[AWS End User Messaging SMS 定价](https://aws.amazon.com/pinpoint/pricing/#Numbers)。
+ 在决定申请哪种类型的电话号码时，建议您考虑您的吞吐量需求。短信消息分成若干 140 字节的部分传送，这些部分称为[消息部分](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-mps.html)。吞吐率是每秒可以发送的消息部分的数量。
  + **每秒 1-3 条消息**：使用免费电话号码。如果您在扩展用例时吞吐量需求将超过这些限制，建议您使用 10DLC 代码或短代码。与免费电话号码相比，这些号码类型提供充足的增长空间，但成本更高，现在获取所需的时间也更长。有关申请免费电话号码的更多信息 Amazon Pinpoint，请参阅[申请电话号码](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html)。
  + **每秒 10–75 个消息部分**：使用 10DLC 号码。您也可以使用短代码，它提供额外的增长空间，不过成本也更高。有关更多信息，请参阅[申请专用长代码以使用 Amazon Pinpoint SMS 进行短信收发](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-long-code.html)。
  + **每秒 100 个消息部分或更多**：使用短代码。在 Support Center Console 中创建请求时，请指定您希望您的短代码支持的吞吐率。 AWS 

    默认情况下，美国短代码支持每秒 100 个消息部分，但如果您支付额外的月费，则吞吐率可以提高到该速率以上。有关更多信息，请参阅[申请短代码以使用 Amazon Pinpoint SMS 进行短信收发](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-short-code.html)。
+ 请从中请求以上至少一个 OIDs 作为`TRANSACTIONAL`数字 Amazon Pinpoint。
+ 请务必提供注册流程中要求的所有信息。所提问题无一例外。
**重要**  
提供不完整或不准确的信息会增加注册时间。您的注册需要经过编辑并返回才能再次审核。  
 OIDs 在美国，所有类型的注册均由第三方注册商管理。Amazon 不审核申请。
+ 免费电话号码注册所需的时间最短。
+ 查看*《AWS End User Messaging SMS 用户指南》*中介绍的 [10DLC 注册流程](https://docs.aws.amazon.com/sms-voice/latest/userguide/registration-10dlc.html)。



# 申请您在其他国家/地区已有的 Amazon Connect 电话号码
<a name="another-country"></a>

假设您在德国开展业务。您在日本也有座席来为居住在日本的客户提供服务，这时您需要该联络中心使用日本的电话号码。要申请您在其他国家/地区已有的电话号码，请使用以下步骤创建一个支持案例。

要申请您在其他国家或地区尚未拥有的号码，请参阅 [为 Amazon Connect 申请号码或国际号码](number-request.md)。

1. 转到[创建案例](https://console.aws.amazon.com/support/cases#/create)。

1. 选择 **Service quota increase (提升服务配额)**。

1. 在**限制类型**中，选择 **Amazon Connect**。

1. 在**应用场景描述**中，提供位于其他国家/地区的企业地址。

1. 在**联系人选项**中，选择我们是否应该通过电子邮件或电话联系您。

1. 选择**提交**。

我们将与您联系，帮助您处理申请事宜。

# 列出已申请到您的 Amazon Connect 实例中的电话号码或导出到 CSV 文件中
<a name="list-claimed-phone-numbers"></a>

您可以使用 Amazon Connect 管理网站或使用 [ListPhoneNumbersV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html) API 列出向您的 Amazon Connect 实例申领的电话号码。

**使用 Amazon Connect 管理网站列出电话号码**

1. 登录 Amazon Connect 管理员网站 https://*instance name*.my.connect.aws/。

1. 在导航菜单上，选择**通道**、**电话号码**。

   会显示为 Amazon Connect 实例申请的电话号码列表。

**将电话号码下载到 CSV 文件**

1. 登录 Amazon Connect 管理员网站 https://*instance name*.my.connect.aws/。

1. 在导航菜单上，选择**通道**、**电话号码**、**下载 CSV**。
   + 无论选择了哪些电话号码，该页面上列出的所有电话号码都将下载到 CSV 文件中。
   + 它不会下载您的 Amazon Connect 实例申请的所有电话号码。
   + 要下载结果第 2 页上列出的号码，您需要先翻页到第 2 页，然后再次选择**下载 CSV**。  
![\[“电话号码”页面，“下载 CSV”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/download-phonenumbers-csv.png)

# 为亚太地区（东京）的 Amazon Connect 申请电话号码
<a name="connect-tokyo-region"></a>

要申请您在亚太地区（东京）地区创建的 Amazon Connect 实例的电话号码，请提交 AWS 支持案例并提供证明您的公司位于日本的文件。

**重要**  
您必须提供三份必需的文件。有关可接受的标识列表，请参阅 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md) 主题中的 [日本（JP）](phone-number-requirements.md#japan-requirements)。

申请的号码不能用于个人用途，只能用于商业用途。

Amazon Connect 支持为在亚太地区（东京）创建的实例申请以下电话号码。
+ **直接内部拨号 (DID) 号码**，DID 号码也称为本地号码。
  + 050 前缀的号码。
  + 03 前缀的号码（适用于东京）。Amazon Connect 暂时不提供日本其他城市的电话号码。
+ **免费号码**
  + 0120 前缀的号码。
  + 0800 前缀的号码。

**注意**  
在为 Amazon Connect 申请免费电话号码时，不会像日本的其他免费电话号码一样，分配带有 03 前缀的对应 DID 号码。如果您需要使用 DID 号码，可以在 Amazon Connect 中申请一个。

# 为 Amazon Connect 申请号码或国际号码
<a name="number-request"></a>

**重要**  
要购买和拥有电话号码，国家或地区的法规通常要求：  
一个当地的办公地址。
具体的身份证件。
有关各国家/地区的身份证明要求，请参阅 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)。  
在大多数国家/地区，我们需要 2 到 6 周时间来处理您的申请。在某些情况下，最多可能需要 60 天。如果您需要在某个日期之前获得号码，请告知我们。 AWS 支持 

**注意**  
Amazon 不提供以下服务：  
溢价或成本更高的服务
诸如 1-888-555-0000 之类的虚名号码或确切号码
如果您需要这些服务，建议您与专业提供商签订合同。对于收费服务，您可以 DIDs按照当地国家/地区的规定将呼叫转接至 Amazon Connect。对于虚名号码，在购买后，您可以通过携号转网将其转移到 Amazon Connect 中。

要申请需要提供证件的国际电话号码或特定地区不可用的电话号码，请创建 AWS 支持 案例。在支持案例中，您必须准确指定每个国家/地区需要的数量。

请提交 Amazon Connect 支持工单，验证您的电话号码是否可以携号转网到 Amazon Connect。

1. 选择[账户和账单](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=service-connect-number-management)，访问 AWS 支持 控制台中预先填写的表单。您必须登录自己的 AWS 账户才能访问表单。

1. 在**服务**中，应选择 **Connect（号码管理）**。

1. 对于**类别**，应选择**特殊电话号码申请**。

1. 选择所需的严重性。

1. 选择**下一步：其他信息**

1. 在**其他信息**页面上：

   1. 输入主题。

   1. 在**描述**下，尽可能详述您的请求的信息。如果您并不清楚所有这些详细信息，可以忽略。
**重要**  
请勿附上任何包含个人信息的文件。在我们审查您的案例后，会向您发送指向我们安全存储（Amazon S3）的链接，以便您提交所需的文档。此内容稍后将在下面的步骤 10 中进行介绍。

1. 选择**下一步：立即解决或联系我们**。

1. 在**立即解决或联系我们**页面上：

   1. 选择**联系我们**选项卡，然后选择您的**首选联系语言**和首选联系方式。

1. 选择**提交**。

1.  Amazon Connect 团队将审核您的票证并与您联系。他们将提供一个指向我们的安全存储（Amazon S3）的链接，以便您提交所需的文档。

您的申请获得批准后，您的 Amazon Connect 控制台中会显示所申请电话号码的确切数量，供您申请。您将无法访问该国家/地区的所有可用号码。

# 在实例之间移动 Amazon Connect 电话号码
<a name="move-phone-number-across-instances"></a>

您可以将电话号码从一个 Amazon Connect 实例或流量分配组转移到同一 AWS 账户和区域、不同 AWS 账户或不同区域中的另一个 Amazon Connect 实例或流量分配组。

Amazon Connect 支持以下迁移电话号码的场景：
+ 两个 Amazon Connect 实例位于同一个 AWS 地区和 AWS 账户中。在此场景中，您可以自行迁移号码。
+ 新旧的 Amazon Connect 实例位于不同的区域，但账户相同。 AWS 支持 必须为你迁移数字。
+ 新旧的 Amazon Connect 实例位于相同的 AWS 区域，但 AWS 账户不同。 AWS 支持 必须为你迁移数字。

**Topics**
+ [需要了解的重要事项](#move-number-important)
+ [自行移动：相同的地区和账户 AWS](#move-number-same-region-account)
+ [不同的地区和/或 AWS 账户](#move-number-different-region-account)

## 需要了解的重要事项
<a name="move-number-important"></a>

以下信息适用于由 AWS 支持执行的电话号码迁移。
+ 如果您的新实例 ARN 属于流量分布组，则需要 AWS 支持 提供实例和流量分配组。 ARNs要获取流量分发组 ARN，请运行 CL [list-traffic-distribution-groups](https://docs.aws.amazon.com/cli/latest/reference/connect/list-traffic-distribution-groups.html)I 命令。
+ AWS 支持 可以在周一和周五之间的任何时间安排迁移。但遇到当地的法定假日除外，在这些日子里不能安排任何电话号码迁移。
+ 当迁移日期和时间到来时，您必须确保不再将电话号码配置为任何队列中的出站回拨号码。否则，这将 AWS 支持 阻止号码的迁移，并且可能会延迟该过程。
+ 每个电话号码的迁移需要 20-30 分钟。在电话号码迁移期间，**针对正在迁移的号码的呼叫可能会被阻断，并可能导致呼叫失败**。
+ 为了避免额外的停机时间，如果您要将一个流与新的 Amazon Connect 实例中的迁移电话号码相关联，请确保该流存在并已发布到新的 Amazon Connect 实例中。向 AWS 支持 提供流 ARN，这样他们就可以在迁移时将其与电话号码相关联。
+ 有的迁移可能无法进行，具体取决于电话号码。如果这适用于您的请求，我们将通过您的 AWS 支持 案例与您联系。请参阅 [Amazon Connect 电信服务国家/地区覆盖指南](https://d1v2gagwb6hfe1.cloudfront.net/Amazon_Connect_Telecoms_Coverage.pdf)，了解特定国家/地区的电话号码区域可用性。
+ 迁移电话号码后，您必须在队列中设置出站号码。这不可能通过以下方式完成 AWS 支持。

AWS 支持 在他们安排您的电话号码迁移之前，将要求您确认并理解上述信息。

## 自行移动：相同的地区和账户 AWS
<a name="move-number-same-region-account"></a>

当两个 Amazon Connect 实例位于同一个地区和 AWS 账户中时，您可以使用 [ListPhoneNumbersV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html) 和[UpdatePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) APIs自行移动电话号码。

**注意**  
如果您在运行 AWS CLI 命令时收到错误，请确保您使用的是[最新的 AWS CLI 版本](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-troubleshooting.html)。

有关说明和 CLI 命令示例，请参阅[如何将电话号码从一个 Amazon Connect 实例迁移到另一个 Amazon Connect 实例？](https://repost.aws/knowledge-center/connect-migrate-phone-number) 

## 不同的地区和/或 AWS 账户
<a name="move-number-different-region-account"></a>

如果新旧 Amazon Connect 实例位于不同的区域，但 AWS 账户相同，请完成以下步骤创建单个 AWS 支持 案例。

当新旧 Amazon Connect 实例属于不同的 AWS 账户时，按照相同的步骤创建两个 AWS 支持 案例，每个账户一个。

1. 登录您的 AWS 账户，然后单击[此处](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=service-connect-number-management)访问 AWS 支持 控制台中预先填写的表单。

1. 在该表单中，对于**服务**，选择**连接（号码管理）**。

1. 对于**类别**，选择**电话号码迁移**。

1. 选择合适的严重程度。

1. 选择**下一步：其他信息**。

1. 在**其他信息**页面上：

   1. 输入主题。

   1. 如果您想 支持 在迁移完成后分配号码，请在**描述**下尽可能多地包含有关您的请求的信息，包括电话号码（采用 E164 格式）和流程。

1. 在 “**帮助我们更快地解决您的问题” 下，提供所有必需的信息，例如源实例**和目标实例 ARNs 以及所需的迁移日期和时间，包括时区。

1. 选择**下一步：立即解决或联系我们**。

1. 在**立即解决或联系我们**页面上：

   1. 选择**联系我们**选项卡，然后选择您的**首选联系语言**和首选联系方式。

1. 选择**提交**。

1. Amazon Connect 团队将审核您的请求单并回复您。

# 将一个电话号码从 Amazon Connect 释放回库存
<a name="release-phone-number"></a>

如果您需要一个不同的电话号码，或者有未使用的多余号码，您可以将它们释放回库存。您可以使用 Amazon Connect 控制台执行此操作，也可以使用 [ReleasePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_ReleasePhoneNumber.html)API 以编程方式执行此操作。

当您的 Amazon Connect 实例释放电话号码后：
+ 您不必再为此付费。
+ 您无法重新申请该电话号码。
+ Amazon Connect 保留允许其他客户申请该电话号码的权利。

**提示**  
如果您要关闭 Amazon Connect 账户，请为您的所有电话号码执行这些步骤。这可确保如果有人错误地呼叫了您申请的号码并启动了联系流，您不会被收取费用。您可能还想希望[删除您的实例](delete-connect-instance.md)。

**释放电话号码**

1. 使用 Amazon Connect 管理员帐户或具有**电话号码-发布**安全配置文件权限的用户帐户登录管理网站。

1. 在导航菜单上，选择**通道**、**电话号码**。只有在您的安全配置文件中拥有**电话号码 - 查看**权限时，才会显示此选项。

1. 选择要释放的电话号码，然后选择**释放**。只有在您的安全配置文件中拥有**电话号码 - 释放**权限时，才会显示此选项。

如果电话号码与一个联系流相关联，该流将被停用，直到另一个号码与其关联。

当客户拨打您释放的电话号码时，他们会收到一条消息，告知这不是一个正在使用的电话号码。

**要使用 ReleasePhoneNumber API**
+ 使用 [ReleasePhoneNumber](https://docs.aws.amazon.com/connect/latest/APIReference/API_ReleasePhoneNumber.html)API 发布号码会使该号码处于冷静期，最长可保持 180 天。只有在冷静期结束后才能搜索或申请该电话号码。
**注意**  
在 180 天的冷静期内，不会向您收取电话号码的费用。

## 避免因申请或释放太多号码而被屏蔽
<a name="avoid-being-blocked-releasing"></a>

如果您计划经常申请和释放号码，请联系我们申请服务配额例外。否则，您可能会被禁止申请和释放更多号码，直到最早释放的号码过期 180 天为止。

默认情况下，您可以申请和释放最多 200% 的活跃电话号码。如果您在 180 天的滚动周期内使用 UI 或 API 申请和释放的电话号码超过电话号码服务级别限额的 200%，您将无法再申请任何号码，直到最早释放的号码过期 180 天为止。

例如，如果您已经有 99 个已申请的号码和 99 个电话号码的服务级别限额，在任何 180 天内，如果您释放了 99 个、申请了 99 个，然后又释放了 99 个，那么您就超过了 200% 的限制。此时，在您打开 AWS 支持请求之前，您将无法再申请任何号码。

# 利用呼叫方身份识别功能实现个性化客户互动
<a name="caller-id-personalizing-customer-interaction"></a>

您可以使用提供与呼叫发起相关的信息的元数据属性为客户提供个性化体验。例如，您可以查找客户的联系 ID，然后用个性化的问候语欢迎他们。

**重要**  
Amazon Connect 或第三方提供的功能可能会依赖通话数据来识别呼入呼叫方，以实现个性化客户互动或检测欺诈行为，并可能受附加条款和条件的约束。除欺诈检测外，不得将未显示给通话接收方的网络相关通话数据用于任何其他目的。

## 使用电话呼叫元数据属性
<a name="call-metadata-attributes"></a>

下表列出了可用的电话呼叫元数据属性。有关使用属性的信息，请参阅[使用 Amazon Connect 联系属性](connect-contact-attributes.md)。


| 属性 | 说明 | Type | JSONPath 参考 | 
| --- | --- | --- | --- | 
| P-Charge-Info | 负责支付呼叫相关费用的一方。 | 系统 | \$1.Media.Sip.Headers.P-Charge-Info | 
| 发起方 | 与请求关联的最终用户的身份。 | 系统 | \$1.Media.Sip.Headers.From | 
| 接收方 | 有关被叫方或请求接收方的信息。 | 系统 | \$1.Media.Sip.Headers.To | 
| ISUP-OLI | 起始线路指示器 (OLI)。显示拨打电话的线路类型（例如，PSTN、800 服务呼叫、 wireless/cellular PCS、公用电话）。 | 系统 | \$1.Media.Sip.Headers.ISUP-OLI | 
| JIP | 管辖区指示参数 (JIP)。表示呼叫方/交换机的地理位置。 示例值：212555 | 系统 | \$1.Media.Sip.Headers.JIP | 
| 跃点计数器 | 跃点计数器。 示例值：0  | 系统 | \$1.Media.Sip.Headers.Hop-Counter | 
| 起始交换机 | 起始交换机。 示例值：710   | 系统 | \$1.Media.Sip.Headers.Originating-Switch | 
| 起始中继 | 起始中继。 示例值：0235 | 系统 | \$1.Media.Sip.Headers.Originating-Trunk | 
| 呼叫转移指示器 | 呼叫转移指示器（例如，分流头）。表示呼叫的国内或国际来源。 示例值：sip:\$115555555555@public-vip.us2.telphony-provider.com;reason=unconditional  | 系统 | \$1.Media.Sip.Headers.Call-Forwarding-Indicator | 
| 呼叫方地址 | 呼叫方地址（号码）。NPAC dip 显示了真实的线路类型和原生地理切换。 示例值：15555555555;noa=4  | 系统 | \$1.Media.Sip.Headers.Calling-Party-Address | 
| 被呼叫方地址 | 被呼叫方地址（号码）。  示例值：15555555555;noa=4   | 系统 | \$1.Media.Sip.Headers.Called-Party-Address | 
| SIPREC 元数据 |  Amazon Contact Lens 连接器接收到的 SIPREC 元数据 XML  | 系统 |  \$1.Media.Sip。 SiprecMetadata | 

## 排查问题
<a name="ts-metadata"></a>

所有电话提供商的电话元数据可用性并不一致，可能并非在所有情况下都可用。

在开 AWS 支持 案之前：
+ 如果您缺少第三方 Amazon Connect Ready 服务所需的所有通话数据，请检查您是否遵循了第三方提供的服务配置指南。

  如果您需要打开 AWS 支持 案例，请提供以下信息：
  + **服务** = **Amazon Connect**
  + **配额** = **第三方号码映射**
  + **案例描述**框：
    + 说明您已确认拥有符合要求设置的电话号码。
    + 输入 Amazon Connect Ready 服务提供商的名称
    + 描述您遇到的电信元数据问题。

  下面的图片显示了一个示例案例和输入信息的位置。  
![\[请求第三方号码映射的 AWS Support 案例。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/3rd-party-mapping.png)  
![\[用于请求帮助进行第三方号码映射的案例描述框。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/case-description.png)
+ 如果您在正常服务呼叫中获得了部分通话数据：请注意，并非所有通话都有数据。

  某些字段（例如 ISUP-OLI）只有在通过网络的特定路由时才会出现。无法保证能获得所有通话的数据。

# 将第三方号码映射到您的 Amazon Connect 账户。
<a name="third-party-numbers"></a>

在某些国家/地区，您可能需要获取由该国家/地区的运营商直接托管，而不是由 Amazon Connect 托管的第三方电话号码。该运营商与 Amazon Connect 互联并提供计费服务。在这些情况下，您需要打开票证才能 AWS 支持 将您的 AWS 账户 ID 和 Amazon Connect 实例映射到电话号码。

**将第三方号码映射到您的账户**

提交 Amazon Connect 支持工单来映射第三方号码。如果您没有 AWS 支持 帐户，请按照以下说明进行操作。

1. 转至[支持中心](https://console.aws.amazon.com/support/home)并选择**创建案例**。

1. 选择**账户和账单**。

1. 在**服务**框中，使用下拉列表选择**连接（号码管理）**。

1. 在**类别**框中，选择**第三方映射**。

1. 在**严重性**框中，选择适合您情况的严重性。

1. 选择**下一步：其他信息**。

1. 在**其他信息**页面上：

   1. 输入主题。

   1. 在**描述**下，尽可能详述您的请求的信息，例如您的实例 ARN、电话号码、流等。
**重要**  
请勿附上任何包含个人信息的文件。在我们审查您的案例后，会向您发送指向我们安全存储（Amazon S3）的链接，以便您提交所需的文档。此内容稍后将在下面的步骤 12 中进行介绍。

1. 在**帮助我们更快地解决您的问题**下，提供所有必需的信息。

1. 选择**下一步：立即解决或联系我们**。

1. 在**立即解决或联系我们**页面上：

   1. 选择**联系我们**选项卡，然后选择您的**首选联系语言**和首选联系方式。

1. 选择**提交**。

1. Amazon Connect 团队将审核您的请求单并回复您。他们将提供指向我们安全存储（Amazon S3）的链接，以便您提交所需的文档。

# Amazon Connect 支持仅限入站的 UIFN 服务
<a name="uifn-service"></a>

通用国际免费电话号码 (UIFN) 是可在世界各地使用的唯一**仅限入站**免费电话号码。它提供从国际地点到您的联络中心的免费电话。

Amazon Connect 支持在国际电信联盟注册的 [60 多个国家/地区](#list-of-uifn-countries)的 UIFN，该组织支持 UIFN 服务的管理。

**注意**  
Amazon Connect 允许您根据需要 UIFNs 在任意多个国家/地区启用，但是，它至少需要 5 个国家/地区。

UIFN 由全球服务应用程序的 3 位国家代码（例如 **800**）和 8 位全球订阅用户号码 (GSN) 组成。这样就形成了 11 位数字的固定格式。

例如，您的 UIFN 可以是 \$1800 12345678，其中 12345678 是您的号码。

由于 UIFN 的特殊性，不支持尝试以 “环回模式” 从 Amazon Connect 调用 UIFN。 UIFNs 旨在通过该国公共电话网络中的终端电话配置进行呼叫。

## 如何获得 UIFN
<a name="how-to-get-a-uifn"></a>

要在特定内容中申请 UIFN AWS 区域，请创建案例。 AWS 支持 请在支持案例中，提供以下信息。
+ 从[可用国家/地区列表](#list-of-uifn-countries)中选择要启用的国家/地区。
+ 与新 UIFN 号码关联的 Amazon Connect 实例。Amazon Connect 可以支持将号码路由到多个区域，例如从澳大利亚路由到亚太地区（悉尼）、从美国路由到美洲地区，或者根据需要路由到单个全球实例。
+ 您所在国家/地区所需的身份验证。大多数国家/地区在订购 UIFN 号码时都采用[标准身份验证要求](phone-number-requirements.md#uifn-requirements)。不过，建议您查看一下您所在的国家/地区的 [在 Amazon Connect 中订购和转网电话号码的地区要求](phone-number-requirements.md)，以确保万无一失。

  为了便于携带，在您打开案例后，Amazon 将为您提供*服务提供商变更授权和座席指定*文件。

Amazon Connect 可以路由 UIFNs 到多个 AWS 区域。例如，如果为澳大利亚启用了 UIFN，则可以将其路由到位于亚太地区（悉尼）的 Amazon Connect 实例。如果为**更多**国家/地区启用了 UIFN，则每个国家/地区都可以路由到您的 Amazon Connect 实例，该实例可能位于任何受支持的 AWS 区域中。

下图显示了提交给 AWS 支持的示例 UIFN 请求的正文。这个要求是两个 UIFNs。第一个是为阿根廷、巴西和哥伦比亚启用的 UIFN，并连接到美国西部（俄勒冈州）地区的 Amazon Connect 实例。第二个请求是为日本、澳大利亚和新西兰启用的 UIFN，并连接到位于亚太地区（新加坡）的 Amazon Connect 实例。

![\[一个请求两个的支持案例 UIFNs。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/uifn-example-request.png)


**重要**  
**UIFN 是一项仅限入站的服务。**在申请 UIFN 之前：  
确保您了解此号码不能用于出站。
在下一节中查看国家/地区的全国可达性。
完全全国可达性意味着 UIFN 可以到达所有本地（国内）网络。 UIFNs 在某些国家/地区，可接通性有限，仅适用于 carriers/networks 需要使用不同代码拨号的特定地区（例如日本）。

## 支持的国家 UIFNs
<a name="list-of-uifn-countries"></a>


| 国家/地区 | 如何拨打 UIFN 和可达性  | 设置 UIFN 需要多少天 | 
| --- | --- | --- | 
| 阿根廷  | 00-800-XXXX-XXXX 全国可达性：所有固定网络  | 10：25 | 
| 澳大利亚  | 0011-800-XXXX-XXXX 全国可达性：Optus、Telstra、Vodafone 移动电话  | 10–30 | 
| 奥地利  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 比利时  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 巴西  | 0021-800-XXXX-XXXX 全国可达性：全部 固定线路和移动线路的呼叫方都需要激活国际直拨服务。 订阅用户必须启用 Embratel/Claro 的国际选择代码 (0021)。  | 20–30 | 
| 保加利亚  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–20 | 
| 加拿大  | 011-800-XXXX-XXXX 全国可达性：全部 不支持从公用电话拨打电话。  | 20–40 | 
| 中国  | 00-800-XXXX-XXXX 全国可达性： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/uifn-service.html)  | 20–40 | 
| 哥伦比亚  | 拨号格式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/uifn-service.html) 全国可达性：全部  | 30–60 | 
| 哥斯达黎加  | 00-800-XXXX-XXXX 全国可达性：全部  | 15–30 | 
| 克罗地亚  | 00-800-XXXX-XXXX 全国可达性：所有固定、T-Mobile 网络  | 20–30 | 
| 捷克共和国  | 00-800-XXXX-XXXX 全国可达性：全部  | 20–30 | 
| 丹麦  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–20 | 
| 爱沙尼亚  | 00-800-XXXX-XXXX 全国可达性：全部  | 15–25 | 
| 法国  | 00-800-XXXX-XXXX 全国可达性：全部，包括摩纳哥  | 10–15 | 
| 法属圭亚那  | 00-800-XXXX-XXXX 全国可达性：全部  | 30–60 | 
| 德国  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 希腊  | 00-800-XXXX-XXXX 全国可达性：所有固定、Cosmotel 移动网络  | 10–15 | 
| 瓜德罗普  | 00-800-XXXX-XXXX 全国可达性：全部  | 30–60 | 
| 中国香港  | 006-800-XXXX-XXXX 全国可达性：全部 不保证 CLI。  | 20–40 | 
| 匈牙利  | 00-800-XXXX-XXXX 全国可达性：全部 固定线路和移动线路的呼叫方都需要激活国际直拨服务。 使用手机拨打电话可能需要支付通话费。  | 10–15 | 
| Iceland  | 00-800-XXXX-XXXX 全国可达性：所有固定、冰岛电信、IMC、沃达丰移动网络。  | 10–20 | 
| 以色列  | 拨号格式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/uifn-service.html) 全国可达性：全部  | 20–50 | 
| 意大利  | 00-800-XXXX-XXXX 全国可达性：所有固定网络，包括梵蒂冈和圣马力诺  | 10–15 | 
| 日本  | 拨号格式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/uifn-service.html) 全国可达性：全部   | 20–40 | 
| 拉脱维亚  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 立陶宛  | 00-800-XXXX-XXXX 全国可达性：所有固定网络；Telia LT 移动电话  | 15–30 | 
| 卢森堡  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 中国澳门  | 00-800-XXXX-XXXX 全国可达性：全部  | 15–25 | 
| 马其顿  | 00-800-XXXX-XXXX 全国可达性： MakTel 固定、T-Mobile 网络  | 40–60 | 
| 马耳他  | 00-800-XXXX-XXXX 全国可达性：GO 和 VANILLA 固定网络。GO 移动网络。  | 10–15 | 
| 马提尼克  | 00-800-XXXX-XXXX 全国可达性：全部  | 30–60 | 
| 马约特岛  | 00-800-XXXX-XXXX 全国可达性：全部  | 30–60 | 
| 摩纳哥  | 00-800-XXXX-XXXX 全国可达性：全部  | 20–30 | 
| 荷兰  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 新西兰  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 秘鲁  | 00-800-XXXX-XXXX 全国可达性：America Moviles、Nextel、Telefonica Moviles、TESAM、Globalstar 网络。 秘鲁电信固定网络和移动网络   | 30–50 | 
| 菲律宾  | 00-800-XXXX-XXXX 全国可达性：所有固定网络  | 10–15 | 
| 葡萄牙  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 留尼汪  | 00-800-XXXX-XXXX 全国可达性：全部  | 30–60 | 
| 罗马尼亚  | 00-800-XXXX-XXXX 全国可达性：Orange 固定和移动网络、Rodasy 固定和移动网络、Romtelekom 固定和移动网络、Cosmote 移动网络  | 10–30 | 
| 圣皮埃尔和密克隆群岛  | 00-800-XXXX-XXXX 全国可达性：全部  | 30–60 | 
| 新加坡  | 001 800 XXXX XXXX 固定线路和移动线路的呼叫方都需要激活国际直拨服务。 使用手机拨打电话可能需要支付通话费。 不支持从 Starhub 公用电话拨打电话。  | 20–30 | 
| 斯洛伐克  | 00-800-XXXX-XXXX 全国可达性：全部  | 15–30 | 
| 斯洛文尼亚  | 00-800-XXXX-XXXX 全国可达性：全部  | 15–30 | 
| 南非  | 00-800-XXXX-XXXX 全国可达性：部分 MTN 和预付费订阅用户无法接通。  | 10–15 | 
| 韩国  | 002-800-XXXX-XXXX 全国可达性：全部  | 10–20 | 
| 西班牙  | 00-800-XXXX-XXXX 全国可达性：全部 并发通话：100 次并发通话  | 10–15 | 
| 瑞士  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 中国台湾  | 00-800-XXXX-XXXX 全国可达性：全部  | 10–15 | 
| 泰国  | 001-800-XXXX-XXXX 全国可达性：全部  | 10–20 | 
| 英国  | 00-800-XXXX-XXXX 全国可达性：BT、Vodafone、EE 网络  | 20–40 | 
| 乌拉圭  | 00-800-XXXX-XXXX 全国可达性：全部  | 15–25 | 

# 在 Amazon Connect 中订购和转网电话号码的地区要求
<a name="phone-number-requirements"></a>

通常，根据国家/地区规定，需要提供当地办公室地址和特定的身份证明文件才能购买和拥有电话号码。您提供的地址可以是电话号码所属的公司地址或个人地址。

有关 Amazon Connect 提供的电话功能列表，请参阅 [Amazon Connect 电信国家/地区覆盖指南](https://d1v2gagwb6hfe1.cloudfront.net/Amazon_Connect_Telecoms_Coverage.pdf)。本指南可让您了解支持哪些区域，以及是否存在能够从任何商业区域访问某个国家/地区的例外情况。

以下是按国家或地区列出的订购和转网号码的 ID 要求。除非另@@ **有 AWS 说明，否则除非洲（开普敦）和 AWS GovCloud （美国西部）外，所有地区均受支持**。当您[申请国际号码](number-request.md)时，我们将与您合作提交您的文件。

**重要**  
无需在场即可申领的地址（例如邮政信箱地址）在任何国家/地区均无效。
订购或转网您的号码后，所请求电话号码的确切号码将显示在 Amazon Connect 管理员网站的**管理电话号码**页面上，供您[管理](get-connect-number.md#get-connect-number1)。您将无法访问该国家/地区的所有可用号码。

## 安圭拉 (AI)
<a name="anguilla-requirements"></a>

### 订购电话号码
<a name="ai-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="ai-porting"></a>

不支持转网。

## 安提瓜和巴布达 (AG)
<a name="antigua-requirements"></a>

### 订购电话号码
<a name="ag-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 268 | 是 | 以书面形式提交订单。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址  | 

### 携号转网
<a name="ai-porting"></a>

不支持转网。

## 阿根廷 (AR)
<a name="argentina-requirements"></a>

### 订购电话号码
<a name="ar-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 没有 |   | 
| 免费电话前缀：\$154 800 | 否 |   | 
| 分摊费用前缀：\$154 810  | 否 |  | 

### 携号转网
<a name="ar-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 布宜诺斯艾利斯时间 (UTC-3) 周一至周五凌晨 2 点至凌晨 4 点或上午 10 点至中午 12 点或下午 3 点至下午 5 点  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 澳大利亚（AU）
<a name="australia-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="au-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 |  您的公司地址、联系人姓名和电话号码。澳大利亚的地址为必填项  | 
| 免费电话前缀：\$161 1300、\$161 1800 | 否 | 您的公司地址、联系人姓名和电话号码。可接受全球范围内的地址。 | 

### 携号转网
<a name="au-porting"></a>


****  

| 号码类型 | 转网窗口 | 所需文件 | 
| --- | --- | --- | 
| 当地电话号码 | 周一至周五上午 8 点至下午 5 点 AEST/AEDT  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 
| 免费电话前缀：\$161 13、\$161 1800 | 周一至周五上午 8 点-下午 3:30 AEST/AEDT  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 奥地利（AT）
<a name="austria-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="at-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您所在地址的电信服务证明，该证明必须与所请求的城市代码相匹配。有效的证明表（必须在过去 6 个月内签发）： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 
| 国家前缀：\$143 720 | 是 | 您所在地址的电信服务证明，该地址必须位于该国家/地区内。有效的证明表（必须在过去 6 个月内签发）： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 
| 免费电话前缀：\$143 800 | 是 | 您的企业名称、地址和商业登记证（全球）副本。可接受全球地址。  | 

### 携号转网
<a name="at-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 比利时（BE）
<a name="belgium-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="be-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码： | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。  | 
| 移动电话前缀：\$132 46 | 否 |  | 
| 免费电话前缀：\$132 800 | 否 |  | 

### 携号转网
<a name="be-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

**注意**  
不支持订购和转网 \$132 78 国家号码。

## 巴哈马 (BS)
<a name="bahamas-requirements"></a>

### 订购电话号码
<a name="bs-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 242 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="bs-porting"></a>

不支持转网。

## 巴巴多斯 (BB)
<a name="barbados-requirements"></a>

### 订购电话号码
<a name="bb-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 246 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="bb-porting"></a>

不支持转网。

## 玻利维亚 (BO)
<a name="bolivia-requirements"></a>

### 订购电话号码
<a name="bo-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 国家前缀：\$1591 50 | 否 |   | 

### 携号转网
<a name="bo-porting"></a>

不支持转网。

## 博奈尔岛 (BQ)
<a name="bonaire-requirements"></a>

### 订购电话号码
<a name="bq-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$1599 7 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="bq-porting"></a>

不支持转网。

## 巴西 (BR)
<a name="brazil-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="br-ordering"></a>


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)

### 携号转网
<a name="br-porting"></a>


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)

## 文莱 (BN)
<a name="brunei-requirements"></a>

### 订购电话号码
<a name="brunei-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 免费电话前缀 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="brunei-porting"></a>

不支持转网。

## 加拿大 (CA)
<a name="canada-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="ca-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 否 |   | 
| 免费电话前缀  | 否 |   | 

### 携号转网
<a name="ca-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 中部标准时间周一至周五上午 7 点至下午 5 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 智利 (CL)
<a name="chile-requirements"></a>

### 订购电话号码
<a name="cl-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 |  法定企业名称（Razón Social）：商业登记摘录 当地企业地址（必须在智利境内）：显示法定营业地址的商业登记摘录 税务登记文件：RUT（Rol Unico Tributario）的副本 – 智利官方纳税识别号  | 
| 免费电话前缀  | 是 |  法定企业名称（Razón Social）：商业登记摘录 当地企业地址（必须在智利境内）：显示法定营业地址的商业登记摘录 税务登记文件：RUT（Rol Unico Tributario）的副本 – 智利官方纳税识别号  | 
| 大众传播号（809 和 600 系列） | 是 |  法定企业名称（Razón Social）：商业登记摘录 当地企业地址（必须在智利境内）：显示法定营业地址的商业登记摘录 税务登记文件：RUT（Rol Unico Tributario）的副本 – 智利官方纳税识别号 附加要求：填写并签署的“大众传播号使用声明 – 智利”表  | 

### 携号转网
<a name="cl-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 太平洋标准时间周一至周五晚上 9 点至凌晨 3 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 中国 (CN)
<a name="china-requirements"></a>

### 订购电话号码
<a name="cn-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="cn-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 哥伦比亚 (CO)
<a name="colombia-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="co-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 否 |   | 
| 免费电话前缀：\$157 800 | 否 |   | 

### 携号转网
<a name="co-porting"></a>

不支持

## 哥斯达黎加 (CR)
<a name="costa-rica-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="cr-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 否 |   | 
| 免费电话前缀：\$1506 800 | 否 |   | 

### 携号转网
<a name="cr-porting"></a>

不支持

## 克罗地亚（HR）
<a name="croatia-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

## 库拉索 (CW)
<a name="curaçao-requirements"></a>

### 订购电话号码
<a name="cw-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$1599 9 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="cw-porting"></a>

不支持转网。

## 塞浦路斯（CY）
<a name="cyprus-requirements"></a>

### 订购电话号码
<a name="cy-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。  | 
| 免费电话前缀：\$1 357 800 | 否 |  | 

### 携号转网
<a name="cy-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 捷克共和国（CZ）
<a name="czech-republic-requirements"></a>

### 订购电话号码
<a name="cz-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码： | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。  | 
| 免费电话前缀：\$1 420 800 | 是 | 您的公司名称和地址。可接受全球范围内的地址。 | 

### 携号转网
<a name="cz-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五下午 3 点至下午 4 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 丹麦（DK）
<a name="denmark-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="dk-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码： | 是 | 您的公司名称、地址和服务描述。可接受全球范围内的地址。  | 
| 移动电话前缀：\$145 9x | 否 |  | 
| 免费电话前缀：\$145 808 | 是 | 您的公司名称、地址和服务描述。可接受全球范围内的地址。 | 

### 携号转网
<a name="dk-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 多米尼加共和国（DOM）
<a name="dom-requirements"></a>

### 订购电话号码
<a name="dom-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 否 | 不适用  | 
| 免费电话前缀：\$11 8xx | 否 | NA  | 

### 携号转网
<a name="dom-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 转网仅适用于**本地电话号码** 太平洋标准时间周一至周五晚上 10 点至凌晨 4 点 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 厄瓜多尔（ECU）
<a name="ecu-requirements"></a>

### 订购电话号码
<a name="ecu-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 否 | 不适用  | 
| 免费电话前缀：\$1593-180000XXXX | 否 | 不适用  | 

### 携号转网
<a name="ecu-porting"></a>

不支持

## 萨尔瓦多（SV）
<a name="el-salvador-requirements"></a>

### 订购电话号码
<a name="sv-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 是 | 企业必须提供其姓名、地址和 RUC / TaxID 号，以及商业登记证副本和地址证明。 有效的地址证明包括：第三方签发的银行对账单、水电费账单（均在过去 6 个月内签发）；政府文件（上一年签发）。 需要当地地址。  | 
| 免费电话前缀  | 是 | 企业必须提供商业登记证副本和地址证明。 有效的地址证明包括：第三方签发的银行对账单、水电费账单（均在过去 6 个月内签发）；政府文件（上一年签发）。  | 

### 携号转网
<a name="sv-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 美国中部时间周一至周五凌晨 03:00 至凌晨 05:00 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 爱沙尼亚（EE）
<a name="estonia-requirements"></a>

### 订购电话号码
<a name="ee-ordering"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 免费电话前缀：\$1372 800 | 否 |  | 
| 国家前缀：\$1372 | 是 | 您的办公地址。身份证/商业登记证副本。 可接受全球范围内的地址。 | 

### 携号转网
<a name="ee-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 芬兰（FI）
<a name="finland-requirements"></a>

### 订购电话号码
<a name="fi-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 |  您的居住地址或办公地址。这两个都必须是与电话号码区号相对应的本地地址。  | 
| 免费电话前缀：\$1358 800 | 否 |  | 
| 国家前缀：\$1358 75 | 否 |  | 

### 携号转网
<a name="fi-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 法国（FR）
<a name="france-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="fr-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 本地区电话号码：\$133 1、\$133 2、\$133 3、\$133 4、\$133 5 | 是 | 需要在法国有办公地址。 您必须提供商业登记证副本（过去 3 个月内签发的 KBIS、INPI 或 INSEE 摘录），并将提供的法国地址列为主要营业地址。  | 
| 全国多用途号码：\$133 9 7890 | 是 | 需要在法国有办公地址。 您必须提供商业登记证副本（过去 3 个月内签发的 KBIS、INPI 或 INSEE 摘录），并将提供的法国地址列为主要营业地址。 | 
| 经全国验证的多用途号码（用于自动呼叫服务的呼叫方 ID）：\$133 9 4847 | 是 | 需要在法国有办公地址。您必须提供商业登记证副本（过去 3 个月内签发的 KBIS、INPI 或 INSEE 摘录），并将提供的法国地址列为主要营业地址。 | 
| 用于与技术平台通信的全国多用途号码：\$133 9 3937 | 是 | 需要在法国有办公地址。您必须提供商业登记证副本（过去 3 个月内签发的 KBIS、INPI 或 INSEE 摘录），并将提供的法国地址列为主要营业地址。 | 
| 免费电话前缀：\$133 801 | 是 | 要求提供在欧盟的办公地址和联系电话号码。 | 

### 携号转网
<a name="fi-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 所有免费电话前缀（从 \$133 800 到 \$133 805）、地理前缀（从 \$133 1 到 \$133 5）和全国多用途前缀（从 \$133 9）均支持号码转网功能。  | 

## 法属圭亚那 (GF)
<a name="gf-requirements"></a>

### 订购电话号码
<a name="gf-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="gf-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 格鲁吉亚（GE）
<a name="georgia-requirements"></a>

### 订购电话号码
<a name="ge-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 国家前缀：\$1995 70 | 否 |  | 
| 当地电话号码：(第比利斯） | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。您必须提供相应的地址证明。 | 

### 携号转网
<a name="ge-porting"></a>

不支持

## 德国（DE）
<a name="germany-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="de-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。您必须提供商业登记证文件（过去 6 个月内签发）的副本作为地址证明。  | 
| 国家前缀：\$149 32 | 是 | 要求在德国有办公地址。您必须提供商业登记证文件（过去 6 个月内签发）的副本作为地址证明。  | 
| 免费电话前缀：\$149 800 | 是 |  地址在德国境内的企业（即在德国境内接听或终止的号码）或地址在德国境外的企业（即在德国境外接听或终止的号码）均可使用免费电话前缀。 对于地址在德国（首选）的企业，您必须直接从当地监管机构获取号码，然后将号码分配证书提供给 Amazon Connect 进行号码激活。提出申请后，您将获得有关此流程的详细信息。 如果您的办公地址在德国境外，您必须提供商业登记证副本，作为公司注册证明和地址证明。如果商业登记证文件中没有显示地址，则还需要一份水电费账单（过去 6 个月内签发）。  | 

### 携号转网
<a name="de-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 希腊（GR）
<a name="greece-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="gr-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码： | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。 您在希腊的商业登记副本（最近 12 个月内摘录）。  | 
| 免费电话前缀：\$130 800 | 是 | 您的办公地址。它必须是希腊的一个地址。 您在希腊的商业登记副本（最近 12 个月内摘录）。 | 

### 携号转网
<a name="gr-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 危地马拉 (GT)
<a name="guatemala-requirements"></a>

### 订购电话号码
<a name="guatemala-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 限制 | 
| --- | --- | --- | --- | 
| 当地电话号码 | 否 |   |  | 

### 携号转网
<a name="guatemala-porting"></a>

不支持转网。

## 瓜德罗普 (GP)
<a name="gp-requirements"></a>

### 订购电话号码
<a name="gp-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="gp-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 洪都拉斯 (HN)
<a name="honduras-requirements"></a>

### 订购电话号码
<a name="honduras-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 限制 | 
| --- | --- | --- | --- | 
| 国家 DID | 否 |   |  | 
| 免费电话前缀：\$1504 800 | 否 |   |  | 

### 携号转网
<a name="honduras-porting"></a>

不支持转网。

## 中国香港（HK）
<a name="hongkong-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="hk-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 是 | 企业必须提供其名称、地址、商业登记证副本和地址证明。有效的地址证明包括：第三方签发的银行对账单、水电费账单（均在过去 6 个月内签发）；政府文件（上一年签发）。 需要当地地址。  | 
| 国家前缀：\$1852 58 | 是 | 企业必须提供其名称、地址、商业登记证副本和地址证明。有效的地址证明包括：第三方签发的银行对账单、水电费账单（均在过去 6 个月内签发）；政府文件（上一年签发）。  | 
| 免费电话前缀：\$1852 800 | 是 | 企业必须提供地址证明。有效的地址证明包括：第三方签发的银行对账单、水电费账单（均在过去 6 个月内签发）。 可接受全球范围内的地址。  | 

### 携号转网
<a name="hk-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 不适用 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 匈牙利（HU）
<a name="hungary-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="hu-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。您必须提供商业登记证文件（过去 6 个月内签发）的副本作为地址证明。 还需要提供授权代表的身份证或护照的复印件。  | 
| 免费电话前缀：\$136 800 | 否 |  | 

### 携号转网
<a name="hu-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 冰岛 (IS)
<a name="iceland-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="iceland-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 是 | 您在冰岛的办公地址。您在冰岛的商业登记证副本。 | 
| 免费电话前缀 | 否 |   | 

### 携号转网
<a name="iceland-porting"></a>

不支持转网。

## 印度尼西亚（ID）
<a name="indonesia-requirements"></a>

### 订购电话号码
<a name="id-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 本地电话号码前缀：\$162 21、\$162 31、\$162 61 | 是 | 您的公司地址、联系人姓名和电话号码。必须是与电话号码区号相对应的本地地址。您还必须提供有关如何计划使用电话号码的说明。  | 
| 移动电话前缀：\$162 855 | 是 | 办公地址证明、授权代表的身份证或护照的复印件以及商业登记证。您还必须提供有关如何计划使用电话号码的说明。  | 
| 免费电话前缀：\$162 800 | 否 |   | 

### 携号转网
<a name="id-porting"></a>

不支持

## 爱尔兰（IE）
<a name="ireland-requirements"></a>

### 订购电话号码
<a name="ie-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。您必须提供地址证明（例如水电费账单）。  | 
| 免费电话前缀：\$1353 1800 | 是 | 您在爱尔兰的营业地址和商业登记证副本。 | 

### 携号转网
<a name="ie-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 以色列 (IL)
<a name="il-requirements"></a>

### 订购电话号码
<a name="il-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="il-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 意大利（IT）
<a name="italy-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="it-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的公司名称、地址和增值税号。您必须提供地址证明以及商业登记证的复印件（在过去 6 个月内提取）。 您必须提供授权代表的以下详细信息：姓名和地址、出生地点和数据以及国籍和税码。还需提供授权代表的身份证明，它可以是身份证或护照的复印件。代表的姓名必须出现在商业登记证上。 需要意大利当地地址。  | 
| 免费电话前缀：\$139 800 | 是 |  您的公司名称、地址和增值税号。  您必须提供授权代表的以下详细信息：姓名和地址、出生地点和数据以及国籍和税码。还需提供授权代表的身份证明，它可以是身份证或护照的复印件。 要求提供在欧盟的办公地址。  | 

### 携号转网
<a name="it-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 本地号码：欧洲中部时间周一至周五上午 6 点至上午 9 点 免费电话号码：欧洲中部时间周一至周五上午 6 点至下午 4 点  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 牙买加 (JM)
<a name="jamaica-requirements"></a>

### 订购电话号码
<a name="jm-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="jm-porting"></a>

不支持转网。

## 日本（JP）
<a name="japan-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="jp-ordering"></a>


****  

| 支持的区域： | 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | --- | 
|  亚太地区（东京） | 本地电话号码：\$181 3 | 是 | 企业必须提供 3 份文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 这些文档的副本应制作成一个 ZIP 文件。  | 
|  全部 | 本地号码前缀：\$181 50 | 是 | 企业必须提供 3 份文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 这些文档的副本应制作成一个 ZIP 文件。  | 
|  全部 | 免费电话前缀：\$181 120、\$181 800  | 是 | 企业必须提供以下文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 这些文档的副本应制作成一个 ZIP 文件。  | 

### 携号转网
<a name="jp-porting"></a>


****  

| 支持的区域 | 转网窗口 | 所需文件 | 
| --- | --- | --- | 
| 所有免费电话号码前缀：\$181 120、\$181 800 | 通常是下个月的 1 日和 15 日。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 票证以验证您的号码的可移植性。  | 
| 亚太地区（东京）本地电话号码：\$181 3 | 通常是下个月的 1 日和 15 日。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 票证以验证您的号码的可移植性。  | 

## 拉脱维亚（LV）
<a name="latvia-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="lv-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 免费电话前缀：\$1371 80 | 是 | 企业必须提供商业登记证的副本以及拉脱维亚境内的地址证明（在过去 6 个月内签发）。  有效的证明形式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 
| 国家前缀：\$1371 6 | 是 | 公司必须提供拉脱维亚境内的地址证明（在过去 6 个月内签发）。  有效的证明形式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

### 携号转网
<a name="lv-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 立陶宛（LT）
<a name="lithuania-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="lt-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。 | 
| 免费电话前缀：\$1370 800 | 是 | 您在该国的办公地址。 | 

### 携号转网
<a name="lt-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 卢森堡（LU）
<a name="luxembourg-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="lu-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$1352 27 | 是 | 您的居住地址或办公地址。必须是与电话号码区号相对应的本地地址。 联系人电话号码。 | 
| 国家前缀： | 是 | 必须提供卢森堡的地址。企业必须提供商业登记证副本。 联系人电话号码。 | 
| 免费电话前缀：\$1352 800 | 是 | 您的公司名称和地址。可接受全球范围内的地址。 联系人电话号码。 | 

### 携号转网
<a name="lu-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 中国澳门 (MO)
<a name="mo-requirements"></a>

### 订购电话号码
<a name="mo-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="mo-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 马其顿 (MK)
<a name="mk-requirements"></a>

### 订购电话号码
<a name="mk-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="mk-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 马来西亚（MY）
<a name="malaysia-requirements"></a>

### 订购电话号码
<a name="my-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) | 
| 免费电话前缀：\$160 1800 | 是 | 商业注册文件。您的办公地址。可接受全球范围内的地址。  | 

### 携号转网
<a name="my-porting"></a>

不支持

## 马耳他（MT）
<a name="mt-requirements"></a>

### 订购电话号码
<a name="mt-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="mt-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 马提尼克岛 (MQ)
<a name="mq-requirements"></a>

### 订购电话号码
<a name="mq-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="mq-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 马约特岛 (YT)
<a name="yt-requirements"></a>

### 订购电话号码
<a name="yt-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="yt-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 墨西哥 (MX)
<a name="mexico-requirements"></a>

### 订购电话号码
<a name="mx-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 否 |  | 
| 免费电话前缀：\$152 800 | 否 |  | 

### 携号转网
<a name="mx-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至中午 12 点或下午 2 点至下午 4 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 摩纳哥 (MC)
<a name="mc-requirements"></a>

### 订购电话号码
<a name="mc-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="mc-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 新西兰（NZ）
<a name="new-zealand-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="nz-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 否 |  | 
| 免费电话前缀：\$164 800 | 否 |  | 

### 携号转网
<a name="nz-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 新西兰标准时间周一至周五上午 7 点至上午 11 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 荷兰（NL）
<a name="netherlands-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="nl-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 |  您的办公地址。必须是与电话号码区号相对应的本地地址。  | 
| 免费电话前缀：\$131 800 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。 预计的订购到激活的提前期为 6 个星期。  | 
| 国家前缀：\$131 85 | 是 | 您在该国的办公地址。 | 
| 国家前缀：\$131 88 | 是 | 您必须直接从当地监管机构获取号码，然后将号码分配证书提供给 Amazon Connect 进行号码激活。提出申请后，您将获得有关此流程的详细信息。 | 

### 携号转网
<a name="nl-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 尼加拉瓜 (NI)
<a name="nicaragua-requirements"></a>

### 订购电话号码
<a name="nicaragua-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 移动电话前缀：\$1505 (7)  | 否 | 不适用 | 

## 尼日利亚（NG）
<a name="nigeria-requirements"></a>

### 订购电话号码
<a name="ng-ordering"></a>


****  

| 支持的区域： | 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | --- | 
| 非洲（开普敦）  | 当地电话号码 | 是 | 企业必须提供一份包含地址证明的商业登记证副本。 有效的地址证明包括：第三方签发的银行对账单、水电费账单（均在过去 6 个月内签发）；政府文件（上一年签发）。 营业地址必须位于尼日利亚境内。  | 

### 携号转网
<a name="ng-porting"></a>

不支持

## 挪威（NO）
<a name="norway-requirements"></a>

### 订购电话号码
<a name="no-ordering"></a>


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)

号码仅适用于企业，不适用于个人。DID 类型是座机，而不是地理位置信息。这是因为所有以前的地理号码现在都被归类为座机，没有地理区域。

### 携号转网
<a name="no-porting"></a>


****  

| 支持的区域： | 转网窗口 | 所需文件 | 
| --- | --- | --- | 
|  欧洲地区（法兰克福）  欧洲地区（伦敦）  | 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 巴拿马 (PA)
<a name="panama-requirements"></a>

### 订购电话号码
<a name="pa-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码： | 没有 |  | 
| 免费电话前缀：\$1507 800 | 是 | 您的办公地址。 每个公司名称最多可以有 5 个巴拿马免费电话号码。 可接受全球范围内的地址 | 

### 携号转网
<a name="pa-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 太平洋标准时间周一至周五上午 12 点至凌晨 2 点 | **要转网本地号码**： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) **要转网免费电话号码**： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 秘鲁 (PE)
<a name="peru-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="pe-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 否 |  | 
| 免费电话前缀：\$151 800 | 否 |  | 

### 携号转网
<a name="pe-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 太平洋标准时间周一至周五晚上 10 点至凌晨 4 点 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 菲律宾（PH）
<a name="ph-requirements"></a>

### 订购电话号码
<a name="ph-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 座席位置 | 可接受的身份证明 | 
| --- | --- | --- | --- | 
| 本地电话号码：\$163 2 | 是 | 座席必须位于菲律宾境内。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 
| 免费电话前缀：\$163 1800 | 是 | 座席必须位于菲律宾境内。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 
| UIFN | 是 | 不适用 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 覆盖范围限制
<a name="ph-limitations"></a>
+ TFN：只能从全球网络到达全国各地

### 携号转网
<a name="ph-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 波兰（PL）
<a name="poland-requirements"></a>

### 订购电话号码
<a name="pl-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 |  与电话号码区号对应的本地地址，以及作为地址证明的商业登记证副本。 | 
| 免费电话前缀：\$148 800 | 是 | 您在波兰的办公地址。 | 

### 携号转网
<a name="pl-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 12 点  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 葡萄牙（PT）
<a name="portugal-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="pt-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。 您的税务登记号 (NIF)。  您还必须提交在该地址提供电信服务的必要证明。 | 
| 国家前缀：\$1351 30 | 是 | 您在葡萄牙的营业地址。您还必须提交在该地址提供电信服务的必要证明。  | 
| 免费电话前缀：\$1351 800 | 是 | 您的办公地址、税务登记号和商业登记证副本。要求提供在欧盟的办公地址。 | 

### 携号转网
<a name="pt-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 波多黎各 (PR)
<a name="puerto-rico-requirements"></a>

### 订购电话号码
<a name="pr-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 787、\$11 939 | 否 |  | 
| 免费电话前缀：\$11 800 | 否 |  | 

### 携号转网
<a name="pr-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 太平洋标准时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 留尼汪岛 (RE)
<a name="re-requirements"></a>

### 订购电话号码
<a name="re-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="re-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 罗马尼亚（RO）
<a name="romania-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="ro-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码： | 是 | 您的地址和地址证明。必须是与电话号码区号相对应的本地地址。  | 
| 免费电话前缀：\$140 800 | 否 |  | 
| 国家前缀：\$140 376 | 否 |  | 

### 携号转网
<a name="ro-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 太平洋标准时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 萨巴岛 (BQ)
<a name="saba-requirements"></a>

### 订购电话号码
<a name="bq-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$1599 4 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="bq-porting"></a>

不支持转网。

## 圣皮埃尔和密克隆群岛 (PM)
<a name="pm-requirements"></a>

### 订购电话号码
<a name="pm-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="pm-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 塞尔维亚 (RS)
<a name="serbia-requirements"></a>

### 订购电话号码
<a name="rs-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。  | 
| 免费电话前缀 | 否 |   | 

### 携号转网
<a name="rs-porting"></a>

不支持

## 圣卢西亚 (LC)
<a name="saintmartin-requirements"></a>

### 订购电话号码
<a name="mf-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="jm-porting"></a>

不支持转网。

## 圣马丁岛 (MF)
<a name="saintmartin-requirements"></a>

### 订购电话号码
<a name="mf-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 758 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="mf-porting"></a>

不支持转网。

## 新加坡（SG）
<a name="singapore-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="sg-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 国家前缀：\$165 31 和 \$165 6 | 是 | 需要提供国内地址。 公司所需文件：公司登记文件  | 
| 免费电话前缀：\$165 1800 | 是 |  您的办公地址。 可接受全球范围内的地址。  | 

### 携号转网
<a name="sg-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 新加坡时间周一至周五上午 9 点至下午 5 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

由于市场惯例 DIDs ，只能对由 10 个数字组成的连续数字块（... 0 到... 9）进行移出。

## 圣尤斯特歇斯岛 (BQ)
<a name="sinteustatius-requirements"></a>

### 订购电话号码
<a name="bq-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$1599 3 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="bq-porting"></a>

不支持转网。

## 荷属圣马丁 (SX)
<a name="sintmaarten-requirements"></a>

### 订购电话号码
<a name="sx-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 721 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="sx-porting"></a>

不支持转网。

## 斯洛伐克（SK）
<a name="slovakia-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="sk-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。  | 
| 免费电话前缀：\$1421 800 | 否 |  | 

### 携号转网
<a name="sk-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 斯洛文尼亚（SI）
<a name="slovenia-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="si-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您的办公地址。必须是与电话号码区号相对应的本地地址。  | 
| 免费电话前缀：\$1386 80 | 否 |  | 
| 国家前缀：\$1386 82 | 是 | 需要在斯洛文尼亚的地址。 | 

### 携号转网
<a name="si-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 南非 (ZA)
<a name="southafrica-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="za-ordering"></a>


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)

### 携号转网
<a name="za-porting"></a>


****  

| 支持的区域： | 转网窗口 | 所需文件 | 
| --- | --- | --- | 
| 非洲（开普敦）  |  周一至周五下午 5:00 至 6:00 GMT\$12 (SAST)  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 韩国（KR）
<a name="southkorea-requirements"></a>

**注意**  
由于需要经过与监管机构审查相关的额外步骤，而且许多步骤必须用韩语进行，因此在韩国订购和转网号码所需的时间比大多数其他国家都要长。有关在韩国订购和转网号码的更多信息，请参阅[有关携号转网到韩国 Amazon Connect 项目的指南](porting-numbers-sk.md)。

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="kr-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| VoIP 前缀号码：\$182 70 | 是 |  当地客户应提供由当地税务机关签发，并显示公司登记地址的**商业（税务局）登记证**副本。 提交 支持 工单以验证新号码订购的文件。  | 
| 代表号码：\$182 15、\$182 16 | 有 | 代表号码订购表为必填。使用在您提出请求时获得的表单。除此表格外，还需要以下文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 工单以验证新号码订购的文件。 | 
| 免费电话前缀：\$182 80 | 是 | 您在韩国的营业地址。 当地客户应提供由当地税务机关签发，并显示公司登记地址的**商业（税务局）登记证**副本。 提交 支持 工单以验证新号码订购的文件。 提交 支持 票证以订购新号码。  | 
| 地理前缀：\$182 2 | 是（通过转网） |  与 VOIP 号码相同，但提供的商业注册文件应注明与 \$1822（首尔）区域相关的实际位置。 但是，如果由于韩国法规要求新的本地号码必须作为传统服务的实际安装，因此需要新的本地号码，建议您预先计划迁移，并确保您向现有提供商申请的号码至少有 6 个月的实际安装时间。 Amazon Connect 可以支持大量迁移 DIDs，并且可以将超过 6 个月的号码直接移植到 Amazon Connect。  | 

### 携号转网
<a name="kr-porting"></a>


****  

| 号码类型 | 转网窗口 | 所需文件 | 
| --- | --- | --- | 
| 地理前缀：\$182 2（除了 \$1821、\$1825、\$1827、\$182308 之外的任何 \$182 数字） | 韩国时间周一至周五上午 9 点至下午 6 点 | 现有号码的新 SIP 订购表和 SIP 端口表。使用在您提出请求时获得的表单。文件必须由注明出生月份和年份的公司员工签署，并必须盖上公司印章。除了这些表格外，还需要以下文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 票证以验证您的号码的可移植性。  | 
| 国家前缀：\$182 50 | 韩国时间周一至周五上午 9 点至下午 6 点 |  现有号码的新 SIP 订购表和 SIP 端口表。使用在您提出请求时获得的表单。文件必须由注明出生月份和年份的公司员工签署，并必须盖上公司印章。除了这些表格外，还需要以下文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 票证以验证您的号码的可移植性。  | 
| 代表号码：\$182 15、\$182 16 | 韩国时间周一至周五上午 9 点至下午 6 点 | 需要填写 RN/TFN 变更表。使用在您提出请求时获得的表单。除此表格外，还需要以下文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 票证以验证您的号码的可移植性。  | 
| 免费电话前缀：\$182 80 | 韩国时间周一至周五上午 9 点至下午 6 点 | 需要填写 RN/TFN 变更表。使用在您提出请求时获得的表单。除此表格外，还需要以下文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 工单以验证新号码订购的文件。  | 
| VoIP 前缀号码：\$182 70 | 韩国时间周一至周五上午 9 点至下午 6 点 | 实际上，可以将呼叫转移到另一个 \$18270。 现有号码的新 SIP 订购表和 SIP 端口表。使用在您提出请求时获得的表单。文件必须由注明出生月份和年份的公司员工签署，并必须盖上公司印章。除了这些表格外，还需要以下文件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 提交 支持 票证以验证您的号码的可移植性。  | 

## 西班牙（ES）
<a name="spain-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="es-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您在西班牙相关地理区域内的办公地址以及您的公司税务 ID。商业登记证副本（Agencia Tributaria 或 Registro Mercantil）。如果商业登记证上的地址与为电话号码提供的地址不同，您还必须提供地址证明。  | 
| 免费电话前缀：\$134 900 | 否 |  | 

### 携号转网
<a name="es-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 瑞典 (SE)
<a name="sweden-requirements"></a>

### 订购电话号码
<a name="se-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码 | 是 | 您在瑞典的办公地址、增值税号和商业登记证副本。  | 
| 国家前缀：\$146 77 和 \$146 10 | 是 | 您在瑞典的办公地址、增值税号和商业登记证副本。 | 
| 移动电话前缀：\$146 766 | 否 |   | 
| 免费电话前缀：\$146 20 | 是 | 您在欧盟的办公地址、增值税号和商业登记证副本。 | 

### 携号转网
<a name="se-porting"></a>

\$146 77 号码无法携号转网。


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 瑞士（CH）
<a name="switzerland-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="ch-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 是 | 您在该国的办公地址。 ID/business 注册副本和地址证明。  | 
| 免费电话前缀：\$141 800 | 是 | 您的营业地址和商业登记证副本。 可接受全球范围内的地址。 | 

### 携号转网
<a name="ch-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 欧洲中部时间周一至周五上午 10 点至下午 12 点 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 中国台湾 (TW)
<a name="tw-requirements"></a>

### 订购电话号码
<a name="tw-ordering"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

## 泰国（TH）
<a name="thailand-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="th-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 限制 | 
| --- | --- | --- | --- | 
| 当地电话号码  | 是 | **对于泰国境内的营业地址**：企业必须提供公司授权代表的身份证和公司证书的副本。 **对于泰国境外的营业地址**：办公地址证明和身份证明，如商业登记证。此外，授权代表的身份证或护照的复印件。  | 无法保证国际来电显示。 | 
| 免费电话前缀：\$166 1800 | 是 | 办公地址证明和身份证明，如商业登记证。此外，授权代表的身份证或护照的复印件。 地址不能在泰国。  |  | 

### 号码转网（重新路由）
<a name="ge-porting"></a>


****  

| 号码类型 | 转网窗口 | 所需文件 | 
| --- | --- | --- | 
| 当地电话号码 | 中部标准时间周一至周五上午 9 点至下午 5 点 | 营业地址必须位于泰国 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 特立尼达和多巴哥 (TT)
<a name="trinidad-requirements"></a>

### 订购电话号码
<a name="tt-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 868 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="tt-porting"></a>

不支持转网。

## 特克斯和凯科斯群岛 (TC)
<a name="turks-requirements"></a>

### 订购电话号码
<a name="tc-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$11 649 | 是 | 需要提供订购表。使用在您提出请求时获得的表单。提供以下信息： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 可接受全球范围内的地址。  | 

### 携号转网
<a name="tc-porting"></a>

不支持转网。

## 乌干达 (UG)
<a name="uganda-requirements"></a>

### 订购电话号码
<a name="ug-ordering"></a>


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)

### 携号转网
<a name="ug-porting"></a>

不支持

## 英国 (GB)
<a name="unitedkingdom-requirements"></a>

对于 UIFN 号码，支持标准[区域和要求](#uifn-requirements)。

### 订购电话号码
<a name="gb-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码：\$144 1、\$144 2 | 否 | 某些区号中的号码订单可能需要提供本地地址。 | 
| 移动电话前缀：\$144 7 | 否 |  | 
| 免费电话前缀：\$144 800、\$144 808 | 否 |  | 
| 国家前缀：\$144 33、\$144 84 | 否 |  | 

### 携号转网
<a name="gb-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 对于本地（地理）号码：格林威治标准时间周一至周五上午 9 点至上午 11 点 对于非地理（国家、免费电话）号码：格林威治标准时间周一至周五上午 9 点至上午 11 点或凌晨 0 点至凌晨 4 点  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html) 在转网 \$144 300 号码时，可能需要提供其他文件来证明您是公共部门或非营利机构。  | 

## 美国（US）
<a name="us-requirements"></a>

### 订购电话号码
<a name="us-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码  | 否 |   | 
| 免费电话前缀  | 否 |  | 

### 携号转网
<a name="us-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 中部标准时间周一至周五上午 7 点至下午 5 点  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/phone-number-requirements.html)  | 

## 乌拉圭 (UY)
<a name="uy-requirements"></a>

### 订购电话号码
<a name="uy-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="uy-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

## 委内瑞拉 (VE)
<a name="venezuela-requirements"></a>

### 订购电话号码
<a name="ve-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| 当地电话号码\$1\$1 | 否 | 不适用 | 
| 免费电话前缀 | 否 | 不适用  | 

**\$1\$1部分全国可达性**：我们通过以下本地运营商提供全国入站可达性：
+ CANTV 固定网络
+ Movilnet（移动网络）
+ Telefonica-Movistar（固定网络和移动网络）

目前，我们不提供与 Digitel（固定网络和移动网络）的国内入站可达性服务。

### 携号转网
<a name="ve-porting"></a>

不支持转网。

## UIFN 要求
<a name="uifn-requirements"></a>

### 订购电话号码
<a name="uifn-ordering"></a>


****  

| 号码类型 | 是否有身份证要求？ | 可接受的身份证明 | 
| --- | --- | --- | 
| UIFN | 是 | 您的公司名称、地址和服务使用说明。可接受全球范围内的地址。 | 

### 携号转网
<a name="uifn-porting"></a>


****  

| 转网窗口 | 所需文件 | 
| --- | --- | 
| 仅预设 UIFN 时间 | Amazon 提供的服务提供商变更授权和代理机构指定  | 

# 在 Amazon Connect 中设置客户聊天体验
<a name="enable-chat-in-app"></a>

您可以使用以下方法之一为您的客户提供聊天体验：
+ [在 Amazon Connect 托管的网站上添加聊天用户界面](add-chat-to-website.md). 
+ [使用 Amazon Connect 开源示例自定义聊天内容](download-chat-example.md). 
+ [使用 Amazon Connect 自定义您的解决方案 APIs](integrate-with-startchatcontact-api.md)。建议您在自定义自己的聊天体验时从 Amazon Connect ChatJS 开源库开始。有关更多信息，请参阅 GitHub 上的 [Amazon Connect ChatJS](https://github.com/amazon-connect/amazon-connect-chatjs) repo。

## 更多自定义聊天体验的资源
<a name="more-resource-customize-chat"></a>
+ 交互式消息为客户提供了提示和预先配置的显示选项，供他们选择。这些消息由 Amazon Lex 提供支持，并使用 Lambda 通过 Amazon Lex 进行配置。有关如何通过 Amazon Lex 添加交互式消息的说明，请参阅此博客：[为您的 Amazon Connect 聊天自动程序设置交互式消息](https://aws.amazon.com/blogs/contact-center/easily-set-up-interactive-messages-for-your-amazon-connect-chatbot/)。

  Amazon Connect 支持以下模板：列表选择器和时间选取器。有关更多信息，请参阅 [在聊天中为客户添加 Amazon Lex 互动消息](interactive-messages.md)。
+  [通过 Amazon Connect 启用 Apple Messages for Business](apple-messages-for-business.md) 
+  [Amazon Connect 服务 API 文档](https://docs.aws.amazon.com/connect/latest/APIReference)，尤其是 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API。
+  [Amazon Connect 参与者服务 API](https://docs.aws.amazon.com/connect-participant/latest/APIReference/Welcome.html)。
+  [Amazon Connect 聊天 SDK 和示例实施](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/) 
+  [Amazon Connect Streams](https://github.com/aws/amazon-connect-streams)。用于将现有应用与 Amazon Connect 集成。您可以将联系人控制面板 (CCP) 组件嵌入到应用中。
+  [为 AI 支持的聊天启用消息流](message-streaming-ai-chat.md) 

# Amazon Connect 中的 chat/SMS 频道
<a name="web-and-mobile-chat"></a>

**重要**  
**尝试联系 Amazon 寻求支持？** 参见 [Amazon Customer Service](https://www.amazon.com/gp/help/customer/display.html?icmpid=docs_connect_messagingcap_customerservice)（Amazon 订单和配送）或 [AWS 支持](https://aws.amazon.com/premiumsupport/?icmpid=docs_connect_messagingcap_premiumsupport)（Amazon Web Services）。

Amazon Connect 允许您在网站和移动应用中内置聊天消息收发功能（移动聊天、网络聊天、短信和第三方消息收发服务）。它使您的客户能够通过任何业务应用程序、网络或移动设备开始与联络中心座席聊天。

交互是异步的，客户可以开始与座席或 Amazon Lex 自动程序聊天，再离开，然后再次恢复对话。他们甚至可以切换设备再继续聊天。

**Topics**
+ [多种渠道，一种体验](#unified-experience-chat)
+ [开始使用](#enable-chat)
+ [聊天场景示例](#example-chat-scenario)
+ [聊天何时结束？](#when-do-chats-end)
+ [定价](#web-and-mobile-chat-pricing)
+ [更多信息](#chat-more-info)

## 多种渠道，一种体验
<a name="unified-experience-chat"></a>

座席可以从一个用户界面帮助客户使用语音、聊天和任务。这减少了座席需要学习的工具数量以及需要交互的屏幕数量。

聊天活动可集成到您现有的联络中心流和您为语音构建的自动化系统中。您只需构建一次流，即可在多个渠道中重复使用。

您自动构建的指标收集和控制面板可受益于跨多个渠道的统一指标。

## 开始使用
<a name="enable-chat"></a>

要向您的 Amazon Connect 联络中心添加聊天消息收发功能并允许您的座席参与聊天，请执行以下步骤：
+ [创建用于存储聊天记录的 Amazon S3 存储桶](amazon-connect-instances.md#get-started-data-storage)时，会在实例级别启用聊天。
+ [将聊天添加到座席的路由配置文件中](routing-profiles.md)。
+ 或者，也可以设置聊天子类型，例如短信。您可以通过使用获取支持 SMS 的电话号码 AWS End User Messaging SMS，将其导入 Amazon Connect，然后将其分配给您的流程。有关更多信息，请参阅: 
  + [通过以下方式申请支持短信功能的电话号码 AWS End User Messaging SMS](sms-number.md)
  + [在 Amazon Connect 中设置短信消息](setup-sms-messaging.md)

然后，座席就可以通过联系人控制面板开始接受聊天。

您可以将聊天消息渠道的实时和历史指标（例如到达时间、处理时间）视为聊天频道整体指标的一部分，这与用于calls/chats/tasks评估客服表现和工作效率的报告体验相同。

Amazon Connect 提供了一些资源来帮助您在网站上添加聊天功能。有关更多信息，请参阅 [在 Amazon Connect 中设置客户聊天体验](enable-chat-in-app.md)。

## 聊天场景示例
<a name="example-chat-scenario"></a>

客户和座席正在聊天。客户不再回复座席。座席问：“您还在吗？” 没有得到回复。座席离开聊天。现在开始，聊天不再与座席关联。您的流决定了接下来会发生什么。

在此场景中，假设客户后来发送了另一条消息（“嘿，我回来了”），然后聊天恢复。根据您在流中定义的逻辑，聊天可以分配给原始座席或其他的座席/队列。

下面为您介绍如何构建此场景：

1. 创建断开连接流。下图显示了流设计器中的 [Amazon Connect 中的断开连接流示例](sample-disconnect.md)。此流程包括以下数据块：**播放提示**、**等待**，分支到三个**播放提示**（**客户已返回**、**时间已过期**和**错误**），然后**转移到队列**和**断开连接**。  
![\[示例断开连接流。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/sample-disconnect-flow.png)

1.  在断开连接流中，添加一个[等待](wait.md)数据块。“等待”数据块具有两个分支：
   +  **超时**：如果客户在指定时间后未发送消息，则运行此分支。聊天的总持续时间（包括多个**等待**数据块）不能超过 7 天。

      例如，对于此分支，您可能只想运行**断开连接**数据块并结束聊天。
   +  **客户返回**：在客户返回并发送消息时运行此分支。使用此分支，您可以将客户路由到以前的座席、以前的队列，或者设置新的工作队列/座席。

1.  在入站流中，添加[设置断开连接流](set-disconnect-flow.md)数据块。使用它指定当座席或 Amazon Lex 自动程序已与聊天断开连接且只有客户留下时，应运行“设置断开连接流”。

    例如，在以下数据块中，我们指定应运行**示例断开连接流**。  
![\[设置断开连接流数据块、选择流下拉菜单、示例断开连接流选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/set-disconnect-flow.png)

    有关使用**设置断开连接流**数据块的示例，请参阅 [入站流示例](sample-inbound-flow.md)。

## 聊天何时结束？
<a name="when-do-chats-end"></a>

 默认情况下，聊天对话的总持续时间（包括客户不活跃时等待的时间）不能超过 25 小时。但是，您可以更改此默认时长，配置自定义聊天时长。您可以将聊天配置为最短 1 小时（60 分钟）至最长 7 天（10,080 分钟）。要配置自定义聊天时长，请调用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 并添加`ChatDurationInMinutes`参数。

在正在进行的聊天会话中，客户离开并重新加入现有正在进行的聊天会话的次数没有限制。要完成此操作，请使用[等待](wait.md)数据块。例如，在结束聊天会话之前，您可能会等待 12 个小时让客户恢复聊天。如果客户在 12 小时后尝试恢复聊天，在流中，您可以让 Amazon Lex 自动程序询问他们是就同一问题还是不同问题联系您。

通过指定一个明显短于聊天时长的等待时间，可以帮助确保客户获得良好的体验。例如，对于持续时间为 25 小时的聊天，客户可能在 24 小时 58 分钟时恢复聊天，但因为对话限制为在 25 小时时自动结束，因此会两分钟后被中断。

**提示**  
如果您在聊天中使用 Amazon Lex，请注意，Amazon Lex 会话的默认超时时间为 5 分钟。会话的总持续时间不能超过 24 小时。要更改会话超时，请参阅《Amazon Lex 开发人员指南》**中的[设置会话超时](https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-timeoutg)。

## 定价
<a name="web-and-mobile-chat-pricing"></a>

聊天按次收费。无需预付款、长租或最低月费。无论使用聊天消息的座席或客户数量如何，您都需要为每条聊天消息付费。不同的区域定价可能会有所不同。有关更多信息，请参阅 [Amazon Connect 定价](https://aws.amazon.com/connect/pricing/)。

## 更多信息
<a name="chat-more-info"></a>

有关聊天的更多信息，请参阅以下主题：
+  [在 Amazon Connect 中测试语音、聊天和任务体验](chat-testing.md) 
+  [路由如何与多个渠道一起工作](about-routing.md#routing-profile-channels-works) 
+  [在 Amazon Connect 中创建路由配置文件，将队列链接到座席](routing-profiles.md) 
+  [Amazon Connect 聊天 SDK 和示例实施](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/) 

# 在 Amazon Connect 托管的网站上添加聊天用户界面
<a name="add-chat-to-website"></a>

要通过聊天为客户提供支持，您可以在网站上添加由 Amazon Connect 托管的通信小部件。你可以在 Amazon Connect 管理网站中配置通信小部件。您可以自定义字体和颜色，并保护小部件，使其只能从您的网站启动。完成后，您就可以在网站上添加一个简短的代码片段。

由于小组件是由 Amazon Connect 托管的，这确保了您的网站上始终可以运行最新版本。

**提示**  
通信小部件的使用受默认服务限额的限制，例如每条消息所需的字符数。在将通信小部件投入生产环境之前，请确保服务限额的设置符合您组织的需求。有关更多信息，请参阅 [Amazon Connect 服务配额](amazon-connect-service-limits.md)。

**Topics**
+ [可自定义的受支持小部件片段字段](supported-snippet-fields.md)
+ [支持的浏览器](#chat-widget-supported-browsers)
+ [第 1 步：自定义您的通信小部件](#customize-chat-widget)
+ [第 2 步：指定您希望在其中显示通信小部件的网站域](#chat-widget-domains)
+ [第 3 步：确认并复制通信小部件代码和安全密钥](#confirm-and-copy-chat-widget-script)
+ [收到错误消息？](#chat-widget-error-messages)
+ [自定义小部件启动行为和按钮图标](customize-widget-launch.md)
+ [传递客户显示名称](pass-display-name-chat.md)
+ [传递联系属性](pass-contact-attributes-chat.md)
+ [针对您的聊天小部件的额外自定义](pass-customization-object.md)
+ [下载您的聊天小部件的转录](chat-widget-download-transcript.md)
+ [下载并自定义我们的开源示例](download-chat-example.md)
+ [使用 Amazon Connect 在您的应用程序中开始聊天 APIs](integrate-with-startchatcontact-api.md)
+ [聊天消息到达时向客户发送浏览器通知](browser-notifications-chat.md)
+ [通过编程方式断开聊天连接](programmatic-chat-disconnect.md)
+ [传递自定义属性以覆盖通信小部件中的默认属性](pass-custom-styles.md)
+ [用 CSS/ 瞄准你的控件按钮和框架 JavaScript](target-widget-button.md)
+ [解决通信小部件的问题](ts-cw.md)
+ [添加联系前表单或聊天前表单](add-precontact-form.md)
+ [聊天后调查](enable-post-chat-survey.md)

# Amazon Connect 中支持可自定义的小部件片段字段
<a name="supported-snippet-fields"></a>

下表列出了可以自定义的通信小部件片段字段。表格之后的代码示例显示了如何使用片段字段。


| 片段字段 | Type | 说明 | 其他文档 | 
| --- | --- | --- | --- | 
| `snippetId` | 字符串 | 必填，自动生成 | 不适用 | 
| `styles` | 字符串 | 必填，自动生成 | 不适用 | 
| `supportedMessagingContentTypes` | 数组 | 必填，自动生成 | 不适用 | 
| `customLaunchBehavior` | 对象 | 自定义您的网站呈现和启动托管小部件图标的方式 | 此主题后面的[为托管在 Amazon Connect 的网站自定义小部件启动行为和按钮图标](customize-widget-launch.md) | 
| `authenticate` | 函数 | 在您的网站上启用 JWT 安全功能的回调函数 | 此部分前面的[第 2 步：指定您希望在其中显示通信小部件的网站域](add-chat-to-website.md#chat-widget-domains)。 | 
| `customerDisplayName` | 函数 | 初始化联系人时传递客户显示名称 | 此部分后面的[在 Amazon Connect 聊天开始时传递客户显示名称](pass-display-name-chat.md)。 | 
| `customStyles` | 对象 | 覆盖默认 CSS 样式 | 此部分后面的[传递自定义属性以覆盖 Amazon Connect 中的通信小部件中的默认属性](pass-custom-styles.md)。 | 
| `chatDurationInMinutes` | 数字 | 新开始的聊天会话的总时长 | 默认值：1500 - 最小 60，最大：10080 | 
| `enableLogs` | 布尔值 | 启用调试日志 | 默认：false | 
| `language` | 字符串 |  Amazon Connect 可以对支持的 ISO-639 格式语言代码进行翻译。欲了解更多信息，请参阅 [https://en.wikipedia。 org/wiki/List\$1of\$1iso\$1639-1\$1codes。](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) 这样不会翻译自定义文本覆盖和消息内容（包括已发送和已接收内容）。  | 默认语言：en\$1US。支持的语言：“cs\$1CZ”、“da\$1DK”、“de\$1DE”、“en\$1AU”、“en\$1CA”、“en\$1GB”、“en\$1US”、“es\$1ES”、“fi\$1FI”、“fr\$1FR”、“hu\$1HU”、“id\$1ID”、“it\$1IT”、“ja\$1JP”、“ko\$1KR”、“nl\$1NL”、“nn\$1NO”、“pt\$1BR”、“pt\$1PT”、“sk\$1SK”、“sv\$1SE”、“zh\$1CN”、“zh\$1TW” | 
| `disableCSM` | 布尔值 | 禁止从通信小部件跟踪客户端指标。 | 默认：false | 
| `nonce` | 字符串 | iframe 与客户网站 csp 策略之间的握手值。示例：客户 csp 允许使用 1234 随机数值，引入另一个脚本的 iframe 必须具有相同的 1234 随机数值，这样浏览器才能知道它是 iframe 父站点的可信脚本。 | 默认值：未定义 | 
| `customizationObject` | 对象 | 自定义小部件布局和脚本 | 有关更多信息，请参阅此部分后面的[针对您的 Amazon Connect 聊天小部件的额外自定义](pass-customization-object.md)。 | 
| `contactAttributes` | 对象 | 无需任何 JWT 设置，直接从片段代码向联系人流传递属性 | 有关更多信息，请参阅[聊天初始化时传递联系属性](https://docs.aws.amazon.com/connect/latest/adminguide/pass-contact-attributes-chat.html)。 | 
| `customDisplayNames` | 对象 | 覆盖 Amazon Connect 管理员网站中设置的系统或机器人显示名称和徽标配置。 | 有关更多信息，请参阅[如何传递通信小部件的覆盖系统和机器人显示的名称和徽标](https://docs.aws.amazon.com/connect/latest/adminguide/pass-custom-styles.html#pass-override-system)。 | 
| `contactMetadataHandler` | 函数 | 访问 contactId 的回拨函数。例如，添加事件侦听器来处理诸如在浏览器标签页关闭时使用 contactID 调用 StopContact 函数或使用之前的 ContactID 保持聊天持久性等场景。 |  | 
| `registerCallback` | 对象 | 这允许对公开的生命周期活动执行回拨。 有关更多信息，请参阅 [amazon-connect-chatjs](https://github.com/amazon-connect/amazon-connect-chatjs)。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/supported-snippet-fields.html) | 
| `initialMessage` | 字符串 | 要发送到新建聊天室的消息。长度限制：最小为 1，最大为 1024。 | 要使用初始消息调用联系流中配置的 Lex 机器人，请通过选择[使用信息初始化机器人](get-customer-input.md)选项来**修改获取客户输入流块**。有关更多信息，请参阅[如何配置获取客户输入流块](get-customer-input.md#get-customer-input-properties)。 | 
| `authenticationParameters` | 对象 | 这样会启用[验证客户身份](authenticate-customer.md)流数据块 | 有关更多信息，请参阅 [启用客户身份验证](enable-connect-managed-auth.md)。 | 
| `mockLexBotTyping` | 布尔值 | 为 Lex 机器人消息启用模拟键入指示器。 | 默认：false | 
| `customStartChat` | 函数 | 回调函数，用于从后端调用 Start Chat API。 | 有关更多信息，请参阅[具有自定义 Start Chat API 的托管小部件 UI](https://github.com/amazon-connect/amazon-connect-chat-interface#option-3-hosted-widget-ui-with-custom-start-chat-api)  | 

以下示例演示了如何向将聊天小部件添加到网站的 HTML 脚本中添加片段字段。

```
(function(w, d, x, id) {   /* ... */})(window, document, 
'amazon_connect', 'widgetId');
 amazon_connect('snippetId', 'snippetId');
 amazon_connect('styles', /* ... */);
 amazon_connect('registerCallback', {
    // Custom event example
    // WIDGET_FRAME_CLOSED
    /**
     * This event is triggered when user clicks on the chat widget close button, 
     * either widget close button was clicked when error in the chat session or normally by the user. 
     * This event can be used for webview use cases to go back to main app
     * 
     * @param {string} status - The reason for widget closure
     *   - "error_chat": Indicates the user clicked on widget close button due to an error in the chat session
     *   - "close_chat": Indicates the user clicked on widget close button normally by the user
     */
    'WIDGET_FRAME_CLOSED': (eventName, { status }) => {
        // You can implement custom logic based on the status value(error_chat or close_chat)
        if (status == "error_chat") {
            // handle error chat
        } else if (status == "close_chat") {
            // handle close chat  
        } 
    },
    // System event example
    /**
     * chatDetails: { 
     *     contactId: string, 
     *     participantId: string,
     *     participantToken: string,
     * }
     * data: {
     *     AbsoluteTime?: string,
     *     ContentType?: string,
     *     Type?: string,
     *     ParticipantId?: string,
     *     DisplayName?: string,
     *     ParticipantRole?: string,
     *     InitialContactId?: string
     * }
     */
    'PARTICIPANT_JOINED': (eventName, { chatDetails, data }) => {
        alert(`${data.ParticipantRole} joined the chat.`);
    },
    'event_Name_3': callback(function),
    'event_Name_4': callback(function),
    // ...
}); 
amazon_connect('initialMessage', 'Your initial message string');
// ... 
amazon_connect('snippetFieldHere', /* ... */);
<script/>
```

## 支持的浏览器
<a name="chat-widget-supported-browsers"></a>

预置的通信小部件支持以下浏览器版本及更高版本：
+ Google Chrome 85.0
+ Safari 13.1
+ Microsoft Edge version 85
+ Mozilla Firefox 81.0

通信小部件支持桌面设备的浏览器通知。有关更多信息，请参阅 [聊天消息到达时向客户发送浏览器通知](browser-notifications-chat.md)。

## 第 1 步：自定义您的通信小部件
<a name="customize-chat-widget"></a>

在此步骤中，您将为客户自定义通信小部件的体验。

1. 登录 Amazon Connect 管理员网站 https://*instance name*.my.connect.aws/。选择**自定义通信小部件**。  
![\[“配置指南”页面，“自定义通信小部件”链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-customize-chat-window-button.png)

1. 在**通信小部件**页面上，选择**添加通信小部件**，开始自定义新的通信小部件体验。要编辑、删除或复制现有的通信小部件，请从**操作**列下的选项中进行选择，如下图所示。  
![\[“通信小部件”页面，“添加通信小部件按钮”链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-add-chat-widget.png)

1. 输入通信小部件的**名称**和**描述**。
**注意**  
在 Amazon Connect 实例中创建的每个通信小部件的名称都必须是唯一的。

1. 在**通信选项**部分，选择客户如何与您的小部件互动，然后选择**保存并继续**。
**注意**  
只有在未启用聊天和语音功能的情况下，您才能启用任务或电子邮件联系前表单。

   下图显示了为客户启用聊天、消息回执和创建聊天前表单的选项。要启用聊天前表单，必须先创建一个带有连接操作按钮的[视图](view-resources-sg.md)，然后选择 `StartChatContact` 操作。有关聊天前和联系前表单的更多信息，请参阅[将 Amazon Connect 小部件添加到您的网站](connect-widget-on-website.md)。  
![\[为聊天和网络通话配置的通信小部件页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/comm-widget-page-chat.png)

1. 在**创建通信小部件**页面上，选择小部件按钮样式以及显示名称和样式。

   当您选择这些选项时，小部件预览会自动更新，以便您看到客户的体验效果。  
![\[通信小部件的预览。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/netra-chat-preview.png)

**按钮样式**

1. 通过输入十六进制值（[HTML 颜色代码](https://htmlcolorcodes.com/)）来选择按钮背景的颜色。

1. 选择**白色**或**黑色**作为图标颜色。无法自定义图标颜色。

**小部件标题**

1. 提供标题消息和颜色以及小部件背景颜色的值。

1. **徽标 URL**：从 Amazon S3 存储桶或其他在线来源向徽标横幅插入一个 URL。
**注意**  
如果该徽标来自 Amazon S3 存储桶以外的在线来源，则自定义页面中的通信小部件预览将不会显示徽标。只有当您的页面上安装了自定义通信小部件后，徽标才会显示。

   横幅的格式必须为 .svg、.jpg 或 .png。图像可以是 280 px（宽）x 60 px（高）。任何大于这些尺寸的图像都将被缩放，以适应 280x60 徽标组件空间。

   1. 有关如何将文件（如徽标横幅等）上传到 S3 的说明，请参阅《Amazon Simple Storage Service 用户指南》**中的[上传对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)。

   1. 确保正确设置了图像权限，以便通信小部件访问图像。有关如何公开访问 S3 对象的信息，请参阅《设置网站访问权限》**主题中的[第 2 步：添加存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html#bucket-policy-static-site)。

**聊天视图**

1.  **字体**：使用下拉菜单为通信小部件中的文本选择字体。

1. 
   + **系统消息显示名称**：键入新的显示名称以覆盖默认名称。默认为 **SYSTEM\$1MESSAGE**。
   + **自动程序消息显示名称**：键入新的显示名称以覆盖默认名称。默认为**自动程序**。
   + **文本输入占位符**：键入新的占位符文本以覆盖默认值。默认为**键入一条消息**。
   + **结束聊天按钮文本**：键入新文本以替换默认文本。默认为**结束聊天**。

1. **座席聊天气泡颜色**：通过输入十六进制值（[HTML 颜色代码](https://htmlcolorcodes.com/)）来选择座席消息气泡的颜色。

1. **客户聊天气泡颜色**：通过输入十六进制值（[HTML 颜色代码](https://htmlcolorcodes.com/)）来选择客户消息气泡的颜色。

1. 选择**保存并继续**。

## 第 2 步：指定您希望在其中显示通信小部件的网站域
<a name="chat-widget-domains"></a>

1. 输入您要放置通信小部件的网站域。聊天仅会在此步骤中选择的网站上加载。

   选择**添加域**，添加最多 50 个域。  
![\[“添加域”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-add-domain.png)

   域允许列表行为：
   + 自动包括子域。例如，如果您允许 example.com，则其所有子域（例如 sub.example.com）也被允许。
   + 协议 http:// 或 https:// 必须与您的配置完全匹配。设置允许域时指定确切的协议。
   + 自动允许所有 URL 路径。例如，如果允许使用 example.com，则允许其下的所有页面（例如示例。 com/cart or example.com/checkout) 可以访问。不能允许或阻止特定的子目录。
**重要**  
仔细检查您的网站 URLs 是否有效且不包含错误。请添加以 https:// 为开头的完整 URL。
建议您在生产网站和应用程序中使用 https://。

1. 在 “**为您的通信小组件添加安全性**” 下，我们建议您选择 “**是**”，然后与您的网站管理员合作设置您的 Web 服务器，以便为新的聊天请求发放 JSON Web Token (JWTs)。这使您在发起新聊天时拥有了更多控制权，包括验证发送到 Amazon Connect 的聊天请求是否来自经过身份验证的用户的功能。  
![\[激活新通信小部件请求的安全性。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-choose-security.png)

   选择**是**，会产生以下结果：
   + Amazon Connect 在下一页提供了 44 个字符的安全密钥，你可以用它来创建 JSON 网络令牌 () JWTs。
   + Amazon Connect 在通信小部件嵌入脚本中添加了一个回调函数，用于在聊天启动时检查 JSON Web 令牌（JWT）。

     您必须在嵌入式代码段中设置回调函数，如以下示例所示。

     ```
     amazon_connect('authenticate', function(callback) {
       window.fetch('/token').then(res => {
         res.json().then(data => {
           callback(data.data);
         });
       });
     });
     ```

   如果您选择此选项，在下一步中，您将获得一个安全密钥，用于在您的网站上发起的所有聊天请求。请您的网站管理员将您的 Web 服务器设置为 JWTs 使用此安全密钥发布。

1. 选择**保存**。

## 第 3 步：确认并复制通信小部件代码和安全密钥
<a name="confirm-and-copy-chat-widget-script"></a>

在此步骤中，您要确认选择并复制通信小部件的代码，并将其嵌入到您的网站中。如果您选择在[步骤 2 JWTs ](#chat-widget-domains) 中使用，也可以复制用于创建密钥的密钥。

### 安全密钥
<a name="chat-widget-security-key"></a>

使用此 44 个字符的安全密钥从您的 Web 服务器生成 JSON 网络令牌。如果需要更改，您也可以更新或轮换密钥。当您执行此操作时，Amazon Connect 会为您提供一个新密钥，同时保留以前的密钥，直到您替换它。部署新密钥后，您可以返回 Amazon Connect 并删除之前的密钥。

![\[Amazon Connect 提供的安全密钥。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-security-key.png)


当客户与您网站上的“开始聊天”图标进行互动时，通信小部件会向 Web 服务器请求 JWT。提供 JWT 后，小部件会将其包含在最终客户向 Amazon Connect 发出的聊天请求中。然后，Amazon Connect 会使用密钥解密令牌。如果成功，则确认了 JWT 是由您的 Web 服务器发出的，Amazon Connect 会将聊天请求路由到您的联络中心座席。

#### JSON Web 令牌的详细信息
<a name="jwt"></a>
+ 算法：**HS256**
+ 声明：
  + **订阅**:*widgetId*

    将 `widgetId` 替换为您自己的 widgetId。要查找您的 widgetId，请参阅[通信小部件脚本](#chat-widget-script)中的示例。
  + **iat**：\$1按时发放。
  + **exp**：\$1有效期（最长 10 分钟）。
  + **segmentAttributes（可选）**：一组系统定义的键值对，使用属性映射存储在各个联系分段上。如需了解更多信息 SegmentAttributes ，请查看 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-SegmentAttributes)API。
  + **属性（可选）**：带有 string-to-string键值对的对象。联系人属性必须遵守 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-Attributes)API 设置的限制。
  + **relatedContactId （可选）**：带有有效联系人 ID 的字符串。 relatedContactId 必须遵守 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 设定的限制。
  + **customerId（可选）**：这可以是 Amazon Connect Customer Profiles ID，也可以是来自外部系统（例如 CRM）的自定义标识符。

  \$1有关日期格式的信息，请参阅以下互联网工程任务组 (IETF) 文档：[JSON Web 令牌 (JWT)](https://tools.ietf.org/html/rfc7519)，第 5 页。

下面的代码片段举例说明了如何使用 Python 生成 JWT：

```
import jwt 
import datetime 
CONNECT_SECRET = "your-securely-stored-jwt-secret" 
WIDGET_ID = "widget-id" 
JWT_EXP_DELTA_SECONDS = 500

payload = { 
'sub': WIDGET_ID, 
'iat': datetime.datetime.utcnow(), 
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=JWT_EXP_DELTA_SECONDS), 
'customerId': "your-customer-id",
'relatedContactId':'your-relatedContactId',                    
'segmentAttributes': {"connect:Subtype": {"ValueString" : "connect:Guide"}}, 'attributes': {"name": "Jane", "memberID": "123456789", "email": "Jane@example.com", "isPremiumUser": "true", "age": "45"} } 
header = { 'typ': "JWT", 'alg': 'HS256' } 
encoded_token = jwt.encode((payload), CONNECT_SECRET, algorithm="HS256", headers=header) // CONNECT_SECRET is the security key provided by Amazon Connect
```

### 通信小部件脚本
<a name="chat-widget-script"></a>

下图显示了您在 JavaScript 希望客户与代理聊天的网站上嵌入的示例。该脚本会在网站右下角显示小部件。

![\[通信小部件脚本。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-code.png)


网站加载时，客户会首先看到**开始**图标。他们选择此图标后，通信小部件将打开，客户就可以向您的座席发送消息了。

要随时更改通信小部件，请选择**编辑**。

**注意**  
保存的更改将在几分钟内更新客户体验。保存之前，请确认您的小部件配置。

![\[小部件预览中的“编辑”链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-edit.png)


要更改网站上的小组件图标，您将收到一个新的代码片段，用于直接更新您的网站。

## 收到错误消息？
<a name="chat-widget-error-messages"></a>

如果遇到错误消息，请参阅[排查您的 Amazon Connect 通信小部件问题](ts-cw.md)。

# 为托管在 Amazon Connect 的网站自定义小部件启动行为和按钮图标
<a name="customize-widget-launch"></a>

要进一步自定义网站显示和启动托管小部件图标的方式，您可以配置启动行为并隐藏默认图标。例如，您可以通过编程方式从网站上显示的**与我们聊天**按钮元素启动小部件。

**Topics**
+ [如何为小组件配置自定义启动行为](#config-widget-launch)
+ [支持的选项和限制](#launch-options-constraints)
+ [为自定义用例配置小组件启动](#launch-usage)
+ [启用跨选项卡的聊天会话持久化](#chat-persistence-across-tabs)

## 如何为小组件配置自定义启动行为
<a name="config-widget-launch"></a>

要传递自定义启动行为，请使用以下示例代码块并将其嵌入到小部件中。以下示例中显示的所有字段均为可选字段，可以任意组合使用。

```
amazon_connect('customLaunchBehavior', {
    skipIconButtonAndAutoLaunch: true,
    alwaysHideWidgetButton: true,
    programmaticLaunch: (function(launchCallback) {
        var launchWidgetBtn = document.getElementById('launch-widget-btn');
        if (launchWidgetBtn) {
            launchWidgetBtn.addEventListener('click', launchCallback);
            window.onunload = function() {
            launchWidgetBtn.removeEventListener('click', launchCallback);
            return;
            }
        }
    })
});
```

## 支持的选项和限制
<a name="launch-options-constraints"></a>

下表列出了支持的自定义启动行为选项。均为可选字段，可任意组合使用。


| 选项名称 | Type | 说明 | 默认 值 | 
| --- | --- | --- | --- | 
|  `skipIconButtonAndAutoLaunch`  | 布尔值  | 一个标志 enable/disable ，表示无需用户点击页面加载即可自动启动小组件。 | 未定义 | 
|  `alwaysHideWidgetButton`  | 布尔值  | 用于 enable/disable 渲染控件图标按钮的标志（除非有正在进行的聊天会话）。 | 未定义 | 
|  `programmaticLaunch`  | 函数  |  | 未定义 | 

## 为自定义用例配置小组件启动
<a name="launch-usage"></a>

### 自定义小组件启动按钮
<a name="custom-launch-button"></a>

以下示例显示了您需要在小部件中做出的更改，以便将编程启动配置为仅在用户选择网站上任意位置显示的自定义按钮元素时才打开。例如，他们可以选择名为**联系我们**或**与我们聊天**的按钮。或者，您可以隐藏默认 Amazon Connect 小部件图标，直到该小部件打开为止。

```
<button id="launch-widget-btn">Chat With Us</button>
```

```
<script type="text/javascript">
 (function(w, d, x, id){
    s=d.createElement("script");
    s.src="./amazon-connect-chat-interface-client.js"
    s.async=1;
    s.id=id;
    d.getElementsByTagName("head")[0].appendChild(s);
    w[x] =  w[x] || function() { (w[x].ac = w[x].ac || []).push(arguments) };
  })(window, document, 'amazon_connect', 'asfd-asdf-asfd-asdf-asdf');
  amazon_connect('styles', { openChat: { color: '#000', backgroundColor: '#3498fe'}, closeChat: { color: '#fff', backgroundColor: '#123456'} });
  amazon_connect('snippetId', "QVFJREFsdafsdfsadfsdafasdfasdfsdafasdfz0=")
  amazon_connect('customLaunchBehavior', {
        skipIconButtonAndAutoLaunch: true,
        alwaysHideWidgetButton: true,
        programmaticLaunch: (function(launchCallback) {
            var launchWidgetBtn = document.getElementById('launch-widget-btn');
            if (launchWidgetBtn) {
                launchWidgetBtn.addEventListener('click', launchCallback);
                window.onunload = function() {
                launchWidgetBtn.removeEventListener('click', launchCallback);
                return;
                }
            }
        }),
    });
</script>
```

### 支持超链接
<a name="hyperlink-support"></a>

以下示例显示了您需要在小部件配置 `auto-launch` 中做出的更改，这样无需等待用户点击即可打开小部件。您可以部署到由网站托管的页面，创建可共享的超链接。

```
https://example.com/contact-us?autoLaunchMyWidget=true
```

```
<script type="text/javascript">
 (function(w, d, x, id){
    s=d.createElement("script");
    s.src="./amazon-connect-chat-interface-client.js"
    s.async=1;
    s.id=id;
    d.getElementsByTagName("head")[0].appendChild(s);
    w[x] =  w[x] || function() { (w[x].ac = w[x].ac || []).push(arguments) };
  })(window, document, 'amazon_connect', 'asfd-asdf-asfd-asdf-asdf');
  amazon_connect('styles', { openChat: { color: '#000', backgroundColor: '#3498fe'}, closeChat: { color: '#fff', backgroundColor: '#123456'} });
  amazon_connect('snippetId', "QVFJREFsdafsdfsadfsdafasdfasdfsdafasdfz0=")
  amazon_connect('customLaunchBehavior', {
        skipIconButtonAndAutoLaunch: true
    });
</script>
```

### 点击按钮时加载小组件资产
<a name="load-assets"></a>

以下示例显示了您需要在小部件中做出的更改，以便在用户单击**与我们聊天**按钮时通过获取小部件的静态资产来加快网站页面的加载速度。通常，只有一小部分访问**联系我们**页面的客户会打开 Amazon Connect 小部件。尽管客户从未打开过小部件，该小部件也可能会通过从 CDN 获取文件来增加页面加载的延迟。

另一种解决方案是在单击按钮时不同步（或从不）运行代码片段。

```
<button id="launch-widget-btn">Chat With Us</button>
```

```
var buttonElem = document.getElementById('launch-widget-btn');

buttonElem.addEventListener('click', function() {
    (function(w, d, x, id){
        s=d.createElement("script");
        s.src="./amazon-connect-chat-interface-client.js"
        s.async=1;
        s.id=id;
        d.getElementsByTagName("head")[0].appendChild(s);
        w[x] =  w[x] || function() { (w[x].ac = w[x].ac || []).push(arguments) };
    })(window, document, 'amazon_connect', 'asfd-asdf-asfd-asdf-asdf');
    amazon_connect('styles', { openChat: { color: '#000', backgroundColor: '#3498fe'}, closeChat: { color: '#fff', backgroundColor: '#123456'} });
    amazon_connect('snippetId', "QVFJREFsdafsdfsadfsdafasdfasdfsdafasdfz0=")
    amazon_connect('customLaunchBehavior', {
        skipIconButtonAndAutoLaunch: true
    });
});
```

### 在浏览器窗口中启动新聊天
<a name="new-chat-browser-window"></a>

以下示例显示了您需要在小部件中做出的更改，以启动一个新的浏览器窗口并在全屏模式下自动启动聊天。

```
<button id="openChatWindowButton">Launch a Chat</button>
```

```
<script> // Function to open a new browser window with specified URL and dimensions
    function openNewWindow() {
        var url = 'https://mycompany.com/support?autoLaunchChat=true';

        // Define the width and height
        var width = 300;
        var height = 540;

        // Calculate the left and top position to center the window
        var left = (window.innerWidth - width) / 2;
        var top = (window.innerHeight - height) / 2;

        // Open the new window with the specified URL, dimensions, and position
        var newWindow = window.open(url, '', 'width=${width}, height=${height}, left=${left}, top=${top}');
    }

    // Attach a click event listener to the button
    document.getElementById('openChatWindowButton').addEventListener('click', openNewWindow);
</script>
```

## 启用跨选项卡的聊天会话持久化
<a name="chat-persistence-across-tabs"></a>

默认情况下，如果用户在一个选项卡中有一个打开的聊天，然后打开一个新的选项卡并开始另一个聊天，则新聊天将开始，取代与现有聊天的连接。如果您希望用户连接在初始选项卡中启动的现有聊天，则可以启用跨选项卡的聊天会话持久化。

聊天会话被存储在浏览器上会话存储中的变量 `persistedChatSession` 内。首次初始化该小部件时，需要将此值复制到新选项卡的会话存储中。以下是操作说明。

要在用户导航到不同的子域时连接到同一个聊天会话，您可以设置 Cookie 的域属性。例如，您拥有两个子域：`domain1.example.com` 和 `domain2.example.com`。您可以添加属性 `domain=.example.com` 以便可以从所有子域访问该 Cookie。

1. 将以下代码复制到托管小部件代码段中其他 amazon\$1connect 函数旁边。这将使用 `registerCallback` 事件处理程序将 `persistedChatSession` 存储为 Cookie，以便可以在新选项卡中访问它。聊天结束时，它还会清理 Cookie。

   

   ```
   amazon_connect('registerCallback', {
   'CONNECTION_ESTABLISHED': (eventName, { chatDetails, data }) => {
    document.cookie = `activeChat=${sessionStorage.getItem("persistedChatSession")}; SameSite=None; Secure`;
   }, 
   'CHAT_ENDED': () => {
     document.cookie = "activeChat=; SameSite=None; Secure";
   }
   });
   ```

1. 检索 Cookie 值（如果存在），并在新选项卡中设置会话存储值。

   ```
   const cookie = document.cookie.split('; ').find(c => c.startsWith('activeChat='));
   if (cookie) {
     const activeChatValue = cookie.split('=')[1];
     sessionStorage.setItem('persistedChatSession', activeChatValue);
   }
   
   //Your hosted widget snippet should be on this page
   ```

# 在 Amazon Connect 聊天开始时传递客户显示名称
<a name="pass-display-name-chat"></a>

要为客户和座席提供更加个性化的体验，您可以自定义 Amazon Connect 通信小部件，以便在联系初始化期间传递客户显示名称。在整个聊天互动过程中，客户和座席都可以看到该名称。此显示名称将记录在聊天记录中。

下图显示了客户在聊天体验中显示的名称，以及他们在座席的 CCP 中的名称。

![\[客户在聊天体验中的名称，座席的 CCP 中的客户名称。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-displayname.png)


1. 客户使用聊天用户界面时看到的客户显示名称。

1. 使用 CCP 的座席看到的客户显示名称。

## 如何在通信小部件中传递客户显示名称
<a name="setup-display-name"></a>

要传递客户显示名称，请在代码段中执行回调函数。Amazon Connect 会自动检索显示名称。

1. 如果尚未执行，请完成 [在 Amazon Connect 托管的网站上添加聊天用户界面](add-chat-to-website.md) 中的步骤。

1. 扩充现有的小部件片段，添加 `customerDisplayName` 回调。它可能与下面的示例类似：

   ```
   amazon_connect('customerDisplayName', function(callback) {
     const displayName = 'Jane Doe';
     callback(displayName);
   });
   ```

   重要的是将名称传递给 `callback(name)`。

## 您需要了解的有关客户显示名称的需知事项
<a name="setup-display-name-important-notes"></a>
+ 一次只能存在一个 `customerDisplayName` 函数。
+ 客户显示名称必须遵守 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-Type-ParticipantDetails-DisplayName)API 设置的限制。也就是说，名称长度必须在 1 到 256 个字符之间。
+ 空字符串、空或未定义是显示名称的无效输入。为了防止意外传递这些输入，小部件会在浏览器控制台中记录错误 `Invalid customerDisplayName provided`，然后使用默认显示名称**客户**开始聊天。
+ 由于该片段位于网站的前端，因此请勿将敏感数据作为显示名称传递。请务必遵循适当的安全措施，以确保您的数据安全，防范攻击和恶意行为。

# 在聊天开始时，在联系人控制面板 (CCP) 中将联系属性传递给座席
<a name="pass-contact-attributes-chat"></a>

您可以使用[联系属性](what-is-a-contact-attribute.md)获取正在使用通信小部件的联系人的相关信息。然后，您可以通过联系人控制面板 (CCP) 向座席显示该信息，或者在流中的其他地方使用这些信息。

例如，您可以自定义流，在欢迎消息中写上客户的名称。或者，您可以使用企业特有的属性 account/member IDs，例如姓名和电子邮件等客户标识符，或与联系人关联的其他元数据。

## 如何将联系属性传递到通信小部件
<a name="how-to-contact-attributes-chatwidget"></a>

1. 如[在 Amazon Connect 托管的网站上添加聊天用户界面](add-chat-to-website.md)所述，在通信小部件中启用安全保护（如果尚未启用）：

   1. 在第 2 步中，在**为聊天小部件添加安全保护**下，选择**是**。

   1. 在第 3 步中，使用安全密钥生成 JSON Web 令牌。

1. 将联系属性作为 `attributes` 声明添加到 JWT 的有效载荷中。

   以下是如何用 Python 生成带有联系属性的 JWT 的示例：
**注意**  
应先安装 JWT。要安装它，请在终端运行 `pip install PyJWT`。

   ```
   import jwt 
   import datetime 
   CONNECT_SECRET = "your-securely-stored-jwt-secret" 
   WIDGET_ID = "widget-id" 
   JWT_EXP_DELTA_SECONDS = 500
   
   payload = { 
   'sub': WIDGET_ID, 
   'iat': datetime.datetime.utcnow(), 
   'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=JWT_EXP_DELTA_SECONDS), 
   'segmentAttributes': {"connect:Subtype": {"ValueString" : "connect:Guide"}}, 'attributes': {"name": "Jane", "memberID": "123456789", "email": "Jane@example.com", "isPremiumUser": "true", "age": "45"} } 
   header = { 'typ': "JWT", 'alg': 'HS256' } 
   encoded_token = jwt.encode((payload), CONNECT_SECRET, algorithm="HS256", headers=header) // CONNECT_SECRET is the security key provided by Amazon Connect
   ```

   在有效载荷中，您必须创建一个字符串键 `attributes`（按原样，全部为小写），并以一个对象作为其值。该对象必须有 string-to-string键值对。如果在任何一个属性中传递了字符串以外的任何内容，聊天将无法启动。

   联系人属性必须遵守 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-Attributes)API 设置的限制：
   + 密钥的长度下限必须为 1
   + 值的长度下限可以为 0

或者，您也可以在负载中将 segmentAttributes 字符串添加到[SegmentAttributeValue](https://docs.aws.amazon.com/connect/latest/APIReference/API_SegmentAttributeValue.html)对象映射中。这些属性是标准 Amazon Connect 属性。可以在流中访问它们。联系人属性必须遵守 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-SegmentAttributes)API 设置的限制。

## 替代方法：直接从代码片段中传递联系属性
<a name="pass-attributes-directly"></a>

**注意**  
此代码片段会将 `HostedWidget-` 添加到所有传递的联系属性键之前。在以下示例中，座席将看到键值对 `HostedWidget-foo: 'bar'`。
虽然这些属性的作用域使用 `HostedWidget-` 前缀，但它们在客户端仍是可变的。如果您的流中需要处理 PII 或不可变数据，请使用 JWT 设置。

以下示例介绍了如何在不启用小部件安全性的情况下直接从代码片段中传递联系属性。

```
<script type="text/javascript">
  (function(w, d, x, id){ /* ... */ })(window, document, 'amazon_connect', 'widgetId');
  amazon_connect('snippetId', 'snippetId');
  amazon_connect('styles', /* ... */);
  // ...

  amazon_connect('contactAttributes', {
   foo: 'bar'
  })
<script/>
```

### 在流中使用属性
<a name="contact-flow-usage-chat"></a>

[检查联系属性](check-contact-attributes.md)流数据块使用**用户定义**的命名空间来访问这些属性，如下图所示。您可以使用流数据块添加分支逻辑。完整路径是 `$.Attributes.HostedWidget-attributeName`。

![\[此图显示了流数据块分支到“有效”和“无效”提示。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/flow-check-contact-attrib.png)


## 您需要了解的内容
<a name="contact-attributes-chatwidget-important-notes"></a>
+ 通信小部件对整个编码令牌长度的限制为 6144 个字节。由于 JavaScript 使用 UTF-16 编码，因此每个字符使用 2 个字节，因此最大大小`encoded_token`应为 3000 个字符左右。
+ 应将 encoded\$1token 传递给 `callback(data)`。`authenticate` 片段不需要任何其他更改。例如：

  ```
  amazon_connect('authenticate', function(callback) {
    window.fetch('/token').then(res => {
      res.json().then(data => {
        callback(data.data);
      });
    });
  });
  ```
+ 使用 JWT 传递联系属性可确保数据的完整性。如果您能保护共享密钥并遵循适当的安全措施，就可以帮助确保数据不被不法分子篡改。
+ 联系属性仅在 JWT 中编码，未加密，因此可以解码并读取属性。
+ 如果您想使用[模拟聊天体验](chat-testing.md#test-chat)来测试聊天体验并包含联系属性，请务必用引号将键和值都括起来，如下图所示。  
![\[“测试设置”页面，引号中的联系属性键，引号中的值。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/test-chat-contact-attributes.png)

# 针对您的 Amazon Connect 聊天小部件的额外自定义
<a name="pass-customization-object"></a>

您可在聊天用户界面中添加以下可选自定义设置：
+ 在标题下拉菜单中而不是页脚中显示**结束聊天**按钮。
+ 屏蔽或隐藏显示名称。
+ “添加消息”图标。
+ 覆盖事件消息。
+ 配置一个确认对话框，当客户选择**结束聊天**按钮时，该对话框将呈现给客户。该对话框验证客户是否确实打算结束聊天会话。您可以自定义确认对话框、标题、消息和按钮文本。
+ 覆盖拒绝附件消息。

## 配置自定义设置对象
<a name="configure-customization-object"></a>

此示例演示如何实现一些可选的自定义设置。有关所有可能的自定义功能的列表，请参阅 [支持的选项和限制](#customization-options-constraints)。由于这些自定义功能是可选的，因此您可以实现以下示例中显示的部分或全部字段。根据需要替换 `eventNames.customer`、`eventNames.agent`、`eventNames.supervisor`、`eventMessages.participantJoined`、`eventMessages.participantDisconnect`、`eventMessages.participantLeft`、`eventMessages.participantIdle`、`eventMessages.participantReturned` 和 `eventMessages.chatEnded` 字符串。图标必须公开托管 URLs。

```
amazon_connect('customizationObject', {
        header: { 
            dropdown: true, 
            dynamicHeader: true,
        },
        transcript: { 
            hideDisplayNames: false, 
            eventNames: {
                customer: "User",
                agent: "Webchat Agent",
                supervisor: "Webchat Supervisor"
            },
            eventMessages: {
                participantJoined: "{name} has joined the chat",
                participantDisconnect: "",
                participantLeft: "{name} has dropped",
                participantIdle: "{name}, are you still there?",
                participantReturned: "",
                chatEnded: "Chat ended",
            },
            displayIcons: true,
            iconSources: { 
                botMessage: "imageURL",
                systemMessage: "imageURL",
                agentMessage: "imageURL",
                customerMessage: "imageURL",
            },
        },
        composer: {
            disableEmojiPicker: true,
            disableCustomerAttachments: true,
            alwaysHideToolbar: true,
            hide: false,
        },
        footer: {
            disabled:true,
            skipCloseChatButton: true,
        },
        endChat: {
            enableConfirmationDialog: true,
            confirmationDialogText: {
                title: "End Chat",
                message: "Are you sure you want to end this chat?",
                confirmButtonText: "End Chat",
                cancelButtonText: "Cancel",
        },
    },
    attachment: {
         // Default rejectedErrorMessage: Attachment was rejected.
        rejectedErrorMessage: "Custom Error Message: Files cannot exceed 15 MB." //this is customizable attribute 
    }
});
```

下图显示了使用示例时自定义设置的外观：

![\[示图显示可自定义的显示名称、菜单位置、图标以及“结束聊天”确认对话框。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-customization-diagram2.png)


## 支持的选项和限制
<a name="customization-options-constraints"></a>

下表列出了支持的自定义设置字段和推荐的值限制。


| 自定义布局选项 | Type | 描述 | 
| --- | --- | --- | 
|  `header.dropdown`  |  布尔值  |  呈现标题下拉列表而不是默认页脚  将此选项设置为 `true` 时，将显示**脚本下载**按钮并保持可见状态，直到您将该选项设置为 `false` 或删除该选项。   | 
| `header.dynamicHeader` | 布尔值 | 将标题动态设置为 “与 Bot/ 聊天AgentName”。 | 
| `header.hideTranscriptDownloadButton` | 布尔值 | 隐藏标题下拉菜单中的[下载文字记录](chat-widget-download-transcript.md)按钮。默认值为 false。 | 
|  `transcript.hideDisplayNames`  |  布尔值  |  隐藏所有显示名称，如果未提供 `eventNames`，将应用默认名称掩码。  | 
|  `transcript.eventNames.customer`  |  字符串  |  屏蔽客户的显示名称。  | 
|  `transcript.eventNames.agent`  |  字符串  |  屏蔽座席的显示名称。  | 
|  `transcript.eventNames.supervisor`  |  字符串  |  屏蔽主管的显示名称。  | 
|  ` transcript.eventMessages.participantJoined`  |  字符串  |  当有参与者加入聊天时，覆盖转录中的事件消息。如果指定空字符串，则转录中将省略事件消息。可以在消息中传递 `{name}`，并将被替换为相应参与者的显示名称。默认消息是 `{name} has joined the chat`。  | 
|  `transcript.eventMessages.participantDisconnect`  |  字符串  |  当有参与者从聊天中断开连接时，覆盖转录中的事件消息。如果指定空字符串，则转录中将省略事件消息。可以在消息中传递 `{name}`，并将被替换为相应参与者的显示名称。默认消息是 \$1`name} has been idle too long, disconnecting`。  | 
|  `transcript.eventMessages.participantLeft`  |  字符串  |  当有参与者离开聊天时，覆盖转录中的事件消息。如果指定空字符串，则转录中将省略事件消息。可以在消息中传递 `{name}`，并将被替换为相应参与者的显示名称。默认消息是 `{name} has left the chat`。  | 
|  `transcript.eventMessages.participantIdle`  |  字符串  |  当有参与者处于空闲状态时，覆盖转录中的事件消息。如果指定空字符串，则转录中将省略事件消息。可以在消息中传递 `{name}`，并将被替换为相应参与者的显示名称。默认消息是 `{name} has become idle`。  | 
|  `transcript.eventMessages.participantReturned`  |  字符串  |  当有参与者返回聊天时，覆盖转录中的事件消息。如果指定空字符串，则转录中将省略事件消息。可以在消息中传递 `{name} `，并将被替换为相应参与者的显示名称。默认消息是 `{name} has returned`。  | 
|  `transcript.eventMessages.chatEnded`  |  字符串  |  当聊天结束时，覆盖转录中的事件消息。如果指定空字符串，则转录中将省略事件消息。可以在消息中传递 `{name}`，并将被替换为相应参与者的显示名称。默认消息是 `Chat has ended!`  | 
|  `transcript.displayIcons`  |  布尔值  |  启用消息显示图标。  | 
|  `transcript.iconSources.botMessage`  |  字符串  |  为机器人消息显示的图标，必须托管在公共 URL 上。  | 
|  `transcript.iconSources.systemMessage`  |  字符串  |  为系统消息显示的图标，必须托管在公共 URL 上。  | 
|  `transcript.iconSources.agentMessage`  |  字符串  |  为座席消息显示的图标，必须托管在公共 URL 上。  | 
|  `transcript.iconSources.customerMessage`  |  字符串  |  为客户消息显示的图标，必须托管在公共 URL 上。  | 
|  `composer.alwaysHideToolbar`  |  布尔值  |  隐藏格式工具栏，该工具栏包含文本样式功能，例如粗体、斜体以及项目符号列表和编号列表选项。  | 
|  `composer.disableEmojiPicker`  |  布尔值  |  使用[富文本编辑器](enable-text-formatting-chat.md)时禁用表情符号选择器。  | 
| `composer.disableCustomerAttachments` | 布尔值 | 防止客户发送或上传附件。 | 
| `composer.hide` | 布尔值 | 隐藏作曲家 (`true`) 或显示它 (`false`)。要根据事件（例如代理加入时）切换作曲器，请`registerCallback`与`hideComposer`方法一起使用。有关更多信息，请参阅 [Amazon Connect 中支持可自定义的小部件片段字段](supported-snippet-fields.md)。<pre>document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatInterface.hideComposer(false)</pre> | 
|  `footer.disabled`  |  布尔值  |  隐藏默认页脚和**结束聊天**按钮。  | 
|  `footer.skipCloseChatButton`  |  布尔值  |  单击**结束聊天**按钮时直接关闭小部件，而不是显示**关闭**按钮。  | 
| `endChat.enableConfirmationDialog` | 布尔值 | 启用“结束聊天”确认对话框。如果未提供 confirmationDialogText，则使用默认文本。 | 
| `endChat.confirmationDialogText.title` | 字符串 | 覆盖“结束聊天”确认对话框的标题。 | 
| `endChat.confirmationDialogText.message` | 字符串 | 覆盖“结束聊天”确认对话框的消息。 | 
| `endChat.confirmationDialogText.confirmButtonText` | 字符串 | 覆盖“结束聊天”确认对话框中的“确认”按钮文本。 | 
| `endChat.confirmationDialogText.cancelButtonText` | 字符串 | 覆盖“结束聊天”确认对话框中的“取消”按钮文本。 | 
| `attachment.rejectedErrorMessage` | 字符串 | 覆盖聊天小部件附件被拒绝的错误消息。 | 

# 为在 Amazon Connect 中的聊天小部件下载文字记录
<a name="chat-widget-download-transcript"></a>

您可以在聊天窗口小部件中下载 PDF 格式的文字记录。

**Topics**
+ [启用标题下拉菜单](#chat-widget-download-transcript-enable-header-dropdown)
+ [下载 PDF 版聊天文字记录](#chat-widget-download-transcript-pdf)

## 启用标题下拉菜单
<a name="chat-widget-download-transcript-enable-header-dropdown"></a>

下载文字记录的按钮位于标题的下拉菜单中。要启用标题的下拉菜单，我们必须在小部件脚本中配置聊天小部件的 [customizationObject](pass-customization-object.md)。

```
amazon_connect('customizationObject', {
        header: { 
            dropdown: true, 
        }
});
```

请注意，启用下拉菜单将自动禁用页脚，因为**结束聊天**功能已移至页标题下拉菜单。如果您想保留页脚，则可以使用以下方法重新启用：

```
amazon_connect('customizationObject', {
        header: { 
            dropdown: true, 
        },
        footer: {
            disabled: false,
        }
});
```

## 下载 PDF 版聊天文字记录
<a name="chat-widget-download-transcript-pdf"></a>

启用标题下拉菜单后，您应该可以在聊天窗口小部件的左上角看到一个三点式菜单。在此下拉菜单中，您应该可以看到一个下载**聊天文字记录**按钮。

![\[显示下载聊天文字记录的按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-widget-download-transcript-pdf-1.png)


选择下载**聊天记录**将开始下载 PDF。聊天记录 PDF 将显示所有消息、显示名称、时间戳和消息事件，例如参与者离开或加入。

![\[下载聊天记录示例。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-widget-download-transcript-pdf-2.png)


# 使用 Amazon Connect 开源示例自定义聊天内容
<a name="download-chat-example"></a>

您可以进一步自定义客户与座席互动时的聊天体验。在上使用 [Amazon Connect 开源库](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/cloudformationTemplates/asyncCustomerChatUX) GitHub。这是一个帮助您快速入门的平台。下面将介绍操作方式：
+  GitHub 存储库链接到一个 CloudFormation 模板，该模板启动启动 Lambda 函数的 Amazon API Gateway 终端节点。您能够以本模板为例。
+ 创建 AWS CloudFormation 堆栈后，您可以从您的应用程序调用此 API，导入预先构建的通信小部件，将响应传递给微件，然后开始聊天。

有关自定义聊天体验的更多信息，请参阅：
+ [Amazon Connect 服务 API 文档](https://docs.aws.amazon.com/connect/latest/APIReference/welcome.html)，尤其是 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API。
+  [Amazon Connect 参与者服务 API](https://docs.aws.amazon.com/connect-participant/latest/APIReference/Welcome.html)。
+  [Amazon Connect Streams](https://github.com/aws/amazon-connect-streams)。用于将现有应用与 Amazon Connect 集成。您可以将联系人控制面板 (CCP) 组件嵌入到应用中。
+ [Amazon Connect 聊天 SDK 和示例实施](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/) 

# 使用 Amazon Connect 在您的应用程序中开始聊天 APIs
<a name="integrate-with-startchatcontact-api"></a>

使用 Amazon Connect APIs 中的 StartChatContact API 在您自己的应用程序中开始聊天。

要开始聊天，请使用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API。

当您首次探索聊天体验时，您会注意到聊天不计入历史指标报告中的**呼入的联系人**指标中。这是因为联系记录中聊天的启动方式是 **API**。

下图的联系记录显示了设置为 *API* 的*启动方式*。

![\[联系记录，启动方式设置为 API。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/ctr-api.png)


聊天转接到座席后，**呼入的联系人**指标会递增。转接的联系记录不再递增 API，但它会递增**呼入的联系人**。

# 聊天消息到达时向客户发送浏览器通知
<a name="browser-notifications-chat"></a>

通信小部件支持通过桌面设备向客户发送浏览器通知。具体而言，当您的客户收到新消息时，将通过其网络浏览器收到通知，而包含聊天窗口的网页不会有活动。当您的客户单击或轻触此通知时，他们会自动重定向到包含聊天窗口的网页。您的客户可以在每次聊天对话开始时启用或禁用通知。

下图显示了客户不在包含聊天窗口的网页上时收到的通知横幅示例。横幅告诉您的客户他们有新消息，并显示网站的名称。

![\[谷歌浏览器的横幅，上面写着您收到了一条新消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-notification-banner.png)


当通信小部件最小化时，客户还会收到一个通知图标，一个红点。下图显示了客户在聊天窗口最小化时收到的通知图标。

![\[通知图标。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-browser-notification.png)


这两个功能都自动包含在通信小部件中。您无需执行任何步骤即可将其提供给客户。

当您的客户发起聊天但尚未允许来自您的网站或域名的 allow/deny 通知时，他们会收到弹出式通知。在他们授予通知权限后，当他们不在带有聊天窗口的网页上时，就可以开始接收座席发送的任何消息或附件的浏览器通知了。即使您已经安装了通信小部件，该行为也依然适用。

## 如何测试
<a name="test-browser-notifications-chat"></a>

1. 在您以测试客户身份允许通知且座席已连接到聊天后，请最小化聊天窗口，然后打开一个新的浏览器实例，这样您就不在包含聊天窗口的网页上了。

1. 从座席窗口发送消息。

1. 作为测试客户，您将看到通知横幅。

1. 选择或轻触通知横幅。您将自动转到包含聊天窗口的网页。

1. 由于您之前最小化了聊天窗口，因此您还会在通信小部件上看到一个通知图标，一个红点。

如果您看不到浏览器通知，请检查以下内容：
+ 您正在使用[支持的浏览器](add-chat-to-website.md#chat-widget-supported-browsers)。
+ 带有聊天窗口 allowed/enabled 的网页的通知权限位于您的浏览器上。
+ 当你访问的网页不同于包含聊天窗口的网页 message/attachment 时，代理（或来自代理聊天会话的你）发送了一个新消息。要使小部件上的通知图标（红点）可见，请最小化聊天窗口。
+ 来自浏览器的通知没有休眠（暂时关闭）。

# 以编程方式断开 Amazon Connect 通信小部件的聊天会话
<a name="programmatic-chat-disconnect"></a>

您可以通过调用存储在通信控件中的`disconnect`方法，使用 “” JavaScript 以编程方式断开通信小组件的`iframe`聊天会话。从小部件的主文档，您可以使用以下代码片段来引用 `disconnect` 函数：

```
document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect()
```

您可以很容易地将其添加到现有的小部件脚本中。以下是一个代码片段示例：

```
<script type="text/javascript">
  (function(w, d, x, id){
    s=d.createElement('script');
    s.src='https://your-instance-alias.my.connect.aws/connectwidget/static/amazon-connect-chat-interface-client.js';
    s.async=1;
    s.id=id;
    d.getElementsByTagName('head')[0].appendChild(s);
    w[x] =  w[x] || function() { (w[x].ac = w[x].ac || []).push(arguments) };
  })(window, document, 'amazon_connect', '...');
  amazon_connect('styles', { iconType: 'CHAT', openChat: { color: '#ffffff', backgroundColor: '#123456' }, closeChat: { color: '#ffffff', backgroundColor: '#123456'} });
  amazon_connect('snippetId', '...');
  amazon_connect('supportedMessagingContentTypes', [ 'text/plain', 'text/markdown', 'application/vnd.amazonaws.connect.message.interactive', 'application/vnd.amazonaws.connect.message.interactive.response' ]);
 
  // Add disconnect event listener
  window.addEventListener("pagehide", () => {
      document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect();
  });
</script>
```

## 实施和使用案例
<a name="implementation-chat-disconnect"></a>

通过编程方式调用断开连接功能在多种情况下都非常有用。它提供了在手动单击 `End Chat` 按钮之外何时终止对话的更多控制权。以下是一些何时调用 `disconnect` 的常见使用案例。

### 关闭或导航时
<a name="close-chat-disconnect"></a>

一个常见的使用案例是，将断开连接功能附加到浏览器或选项卡上下文被销毁时触发的事件上。`pagehide` 和 `beforeunload` 是在浏览器关闭时触发的常见事件。当用户刷新页面、导航到不同 URL 或者关闭选项卡或浏览器时，会触发这些事件。尽管在浏览器上下文被销毁时这两个事件都会被触发，但并不能保证 `disconnect` 函数能在浏览器的资源被清理完毕之前完全执行。

`pagehide` 是一个更现代的页面生命周期事件，受到所有主流浏览器和操作系统的支持。如果 `pagehide` 事件无法稳定地调用断开连接功能，可以尝试使用 `beforeunload` 作为替代事件。`beforeunload` 在 `pagehide` 之前触发，这可能为防止 `disconnect` 函数在浏览器关闭之前未能完成执行提供了额外的可靠性。`beforeunload` 存在可靠性问题，尤其是在 iOS 设备上。

以下是一个代码片段示例：

```
// Call disconnect when `beforeunload` triggers
window.addEventListener("beforeunload", (event) => {
    document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect();
});

// Call disconnect when `pagehide` triggers
window.addEventListener("pagehide", (event) => {
    document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect();
});
```

### 上下文切换时
<a name="context-chat-disconnect"></a>

另一个用例是在用户切换上下文时触发断开连接，例如当用户切换或最小化屏幕 tab/app 或锁定屏幕时。`visibilitychange` 事件可以可靠地处理上下文不再可见的这些场景。

以下是一个代码片段示例：

```
window.addEventListener("visibilitychange", () => {
    if (document.visibilityState === "hidden") {
        document.getElementById("amazon-connect-chat-widget-iframe").contentWindow.connect.ChatSession.disconnect();
    } else if (document.visibilityState === "visible") {
        ...
    }
});
```

# 传递自定义属性以覆盖 Amazon Connect 中的通信小部件中的默认属性
<a name="pass-custom-styles"></a>

要进一步自定义聊天用户界面，您可以通过传递自己的值来覆盖默认属性。例如，您可以将小部件的宽度设置为 400 像素，将高度设置为 700 像素（相比之下，默认尺寸为 300 像素 x 540 像素）。您也可以使用自己喜欢的字体颜色和大小。

## 如何为通信小部件传递自定义样式
<a name="chat-widget-pass-custom-styles"></a>

要传递自定义样式，请使用以下示例代码块并将其嵌入到您的控件中。 Amazon Connect 自动检索自定义样式。以下示例中显示的所有字段均为可选字段。

```
amazon_connect('customStyles', {
 global: {
     frameWidth: '400px',
     frameHeight: '700px',
     textColor: '#fe3251',
     fontSize: '20px',
     footerHeight: '120px',
     typeface: "'AmazonEmber-Light', serif",
     customTypefaceStylesheetUrl: "https://ds6yc8t7pnx74.cloudfront.net/etc.clientlibs/developer-portal/clientlibs/main/css/resources/fonts/AmazonEmber_Lt.ttf",
     headerHeight: '120px',
 },
 header: {
     headerTextColor: '#541218',
     headerBackgroundColor: '#fe3',
 },
 transcript: {
     messageFontSize: '13px',
     messageTextColor: '#fe3',
     widgetBackgroundColor: '#964950',
     agentMessageTextColor: '#ef18d3',
     systemMessageTextColor: '#ef18d3',
     customerMessageTextColor: '#ef18d3',
     agentChatBubbleColor: '#111112',
     systemChatBubbleColor: '#111112',
     customerChatBubbleColor: '#0e80f2',
 },
 footer: {
     buttonFontSize: '20px',
     buttonTextColor: '#ef18d3',
     buttonBorderColor: '#964950',
     buttonBackgroundColor: '#964950',
     footerBackgroundColor: '#0e80f2',
     startCallButtonTextColor: '#541218',
     startChatButtonBorderColor: '#fe3',
     startCallButtonBackgroundColor: '#fe3',
 },
 logo: {
     logoMaxHeight: '61px',   
     logoMaxWidth: '99%',
 },
  composer: {
     fontSize: '20px', 
 },
  fullscreenMode: true // Enables fullscreen mode on the widget when a mobile screen size is detected in a web browser.
})
```

## 支持的样式和限制
<a name="chat-widget-supported-styles"></a>

下表列出了支持的自定义样式名称和推荐的值限制。有些样式同时存在于全局和组件级别。例如，`fontSize` 样式既存在于全局中，又存在于记录组件中。组件级别样式在聊天小部件上具有更高的优先级。


|  自定义样式名称  |  说明  |  推荐的限制  | 
| --- | --- | --- | 
|  `global.frameWidth`  |  整个小部件框架的宽度  |  最小值：300 像素 最大值：窗口宽度 建议根据窗口大小进行调整  | 
|  `global.frameHeight`  |  整个小部件框架的高度  |  最小值：480 像素 最大值：窗口高度 建议根据窗口大小进行调整  | 
|  `global.textColor`  |  所有文本的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `global.fontSize`  |  所有文本的字体大小  |  针对不同的用例，建议使用 12 到 20 像素  | 
|  `global.footerHeight`  |  小部件页脚的高度  |  最小值：50 像素 最大值：框架高度 建议根据框架大小进行调整  | 
|  `global.typeface`  |  小部件中使用的字体。  |  此列表中的任何字体：Arial、Times New Roman、Times、Courier New、Courier、Verdana、Georgia、Palatino、Garamond、Book man、Tacoma、Trebuches MS、Arial Black、Impact、Comic Sans MS。 您也可以添加自定义字体/字体系列，但需要托管字体文件并设置公共读取权限。例如，您可以查看 [Amazon 开发者库](https://developer.amazon.com/en-US/alexa/branding/echo-guidelines/identity-guidelines/typography)中有关使用 Amazon Ember 字体系列的文档。  | 
|  `global.customTypefaceStylesheetUrl`  |  自定义字体文件的托管位置具有公共读取权限。  |  链接到托管字体文件的公共 HTTP 位置。例如，L AmazonEmber ight 字体 CDN 的位置是 `https://ds6yc8t7pnx74.cloudfront.net/etc.clientlibs/developer-portal/clientlibs/main/css/resources/fonts/AmazonEmber_Lt.ttf`  | 
|  `header.headerTextColor`  |  标题消息的文本颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `header.headerBackgroundColor`  |  标题背景的文字颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `global.headerHeight`  |  小部件标题的高度  |  建议根据使用的是标题、图片徽标还是两者同时使用来作调整。  | 
|  `transcript.messageFontSize`  |  所有文本的字体大小  |  针对不同的用例，建议使用 12 到 20 像素  | 
|  `transcript.messageTextColor`  |  记录消息的文本颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `transcript.widgetBackgroundColor`  |  文字记录背景的文字颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `transcript.customerMessageTextColor`  |  客户消息的文本颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `transcript.agentMessageTextColor`  |  座席消息的文本颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `transcript.systemMessageTextColor`  |  系统消息的文本颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `transcript.agentChatBubbleColor`  |  座席消息气泡的背景颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `transcript.customerChatBubbleColor`  |  客户消息气泡的背景颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `transcript.systemChatBubbleColor`  |  系统消息气泡的背景颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `footer.buttonFontSize`  |  操作按钮文本的字体大小  |  建议根据页脚高度进行调整  | 
|  `footer.buttonTextColor`  |  操作按钮文本的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `footer.buttonBorderColor`  |  操作按钮边框的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `footer.buttonBackgroundColor`  |  操作按钮背景的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `footer.BackgroundColor`  |  页脚背景的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `footer.startCallButtonTextColor`  |  开始通话按钮文字的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `footer.startCallButtonBorderColor`  |  开始通话按钮边框的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `footer.startCallButtonBackgroundColor`  |  开始通话按钮背景的颜色  |  任何 CSS 合法颜色值。有关更多信息，请参阅 [CSS 合法颜色值](https://www.w3schools.com/cssref/css_colors_legal.php)。  | 
|  `logo.logoMaxHeight`  |  徽标的最大高度  |  最小值：0 像素 最大值：标题高度 建议根据图像尺寸和框架高度进行调整  | 
|  `logo.logoMaxWidth`  |  徽标的最大宽度  |  最小值：0 像素 最大值：标题宽度 建议根据图像尺寸和框架宽度进行调整  | 
|  `composer.fontSize`  |  编辑器文本的字体大小  |  针对不同的用例，建议使用 12 到 20 像素  | 
|  `fullscreenMode`  |  在 Web 浏览器中检测到移动屏幕尺寸时，在小部件上启用全屏模式。  |  类型：布尔值  | 

以下是构成通信小部件的元素。

![\[构成通信小部件的元素。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-elements.png)


## 如何传递通信小部件的覆盖系统和机器人显示的名称和徽标
<a name="pass-override-system"></a>

要覆盖 Amazon Connect 管理员网站中设置的 System/Bot 显示名称和徽标配置，请将以下代码块嵌入到您的控件代码片段中。以下示例中显示的所有字段均为可选字段。

```
amazon_connect('customDisplayNames', {
 header: {
     headerMessage: "Welcome!",
     logoUrl: "https://example.com/abc.png",
     logoAltText: "Amazon Logo Banner"
 },
 transcript: {
     systemMessageDisplayName: "Amazon System",
     botMessageDisplayName: "Alexa"
 },
 footer: {
     textInputPlaceholder: "Type Here!",     
      endChatButtonText: "End Session",      
      closeChatButtonText: "Close Chat",      
      startCallButtonText: "Start Call"
 },
})
```

### 支持的属性和限制
<a name="supported-properties-displaynames"></a>


| 自定义样式名称 | 说明 | 推荐的限制 | 
| --- | --- | --- | 
|  `header.headerMessage`  | 标题消息的文字 | 最小长度是 1 个字符 长度上限：11 个字符  建议根据标题宽度进行调整 | 
|  `header.logoUrl`  | 指向徽标图像的网址 |  长度上限：2048 个字符 必须是指向 .png、.jpg 或 .svg 文件的有效网址 | 
|  `header.logoAltText`  | 用于覆盖徽标横幅 alt 属性的文本 |  长度上限：2048 个字符 | 
|  `transcript.systemMessageDisplayName`  | 覆盖 SYSTEM\$1MESSAGE 显示名称的文字 | 最小长度是 1 个字符 长度上限：26 个字符  | 
|  `transcript.botMessageDisplayName`  | 覆盖 BOT 显示名称的文字 | 最小长度是 1 个字符 长度上限：26 个字符  | 
|  `footer.textInputPlaceholder`  | 在文本输入中覆盖占位符的文字 | 最小长度是 1 个字符 最大长度：256 个字符  | 
|  `footer.endChatButtonText`  | 覆盖聊天结束按钮文本的文字 | 最小长度是 1 个字符 最大长度：256 个字符 建议根据按钮宽度进行调整  | 
|  `footer.closeChatButtonText`  | 覆盖聊天关闭按钮文本的文字 | 最小长度是 1 个字符 最大长度：256 个字符 建议根据按钮宽度进行调整  | 
|  `footer.startCallButtonText`  | 覆盖开始通话按钮文本的文字 | 最小长度是 1 个字符 最大长度：256 个字符 建议根据按钮宽度进行调整  | 

## 预览使用了自定义属性的通信小部件
<a name="chat-widget-preview"></a>

在将其投入生产之前，请务必先预览使用了自定义属性的通信小部件。如果设置不当，自定义值可能会破坏通信小部件的用户界面。建议您在将其发布给客户之前，在不同的浏览器和设备上进行测试。

以下是使用不正确值时可能出现故障的几个示例，以及建议的修复方法。
+ **问题：**小部件窗口占用了太多屏幕空间。

  **修复方法：**使用较小的 `frameWidth` 和 `frameHeight`。
+ **问题：**字体太小或太大。

  **修复方法：**调整字体大小。
+ **问题：**结束聊天（页脚）下方有一块空白区域。

  **修复方法：**使用较小的 `frameHeight` 或较大 `footerHeight`。
+ **问题：**结束聊天按钮太小或太大。

  **修复方法：**调整 `buttonFontSize`。
+ **问题：**结束聊天按钮位于页脚区域之外。

  **修复方法：**使用较大的 `footerHeight` 或较小 `buttonFontSize`。

# 使用 CSS/ 瞄准你的 Amazon Connect 小工具按钮和框架 JavaScript
<a name="target-widget-button"></a>

通信控件将控 open/close 件按钮和控件框架直接呈现在主机网站上。您可以使用特定的选择器来使用 CSS 定位这些元素或在中 JavaScript引用它们。

**提示**  
要更新小部件按钮的颜色或小部件本身的样式，请使用 [Amazon Connect 管理网站](add-chat-to-website.md#customize-chat-widget)。要实现更可定制的样式，您可以直接[传递自定义样式](pass-custom-styles.md)给通信小部件。

## 控件元素 IDs 和示例
<a name="widget-elementid"></a>

下图显示聊天小部件按钮在用户屏幕上的显示效果。第一个图显示“打开”按钮，用于打开聊天小部件。第二个图显示“关闭”按钮，用于关闭聊天小部件。

![\[Side-by-side 用于打开和关闭聊天窗口的聊天小部件的图像。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/widget-elements.png)


1.  “打开”小部件按钮：`#amazon-connect-open-widget-button`

1. “关闭”小部件按钮：`#amazon-connect-close-widget-button`

1. 小部件框架：`#amazon-connect-widget-frame`

   1. 打开时的小部件框架：`#amazon-connect-widget-frame.show`

   1. 关闭时的小部件框架：`#amazon-connect-widget-frame:not(.show)`

以下是修改这些元素的 CSS 样式表示例：

```
/* Target widget button while widget is minimized */
#amazon-connect-open-widget-button {
  ...
}

/* Target widget button while widget is showing */
#amazon-connect-close-widget-button {
  ...
}

/* Target widget frame */
#amazon-connect-widget-frame {
  ...
}

/* Target widget frame while it is showing */
#amazon-connect-widget-frame.show {
  ...
}

/* Target widget frame while it is minimized */
#amazon-connect-widget-frame:not(.show) {
  ...
}
```

以下是使用 JavaScript以下方法引用这些元素的示例：

```
const openWidgetButton = document.getElementById("amazon-connect-open-widget-button");
const closeWidgetButton = document.getElementById("amazon-connect-close-widget-button");

const widgetFrame = document.querySelector("#amazon-connect-widget-frame");
const openWidgetFrame = document.querySelector("#amazon-connect-widget-frame.show");
const hiddenWidgetFrame = document.querySelector("#amazon-connect-widget-frame:not(.show)");
```

# 排查您的 Amazon Connect 通信小部件问题
<a name="ts-cw"></a>

本主题适用于需要调查在 Amazon Connect 管理网站中配置通信控件时可能出现的问题的开发人员。

**Topics**
+ [“出问题了”](#sww)
+ [客户未收到代理消息：网络或 WebSocket 已断开连接](#mam)
+ [打开第三方链接时绕过 CORS](#bcwotpl)

## “出问题了”
<a name="sww"></a>

如果您在加载通信小部件时看到以下**错误**消息，请打开浏览器工具查看错误日志。

![\[错误消息显示“出错了”。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-error-message.png)


以下是可能导致此错误的常见问题：

### 400 请求无效
<a name="400-invalid-request"></a>

如果日志显示 400 请求无效，可能有以下几种原因：
+ 您的通信小部件未在允许的域上运行。您必须明确指定托管小部件的域。
+ 向端点发出的请求格式不正确。这通常只有在嵌入式片段的内容被修改时才会出现这种情况。

### 401 未经授权
<a name="401-unauthorized"></a>

![\[“出错了”错误信息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/something-went-wrong.png)


如果日志显示 401 未经授权，说明是 JSON Web 令牌 (JWT) 身份验证存在问题。它显示上面的错误页面。

获得 JWT 后，您需要在 `authenticate` 回调函数中实施它。以下示例显示了如何在获取令牌后使用它：

```
amazon_connect('authenticate', function(callback) {
  window.fetch('/token').then(res => {
    res.json().then(data => {
      callback(data.data);
    });
  });
});
```

以下是需要实施的更基本的版本：

```
amazon_connect('authenticate', function(callback) {
   callback(token);
});
```

有关实施 JWT 的说明，请参阅 [第 3 步：确认并复制通信小部件代码和安全密钥](add-chat-to-website.md#confirm-and-copy-chat-widget-script)。

如果您已经实施了回调，以下情况仍可能导致 401：
+ 签名无效
+ 令牌已过期

### 404 未找到
<a name="404-not-found"></a>

出现 404 状态码通常是因为请求的资源不存在：
+ API 请求中指定的 widgetId 无效
+ widgetId 有效，但关联的流已被删除或存档
+ 该小部件尚未发布或已被删除

确认您的代码片段与从 Amazon Connect 管理员网站复制的内容完全相同，并且所有标识符均未更改。

如果标识符未更改，而您看到的是 404，请联系 AWS 支持。

### 500 内部服务器错误
<a name="500-internalservererror-chatwidget"></a>

这可能是由于您的服务相关角色没有启用聊天所需的权限所致。如果您的 Amazon Connect 实例是在 2018 年 10 月之前创建的，就会出现这种情况，因为您尚未设置服务相关角色。

**解决方案**：为与 Amazon Connect 实例关联的角色上添加 `connect:*` 策略。有关更多信息，请参阅 [使用 Amazon Connect 的服务相关角色和角色权限](connect-slr.md)。

如果您的服务相关角色拥有适当的权限，请联系 AWS 支持。

## 客户未收到代理消息：网络或 WebSocket 已断开连接
<a name="mam"></a>

在聊天会话期间，使用聊天应用程序的客户会失去 network/WebSocket 连接。他们很快就会重新获得连接，但在此期间座席发送的消息不会显示在客户的聊天界面上。

下图显示了客户的聊天界面和客服联系人控制面板的示例 side-by-side。座席发送的消息不会显示在客户的聊天会话中。但是，在座席看来，客户似乎已经收到了。

![\[CCP 中未发送给联系人的消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tw-cw-001-message-not-sent.png)


如果客户的聊天应用程序失去 network/WebSocket 连接，聊天用户界面必须执行以下操作才能检索 future 消息以及断开连接时发送给它的消息：
+ 重新建立 WebSocket 连接，以便再次接收 future 传入的消息。
+ 发送 [chatSession.getTranscript](https://github.com/amazon-connect/amazon-connect-chatjs?tab=readme-ov-file#chatsessiongettranscript) ([getTranscripts](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html) API) 请求，检索客户断开连接时发送的所有缺失消息。

如果座席在客户的聊天用户界面断开连接时发送消息，则消息会成功存储在 Amazon Connect 后端：CCP 按预期运行，消息全部记录在记录中，但客户的设备无法接收消息。当客户端重新连接到时 WebSocket，消息中会出现间隔。将来的传入消息将再次从中出现 WebSocket，但除非代码明确调用 [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)API，否则仍会缺少间隙消息。

### 解决方案
<a name="solution-network-disconnected"></a>

使用 [ChatSession。 onConnectionEstablished](https://github.com/amazon-connect/amazon-connect-chatjs?tab=readme-ov-file#chatsessiononconnectionestablished)用于调用 [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)API 的事件处理程序。 WebSocket 重新连接时会触发`chatSession.onConnectionEstablished`事件处理程序。ChatJS 具有内置的连接心跳和重试逻辑。 WebSocket 但是，由于 ChatJS 不会存储记录，您必须在聊天用户界面上添加自定义代码，才能再次手动获取副本。

以下代码示例展示了如何实现 `onConnectionEstablished` 来调用 `GetTranscript`。

```
import "amazon-connect-chatjs";

const chatSession = connect.ChatSession.create({
  chatDetails: {
    ContactId: "the ID of the contact",
    ParticipantId: "the ID of the chat participant",
    ParticipantToken: "the participant token",
  },
  type: "CUSTOMER",
  options: { region: "us-west-2" },
});

// Triggered when the websocket reconnects
chatSession.onConnectionEstablished(() => {
  chatSession.getTranscript({
    scanDirection: "BACKWARD",
    sortOrder: "ASCENDING",
    maxResults: 15,
    // nextToken?: nextToken - OPTIONAL, for pagination
  })
    .then((response) => {
      const { initialContactId, nextToken, transcript } = response.data;
      // ...
    })
    .catch(() => {})
});
```

```
function loadLatestTranscript(args) {
    // Documentation: https://github.com/amazon-connect/amazon-connect-chatjs?tab=readme-ov-file#chatsessiongettranscript
    return chatSession.getTranscript({
        scanDirection: "BACKWARD",
        sortOrder: "ASCENDING",
        maxResults: 15,
        // nextToken?: nextToken - OPTIONAL, for pagination
      })
      .then((response) => {
        const { initialContactId, nextToken, transcript } = response.data;
        
        const exampleMessageObj = transcript[0];
        const {
          DisplayName,
          ParticipantId,
          ParticipantRole, // CUSTOMER, AGENT, SUPERVISOR, SYSTEM
          Content,
          ContentType,
          Id,
          Type,
          AbsoluteTime, // sentTime = new Date(item.AbsoluteTime).getTime() / 1000
          MessageMetadata, // { Receipts: [{ RecipientParticipantId: "asdf" }] }
          Attachments,
          RelatedContactid,
        } = exampleMessageObj;

        return transcript // TODO - store the new transcript somewhere
      })
      .catch((err) => {
        console.log("CustomerUI", "ChatSession", "transcript fetch error: ", err);
      });
}
```

有关另一个示例，请参阅[上的这个开源实现 GitHub](https://github.com/amazon-connect/amazon-connect-chat-interface/blob/c88f854073fe6dd45546585c3bfa363d3659d73f/src/components/Chat/ChatSession.js#L408)。

## 打开第三方链接时绕过 CORS
<a name="bcwotpl"></a>

为增强安全性，通信小部件在沙盒环境中运行。因此，无法打开小部件内共享的第三方链接。

**解决方案**

有两种方法可以绕过 CORS 来允许打开第三方链接。
+ **（推荐）**

  更新沙盒属性以允许在新选项卡中打开链接。这可以通过在代码片段中添加以下属性来完成：

  ```
  amazon_connect('updateSandboxAttributes', 'allow-scripts allow-same-origin allow-popups allow-downloads allow-top-navigation-by-user-activation allow-popups-to-escape-sandbox')
  ```
**注意**  
可以根据需要更新属性值以允许执行特定操作。这是如何允许在新选项卡中打开链接的示例。
+ 移除沙盒属性。这可以通过在代码片段中添加以下属性来实现：

  ```
  amazon_connect('removeSandboxAttribute', true)
  ```

# 添加联系前表单或聊天前表单
<a name="add-precontact-form"></a>

您可以在开始联系之前获取客户信息：
+ **联系前表单**：添加该表单可以在开始任务或电子邮件联系之前从客户那里获取信息。
+ **聊天前表单**：添加该表单可以在开始聊天联系之前从客户那里获取信息。

捕获信息后，您可以通过联系人控制面板（CCP）显示给座席，或者在流的其他地方使用这些信息。

要创建表单，您需要创建一个自定义视图并使用连接操作按钮组件。有关视图的更多信息，请参阅[使用 Amazon Connect 中的用户界面生成器获取 step-by-step指南中的资源](no-code-ui-builder.md)。

连接操作按钮允许您接收表单中的用户输入，并选择提交表单时要采取的操作——开始 task/email 或聊天。

# 启用聊天后调查
<a name="enable-post-chat-survey"></a>

聊天后调查使您能够在聊天对话结束后立即收集最终客户的反馈。使用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 中的**`DisconnectOnCustomerExit`**参数，您可以配置在最终客户断开连接时自动断开代理连接，从而确保无论哪个参与者先断开连接，都能始终如一地触发断开连接流程。

## 实施选项
<a name="post-chat-survey-implementation"></a>

有两种方法可以启用聊天后调查：

### 对于自定义聊天控件
<a name="post-chat-survey-custom-builder"></a>

如果你使用的是自定义聊天实现：

1. 升级到最新版本的[amazon-connect-chatjs](https://github.com/amazon-connect/amazon-connect-chatjs)。

1. 将`DisconnectOnCustomerExit`参数添加到您的 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 请求中：

   ```
   {
       "DisconnectOnCustomerExit": ["AGENT"],
       // ... other StartChatContact parameters
   }
   ```

### 适用于 Amazon Connect 通信小工具
<a name="post-chat-survey-communication-widget"></a>

如果您使用的是 Amazon Connect 通信小工具：

1. 打开 Amazon Connect 控制台并导航至**通信小工具**。

1. 通过 “通讯小工具” 页面启用聊天后调查设置。  
![\[显示聊天后调查选项的 “通讯控件” 设置页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/post-chat-survey-communication-widget.png)

## 更新联系流程，将聊天后调查添加为断开连接流程
<a name="post-chat-survey-disconnect-flow"></a>

要启用聊天后调查，您需要更新与聊天解决方案相关的断开连接流程。配置完成后，调查将在客户结束聊天会话时自动触发。

有关创建断开连接流程的信息，请参阅[聊天场景示例](web-and-mobile-chat.md#example-chat-scenario)。

有两种方法可以在断开连接流程中实施调查：
+ **选项 \$11: 使用 ShowView 区块**-[Amazon Connect 流数据块：显示视图](show-view-block.md) 使用显示自定义调查界面。
+ **选项 \$12: 使用 Lex**-与 Amazon Lex 集成以进行基于文本的调查收集。有关更多信息，请参阅 [将 Amazon Lex 自动程序添加到 Amazon Connect](amazon-lex.md)。

**注意**  
对于主管闯入场景，请确保在**转移到**队列之前添加一个[Amazon Connect 流数据块：设置工作队列](set-working-queue.md)方块。省略它会导致聊天联系人终止而不是转移此功能。  

![\[流程图显示了主管闯入场景的 “转移到队列” 之前的 “设置工作队列” 模块。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/post-chat-survey-set-working-queue-block.png)


**联系人追踪记录**  
当客户结束聊天会话时，Amazon Connect `disconnectReason` 将`CUSTOMER_DISCONNECT`设置为[ContactTraceRecord](ctr-data-model.md#ctr-ContactTraceRecord)。配置完成后`DisconnectOnCustomerExit`，系统会生成新的联系人 ID (`nextContactId`) 并启动已配置的断开连接流程。  
示例：  

```
{
    "contactId": "104c05e3-abscdfre",
    "nextContactId": "4cbae06d-ca5b-1234567",
    "channel": "CHAT",
    "initiationMethod": "DISCONNECT",
    "disconnectReason": "CUSTOMER_DISCONNECT"
}
```
[Amazon Connect 中的联系属性如何运作](what-is-a-contact-attribute.md)将在联系人搜索和联系人详细信息中更新。  

![\[显示聊天后调查的联系人属性的联系人详细信息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/post-chat-survey-contact-attributes.png)


## 其他资源
<a name="post-chat-survey-additional-resources"></a>
+ [StartChatContact API](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)
+ [Amazon Connect 中的入站流示例，提供首次联系体验](sample-inbound-flow.md)
+ [聊天场景示例](web-and-mobile-chat.md#example-chat-scenario)
+ [Amazon Connect 流数据块：设置工作队列](set-working-queue.md)
+ [Amazon Connect 流数据块：转移到队列](transfer-to-queue.md)
+ [Amazon Connect ShowView](https://docs.aws.amazon.com/connect/latest/adminguide/show-view-block.html)
+ [Amazon Connect with Lex](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-lex.html)
+ [Amazon Connect 中的联系属性如何运作](what-is-a-contact-attribute.md)

# 将 Amazon Connect 聊天集成到移动应用程序中
<a name="integrate-chat-with-mobile"></a>

本主题将介绍如何将 Amazon Connect 聊天功能集成到移动应用程序中。可以使用以下选项之一：
+ [WebView 整合](#webview)
+ [iOS 和安卓版Amazon Connect Chat SDKs ](#integrate-chat-with-mobile-sdks-for-mobile)
+ [React Native 集成](#react-native-integration)

使用 Amazon Connect [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 发起联系。

**Topics**
+ [使用哪个集成选项](#integrate-options)
+ [Amazon Connect 聊天集成工作流程](#integrate-chat-with-mobile-workflow)
+ [开始使用 Amazon Connect 聊天集成](#integrate-chat-with-mobile-getting-started)

## 使用哪个集成选项
<a name="integrate-options"></a>

本节描述了每个集成选项，以帮助您决定将哪个集成选项用于您的解决方案。

### WebView 整合
<a name="webview"></a>

Amazon Connect Chat WebView 集成允许您以最少的开发工作将完整的聊天体验嵌入到您的移动应用程序中。该方法在 Android 上使用 `WebView`，在 iOS 上使用 `WKWebView`，以提供无缝且全面的聊天界面。对于寻求一种无需大量自定义即可快速集成聊天功能的 out-of-the-box解决方案的团队来说，它是理想的选择。

这种方法可确保安全通信，并利用基于 Web 的 Amazon Connect 聊天界面。但是，您需要将应用程序配置为 JavaScript 正确处理 Cookie。

有关实现 WebView 集成的更多信息，请参阅 Amazon Connect 聊天[界面示例](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples) GitHub 存储库。

**建议**： WebView基于基础的集成非常适合快速开发和最少的维护，同时确保全面的聊天功能。

### Amazon Connect 手机版聊天 SDKs
<a name="integrate-chat-with-mobile-sdks-for-mobile"></a>

iOS 和 Android 版的 Chat 简化了原生移动应用程序的 Amazon Connect 聊天集成。 Amazon Connect SDKs 它 SDKs 可以帮助处理客户端聊天逻辑和后端通信，类似于 Amazon Connect ChatJS 库。

 Amazon Connect 聊天 SDKs 结束了Amazon Connect参与者服务， APIs并抽象了聊天会话的管理以及 WebSocket. 这使您可以专注于用户界面和体验，同时依靠 Amazon Connect Chat SDK 与所有后端服务进行交互。这种方法仍然需要您使用自己的聊天后端来调用 Amazon Connect `StartChatContact` API 来发起联系。
+ 有关基于 Swift 的 iOS 开发工具包的更多信息，请参阅适用于 iO [S GitHub 的Amazon Connect Chat SDK 页面](https://github.com/amazon-connect/amazon-connect-chat-ios)。
+ 有关基于 Kotlin 的 Android SDK 的更多信息，请参阅适用于 Android 的 [Amazon Connect Chat SDK 页面](https://github.com/amazon-connect/amazon-connect-chat-android) GitHub 。

**优点**：Native SDKs 支持强大的功能和高性能，非常适合需要深度自定义和无缝用户体验的应用程序。

### React Native 集成
<a name="react-native-integration"></a>

Amazon Connect Chat React Native 集成提供了一种跨平台解决方案。它使团队能够使用共享代码库为 Android 和 iOS 构建聊天功能。这种方法在利用 React Native 的创建强大移动应用程序的功能的同时，平衡了自定义和开发效率。

此集成使用原生桥接来访问高级功能，并确保跨平台的一致性能和统一的用户体验。通过使用诸如`react-native-websocket`和 API 调用之类的库来实现 WebSocket 通信等关键功能会更容易`axios`。

**最适合**：希望在保持功能灵活性的同时最大化代码重用的团队。

## Amazon Connect 聊天集成工作流程
<a name="integrate-chat-with-mobile-workflow"></a>

下图显示了使用移动应用程序的客户与座席之间的编程流。此图中的编号文字与图片下方的编号文本相对应。

![\[该图显示了 Amazon Connect 聊天程序流程。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/integrate-chat-mobile-diagram.png)


**在图中**

1. 当客户在移动应用程序中开始聊天时，应用程序应 Amazon Connect 使用该 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 向发送请求。这需要特定的参数（ IDs 例如 API 端点以及[实例](amazon-connect-instances.md)和[联系](connect-contact-flows.md)流程）来进行身份验证和启动聊天。

1. `StartChatContact` API 会与您的后端系统交互以获取作为聊天会话唯一标识符的参与者令牌和联系 ID。

1. 应用程序的用户界面会将 `StartChatContact` 响应传递给移动设备 SDK，以便 SDK 能够与 [Amazon Connect 参与者服务](https://docs.aws.amazon.com/connect/latest/APIReference/API_Operations_Amazon_Connect_Participant_Service.html)进行正确通信并设置客户的聊天会话。

1. SDK 将向用户界面公开 [chatSession](https://github.com/amazon-connect/amazon-connect-chat-ios?tab=readme-ov-file#chatsession-apis) 对象，其中包含与聊天会话交互的易用方法。

1. 在幕后，SDK 使用 [AWS SDK](https://docs.aws.amazon.com/connect/latest/APIReference/API_Operations_Amazon_Connect_Participant_Service.html) 与 [Amazon Connect 参与者服务](https://aws.amazon.com/developer/tools/)交互。与 Amazon Connect 参与者服务的沟通负责所有客户与聊天会话的互动。这包括诸如`CreateParticipantConnection`、`SendMessage`、`GetTranscript` 或 `DisconnectParticipant` 之类的操作。

1. SDK 还管理从代理接收消息、事件和附件所需的 WebSocket 连接。所有这些都将由 SDK 处理和解析，然后以易用的结构显示在用户界面上。

## 开始使用 Amazon Connect 聊天集成
<a name="integrate-chat-with-mobile-getting-started"></a>

以下步骤和资源将帮助您开始将 Amazon Connect Chat 集成到原生移动应用程序中：

1. 您可以通过查看上的 [startChatContactAPI](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/cloudformationTemplates/startChatContactAPI) 示例，快速设置[CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)堆栈以提供必要的后端进行 GitHub调用 StartChatContact 。

1. 有关展示如何构建由 Amazon Connect Chat 支持的移动聊天界面的示例 SDKs，请查看我们的[用户界面示例](https://github.com/amazon-connect/amazon-connect-chat-ui-examples) GitHub 项目。

   请参阅我们的 [iOS](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples/iOSChatExample) 和 [Android](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples/androidChatExample) 聊天示例，这些示例展示了如何使用适用于 iOS/Android 的 Amazon Connect 聊天 SDK 为聊天应用程序提供支持。

1. 查看适用于 [iOS 的Amazon Connect 聊天 SDK 和适用于](https://github.com/amazon-connect/amazon-connect-chat-ios) [Android 的Amazon Connect 聊天 SDK](https://github.com/amazon-connect/amazon-connect-chat-android) GitHub 页面。该 GitHub 页面包含 API 文档和实施指南，其中解释了所有先决条件和安装步骤。

1. 设置 React Native 集成：利用 [React Native](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples/connectReactNativeChat) 示例获取有关实施基于 React Native 的解决方案的指导。

1. 如果您对在移动应用程序中设置或使用 Amazon Connect 聊天功能 SDK 有任何疑问或问题，可以在[适用于 iOS 的Amazon Connect 聊天功能 SDK 问题](https://github.com/amazon-connect/amazon-connect-chat-ios/issues)页面或[适用于 Android 的Amazon Connect 聊天功能 SDK 问题](https://github.com/amazon-connect/amazon-connect-chat-android/issues)页面提交问题。如果移动聊天用户界面示例存在问题，您可以在 [Amazon Connect 聊天用户界面示例问题](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/issues)页面提交问题。

# 为提升客户的聊天体验在 Amazon Connect 中启用文本格式化
<a name="enable-text-formatting-chat"></a>

借助 Amazon Connect 消息格式化，您可以让客户和座席快速为聊天消息添加结构和清晰度。

**Topics**
+ [支持的格式类型](#supported-format-types)
+ [启用消息格式化](#how-to-enable-message-formatting)
+ [如何添加电子邮件和电话链接](#add-email-phone-links)
+ [如何添加聊天机器人消息](#add-bot-messages)

## 支持的格式类型
<a name="supported-format-types"></a>

您可以使用 Markdown 在聊天用户界面和座席应用程序上提供以下类型的格式：
+ 粗体
+ 斜体
+ 项目符号列表
+ 编号列表
+ 超链接
+ 表情符号
+ 附件。要启用附件，请遵循 [在您的 CCP 中启用附件，以便客户和座席可以共享和上传文件](enable-attachments.md)。

## 如何启用消息格式化
<a name="how-to-enable-message-formatting"></a>

1. 创建新的[聊天用户界面](add-chat-to-website.md)时，富文本格式会立即启用。无需其他配置。

1. 要在现有的[聊天用户界面](add-chat-to-website.md)添加文本格式化功能，请使用以下以粗体突出显示的代码更新[通信小部件代码](add-chat-to-website.md)：

   ```
       (function(w, d, x, id){
           s=d.createElement('script');
           s.src='https://your-instance-alias.my.connect.aws/connectwidget/static/amazon-connect-chat-interface-client.js';
           s.async=1;
           s.id=id;
           d.getElementsByTagName('head')[0].appendChild(s);
           w[x] =  w[x] || function() { (w[x].ac = w[x].ac || []).push(arguments) };
       })(window, document, 'amazon_connect', 'widget-id');
       amazon_connect('styles', { openChat: { color: 'white', backgroundColor: '#123456'}, closeChat: { color: 'white', backgroundColor: '#123456'} });
       amazon_connect('snippetId', 'snippet-id');
       amazon_connect('supportedMessagingContentTypes', [ 'text/plain', 'text/markdown' ]);
   ```

   当您从 Amazon Connect 控制台获取代码片段时，以红色突出显示的代码将设置为正确的值。您选择添加或删除的唯一内容是最后一行以粗体显示的 `supportedMessagingContentTypes`。

1. 要将文本格式化功能添加到您自己的自定义聊天用户界面（例如，[聊天界面](https://github.com/amazon-connect/amazon-connect-chat-interface)或 [ChatJS](https://github.com/amazon-connect/amazon-connect-chatjs) 上自己的用户界面解决方案），请遵循以下步骤：

   1. 调用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API。调用 `StartChatContact` 时，添加 `SupportedMessagingContentTypes` 参数，如以下示例中的粗体所示：

      ```
      // Amazon Connect StartChatContact API
      {
          "Attributes": { 
              "string" : "string" 
          },
          "ClientToken": "string",
          "ContactFlowId": "your flow ID",
          "InitialMessage": { 
              "Content": "string",
              "ContentType": "string"
          },
          "InstanceId": "your instance ID",
          "ParticipantDetails": { 
              "DisplayName": "string"
          }
          
          // optional
         "SupportedMessagingContentTypes": [ "text/plain", "text/markdown" ]
      }
      ```

   1. 将 `chatjs` 作为对象导入，如以下示例所示：

      ```
      import "amazon-connect-chatjs";
      
      this.session = connect.ChatSession.create({
            ...
          });
      
      this.session.sendMessage({
            message: "message-in-markdown-format",
            contentType: "text/markdown"
      });
      ```

      如果您不使用 ChatJs，请参阅以下主题，了解有关通过 Amazon Connect 发送降价文本的信息 APIs：[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)和[SendMessage](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html)。

   1. 使用 Markdown 发送消息。有关如何发送消息的示例，请参阅前面将 `chatjs` 作为对象导入的代码片段。您可以使用简单的 Markdown 来格式化聊天中的文本。如果你[现在已经在使用 chatjs 发送纯文本消息，你可以修改现有的逻辑来](https://github.com/amazon-connect/amazon-connect-chatjs/blob/master/src/core/chatController.js#L66)调用 [SendMessage](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html)as，`contentType`而不是在你想要发送 markdown 消息`text/plain`时调用。`text/markdown`请务必更新 `sendMessage` 参数，使您的消息包含 Markdown 格式。有关更多信息，请参阅 [Markdown 指南基本语法](https://www.markdownguide.org/basic-syntax/)。

   1. 在 UI 软件包中执行您自己的逻辑，以便在输入区和聊天记录中呈现 Markdown 消息。如果您使用 React，可以使用 [react-markdown](https://github.com/remarkjs/react-markdown) 作为参考。

**注意**  
只有在聊天用户界面中为客户启用文本格式化功能后，您的座席才会看到该功能。如果客户的聊天用户界面不支持或未启用文本格式化，座席将无法使用文本格式撰写和发送消息。
除附件外，所有文本格式化功能均可用于[快速响应](create-quick-responses.md)。

## 如何添加电子邮件和电话链接
<a name="add-email-phone-links"></a>

以下示例显示了如何在您的网络和移动应用程序中添加可点击和可调用的链接。

```
Call us today: [+1 (123) 456-7890](tel:+11234567890)
[Call Us](tel:+11234567890)
[Skype Us](callto:+91123-456-7890)
[Fax Us](fax:+91123-456-7890)
[Text Us](SMS:+91123-456-7890)
[Email Us](mailto:name@email.com)
```

## 如何添加聊天机器人消息
<a name="add-bot-messages"></a>

启用聊天消息编辑器功能后，您可以对以下类型的聊天机器人消息使用富文本格式：
+ [播放提示](play.md)流
+ [获取客户输入](get-customer-input.md)流
+ `SYSTEM_MESSAGE`
+ `Lex BOT`
+ `Third Party BOT`
+ `Lex BOT Lambda`

下图显示了如何在[播放提示](play.md)流数据块中手动启用提示：

![\[流数据块图像和带有 2 个链接的提示，一个指向常见问题解答，另一个指向电话号码。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-rtf-play-prompt-flow-1.png)


下图显示了如何在[获取客户输入](get-customer-input.md)流数据块中手动启用提示，然后将流数据块与 Amazon Lex 机器人相关联：

![\[流数据块图像和带有 2 个链接的提示，一个指向常见问题解答，另一个指向电话号码。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-rtf-get-customer-flow.png)


下图显示了提示在 SYSTEM\$1MESSAGE 和各种 BOT 消息类型中的显示方式：

![\[图片显示了 SYSTEM 和 BOT 消息中的“查看我们的常见问题解答”和“联系我们”链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-rtf-sys-bot-messages.png)


下图显示了如何在 Amazon Lex 机器人意图中设置提示：

![\[Amazon Lex 意图的图片，其中包含一个带有 2 个链接的提示，一个指向常见问题解答，另一个指向电话号码。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-rtf-lex-flow.png)


有关意图的更多信息，请参阅*《Amazon Lex V2 开发人员指南》*中的[添加意图](https://docs.aws.amazon.com/lexv2/latest/dg/add-intents.html)。*有关 Lambda 消息的更多信息，请参阅 Amazon [Lex V2 开发者指南中的使用 AWS Lambda 函数启用自定义逻辑](https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html)。*

# 启用 Amazon Connect 聊天客户的通知功能
<a name="message-receipts"></a>

您可以在[聊天用户界面](add-chat-to-website.md)启用消息*已送达*和*已读*，以便您的客户知道他们发送的消息的状态。这为客户提供了透明度，改善了整体聊天体验。

无论是否启用了消息回执，都将始终发送消息回执数据和事件，并且可以在网络日志中看到。在聊天用户界面中启用和禁用消息回执仅影响回执是否会显示在通信小部件的转录中。

**提示**  
默认情况下，[测试聊天](chat-testing.md#test-chat)体验、联系人控制面板 (CCP) 和聊天小组件的[可下载开源示例](download-chat-example.md)已启用消息回执。

**在聊天用户界面启用消息回执。**

1. 登录 Amazon Connect 管理员网站，网址为 https://*instance name*.my.connect.aws/。选择**自定义通信小部件**。  
![\[“配置指南”页面，“自定义通信小部件”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-customize-chat-window-button.png)

1. 选择**编辑**。  
![\[“已保存的通信小部件自定义”页面，“编辑”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-edit-messagereceipt.png)

1. 默认情况下，不启用**消息回执**。设置为**启用**。  
![\[消息回执选项已启用。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-enable-messagereceipt.png)

消息回执现已启用。使用通信小部件的客户将立即开始看到*已送达*和*已读*回执。

# 为聊天参与者设置聊天超时
<a name="setup-chat-timeouts"></a>

当座席和客户之间的聊天对话在一段时间内处于非活动状态（未发送任何消息）时，您可能希望将聊天参与者视为空闲状态，甚至可能希望自动断开座席与聊天的连接。

为此，您可以使用操作配置空闲超时和自动关闭超时。[UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)

**提示**  
本主题介绍如何为客户与座席的对话设置聊天超时。如果您正在寻找有关在客户与 Lex 互动时配置聊天超时的信息，请参阅[Amazon Connect 流数据块：获取客户输入](get-customer-input.md)数据块的[Lex 互动期间可配置聊天输入的超时时间](get-customer-input.md#get-customer-input-configurable-timeouts-chat)部分。

**您可以设置四种不同类型的计时器。**
+ 您可以制定在采取操作前必须经过的时间。
+ 可以使用任意组合的计时器。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/setup-chat-timeouts.html)

**以分钟为单位指定所有计时器。**
+ 最短：2 分钟
+ 最长：480 分钟（8 小时）

**计时器应用于参与者角色，在聊天过程中一直有效。**
+ 您可以为参与者角色（例如座席和客户）配置计时器，而不是为单个参与者配置计时器。
+  设置计时器后，它们将在聊天过程中一直有效。如果聊天已转移，则计时器将应用于新的 agent/customer 互动。

## 聊天计时器的工作原理
<a name="how-chat-timer-work"></a>

计时器的行为如下所示：
+ 当座席和客户都连接到聊天时，或者当客户和自定义参与者（例如自定义机器人）时，计时器开始计时。
+ 计时器首先在 agent/custom 参与者加入聊天时开始，并在 agent/custom 参与者离开聊天时停止。
+ 如果一个角色同时配置了空闲计时器和自动断开计时器，则空闲计时器会在自动断开计时器之前运行。例如，如果同时配置了两个计时器，只有在参与者被视为空闲之后，自动断开连接计时器才会启动。
+ 如果仅为角色配置了一种类型的计时器，则该计时器会立即启动。
+ 无论参与者在什么时候发送消息，该参与者的计时器都将被重置。如果他们之前被认为处于空闲状态，现在就不再被认为处于空闲状态了。
+ 当向消息添加附件时，聊天计时器会被重置。
+  agent/custom 参与者加入时设置的配置将在参与 agent/custom 者继续聊天时生效。如果您在 agent/custom 参与者和客户已经相互连接的情况下更新计时器配置，则会存储新配置，但除非有新的 agent/custom 参与者连接到聊天，否则不会应用新配置。
+ 发生自动断开事件时，除客户以外的所有参与者（例如座席、任何监控主管或自定义参与者）都将断开连接。如果座席已断开连接，并且已配置 [设置断开连接流](set-disconnect-flow.md) 数据块，则会将此聊天路由到它。

### 闲置计时器到期
<a name="idle-timer-expiry"></a>

以下是客户自定义参与者互动过程中闲置计时器到期时的情况：

1. 空闲事件会分散到所有 websockets/streaming 端点。

1. 如果配置了自动断开计时器，则计时器将启动。

1. 如果聊天联系处于**等待**状态时，闲置计时器到期，则联系不会通过**时间到期**分支进行路由。如果出现这种情况，则不会采取任何操作。

### 自动断开自定义参与者的连接
<a name="auto-disconnecting"></a>

当自动断开计时器到期连接时，自定义参与者会断开与聊天的连接。

当自动断开计时器到期连接时，Amazon Connect 会执行以下步骤之一：

1. 聊天目前位于为自定义参与者配置的 [Wait](wait.md) 数据块中。
   + 自定义参与者会断开与聊天的连接，聊天会通过**断开连接的机器人**参与者分支恢复流。

1. 聊天当前位于为客户配置的 [Wait](wait.md) 数据块中，或者聊天不在**等待**数据块中。
   + 自定义参与者断开与聊天的连接，并且不会采取任何其他操作。

## 向参与者显示的消息
<a name="chat-timeouts-events"></a>

发生以下任一事件时，系统会向所有参与者显示消息：
+ 参与者处于空闲状态。
+ 空闲的参与者发送消息后，就不再处于空闲状态。
+ 连接自动断开。由于座席已断开连接，因此无法看到消息。

这些事件不会保留在记录中，也不会计费。

在联系人控制面板（CCP）中，会向座席显示其中每个事件的默认消息（使用所有支持的语言）。

下图显示了座席在 CCP 中看到的默认空闲消息示例。例如，*座席已处于空闲状态*。

![\[CCP，默认的空闲消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-timeout-message.png)


## 推荐用法
<a name="chat-timeouts-usage"></a>

要使用聊天超时功能，建议您执行以下操作：

1. 在联系流的 [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)Lambda 中嵌入号召性用语。

1. 根据您的用例，可以在开始聊天后（流程开始时）立即放置 Lambda，也可以在将联系人路由到队列之前放置 Lambda。

## 为断开连接事件自定义客户的聊天用户界面
<a name="chat-timeouts-ui"></a>

要针对断开连接事件自定义客户的聊天用户界面，请参阅 [ChatJS](https://github.com/amazon-connect/amazon-connect-chatjs) 中的以下方法：
+ `onParticipantIdle(callback)`
+ `onParticipantReturned(callback)`
+ `onAutoDisconnection(callback)`

使用这些方法注册在新事件到达时触发的回调处理程序。

# 为移动聊天启用推送通知
<a name="enable-push-notifications-for-mobile-chat"></a>

移动聊天的推送通知是通过 [AWS End User Messaging](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html) 配置的。您可以在 iOS 或 Android 设备上为移动聊天启用推送通知，这样即使客户没有主动使用您的移动应用程序，您也可以提醒他们注意新消息。您可以在与[Amazon Connect 移动设备 SDKs](https://docs.aws.amazon.com/connect/latest/adminguide/integrate-chat-with-mobile.html)、[Webview 解决方案或自定义原生解决方案](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples)集成的现有应用程序中启用此功能。

 以下步骤和资源将帮助您开始将 Amazon Connect 推送通知集成到原生移动应用程序中：

## 第 1 步：从苹果 APNs 和谷歌的 FCM 控制台获取凭证
<a name="step-1-enable-push-notifications-for-mobile-chat"></a>

要进行设置 Amazon Connect 使其能够向您的应用程序发送推送通知，您首先必须从 Apple APNs 和 Google 的 FCM 控制台获取凭据，以便[AWS 最终用户消息](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)将通知发送到您的移动应用程序。您提供的凭证取决于您使用的推送通知系统：
+  有关 Apple 推送通知服务 (APNs) 凭据，请参阅 Apple 开发者文档中的 “[从 Apple 获取加密密钥和密钥 ID](https://developer.apple.com/documentation/usernotifications/establishing-a-token-based-connection-to-apns#Obtain-an-encryption-key-and-key-ID-from-Apple)[” 和 “从 Apple 获取提供商证书](https://developer.apple.com/documentation/usernotifications/establishing-a-certificate-based-connection-to-apns#Obtain-a-provider-certificate-from-Apple)”。
+  对于可以通过 Firebase 控制台获取的 Google 的 Firebase Cloud Messaging（FCM）凭证，请参阅 [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging)。

## 步骤 2：使用 AWS 控制台创建AWS 最终用户消息服务应用程序并启用 FCM 的推送通知渠道或 APNs
<a name="step-2-enable-push-notifications-for-mobile-chat"></a>

 在您能够启用 Amazon Connect 发送推送通知之前，首先必须在 [AWS 控制台](https://console.aws.amazon.com/push-notifications/)中[创建AWS End User Messaging 应用程序并启用推送通知](https://docs.aws.amazon.com/push-notifications/latest/userguide/procedure-enable-push.html)渠道。

 按照以下说明创建应用程序并启用任何推送渠道。要完成此过程，您只需输入应用程序名称即可。您可以稍后启用或禁用任何推送渠道：

1.  打开 “ AWS 最终用户消息推送” 控制台，网址为 [https://console.aws.amazon.com/push-notifications/](https://console.aws.amazon.com/push-notifications/) 

1.  选择**创建应用程序**。

1.  在**应用程序名称**中，输入您的应用程序名称。

1.  （可选）按照此可选步骤启用 **Apple 推送通知服务（APNs）**。

   1.  对于 **Apple 推送通知服务 (APNs)**，请选择 “**启用**”。

   1.  对于**默认身份验证类型**，选择以下任一选项：

      1.  如果您选择**密钥凭证**，请提供您的 Apple 开发者帐户中的以下信息。 AWS 最终用户消息推送需要此信息来构造身份验证令牌。

         1.  **密钥 ID** – 分配给您的签名密钥的 ID。

         1.  **捆绑包标识符** – 分配给您的 iOS 应用程序的 ID。

         1.  **团队标识符** – 分配给您的 Apple 开发人员账户团队的 ID。

         1.  **身份验证密钥** – 当您创建身份验证密钥时从您的 Apple 开发人员账户下载的 .p8 文件。

      1.  如果您选择**证书凭证**，请提供以下信息：

         1.  **SSL 证书** – 您的 TLS 证书的 .p12 文件。

         1.  **证书密码** – 如果您向证书分配了密码，请在此处输入。

         1.  **证书类型** - 选择要使用的证书类型。

1.  （可选）按照此可选步骤启用 **Firebase Cloud Messaging（FCM）**。

   1.  对于 **Firebase Cloud Messaging（FCM）**，选择**启用**。

   1.  对于**默认身份验证类型**，选择**令牌凭证**，然后选择您的服务 JSON 文件。

1.  选择**创建应用程序**。

## 步骤 3：将 AWS 最终用户消息应用程序与 Amazon Connect 实例关联
<a name="step-3-enable-push-notifications-for-mobile-chat"></a>

 要在[Amazon Connect 实例](https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html)上启用推送通知，您需要通过调用 [CreateIntegrationAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html)API 将 AWS 最终用户消息应用程序与[Amazon Connect 实例](https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html)关联起来`PINPOINT_APP`[IntegrationType](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html#API_CreateIntegrationAssociation_RequestSyntax)。对于任何支持的语言，您可以使用 [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/connect/create-integration-association.html) 或 [Amazon Connect SDK](https://aws.amazon.com/developer/tools/) 调用此 API。这是 AWS 最终用户消息应用程序和 Amazon Connect 实例之间的每次集成都需要一次性入门步骤。

## 第 4 步：使用 FCM 或 APNs SDK 获取设备令牌，然后将其注册到 Amazon Connect
<a name="step-4-enable-push-notifications-for-mobile-chat"></a>

您需要获取设备令牌，并使用它向 Amazon Connect 聊天联系人注册最终用户移动设备，以便在聊天中发送新消息的推送通知。 阅读以下 FCM/APNs 开发者文档，了解如何从移动应用程序生成和获取设备令牌。
+  有关 Apple 推送通知服务 (APN)，请参阅 Apple 开发者文档 APNs中的[注册应用程序](https://developer.apple.com/documentation/usernotifications/registering-your-app-with-apns)。
+  有关 Firebase Cloud Messaging（FCM），请参阅 [FCM 注册令牌管理的最佳实践](https://firebase.google.com/docs/cloud-messaging/manage-tokens)。

 要向聊天联系注册设备，建议您执行以下操作：

1.  当移动应用程序调用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 时，将`deviceToken`和`deviceType`作为[联系人属性](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-Attributes)传递。对于 WebView 和托管通信小部件用户，请参阅[如何将联系属性传递到通信小部件](https://docs.aws.amazon.com/connect/latest/adminguide/pass-contact-attributes-chat.html#how-to-contact-attributes-chatwidget)以了解更多详细信息。

1.  在联系流的 Lambda 函数中嵌入[CreatePushNotificationRegistration](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html)操作调用。该流数据块应从用户定义的联系属性中读取 `deviceToken` 和 `deviceType`，从系统属性中读取 `initialContactId`，然后将这些值传递给 Lambda 函数。

   1.  根据您的使用案例，如果您希望最终用户立即接收推送通知，请在开始聊天后（在流开始时）立即放置 Lambda 函数，或者在将联系人路由到队列之前放置 Lambda 函数，以便他们仅在座席即将加入时才接收联系人。API 调用完成后，当座席或系统发出新消息时，设备将开始接收推送通知。默认情况下，将为所有系统和座席消息发送推送通知。  
![\[在 Amazon Connect 管理员网站流设计器中调用 Lambda 函数流数据块。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/step-4-set-up-push-notifications-for-mobile-chat-1.png)

1.  （可选）在流程的 Lambda 函数中嵌入对[DeletePushNotificationRegistration](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html)操作的调用。API 调用完成后，当座席或系统发出新消息时，设备将停止接收推送通知。

## 第 5 步：在移动应用程序上接收推送通知
<a name="step-5-enable-push-notifications-for-mobile-chat"></a>

 请查看我们的[Amazon Connect 聊天界面示例](https://github.com/amazon-connect/amazon-connect-chat-ui-examples)项目，并参考我们的 [iOS](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples/iOS-WKWebView-sample) 和 [Android](https://github.com/amazon-connect/amazon-connect-chat-ui-examples/tree/master/mobileChatExamples/android-webview-sample) 聊天网络视图示例，这些示例展示了如何集成 Amazon Connect APIs 到加入和接收推送通知。

## 监控推送通知的使用情况
<a name="monitor-your-usage-for-push-notification"></a>

 为了确保推送通知的可靠性、可用性和性能，监控推送通知的使用情况至关重要。您可以通过多种渠道跟踪这些信息：

1.  AWS 为推送通知提供全面的监控工具。 有关更多信息，请参阅[监控 AWS 最终用户消息推送](https://docs.aws.amazon.com/push-notifications/latest/userguide/monitoring-overview.html)。

1.  根据您使用的推送通知服务，您可以通过相应的控制台访问其他使用情况数据。

   1.  Firebase Cloud Messaging（FCM）：请查阅 FCM 文档中的[了解消息传送](https://firebase.google.com/docs/cloud-messaging/understand-delivery?platform=android)部分，以了解您的 FCM 使用情况。

   1.  Apple 推送通知服务 (APNs)：查看有关[使用指标查看推送通知状态的 APNs文档部分 APNs，并](https://developer.apple.com/documentation/usernotifications/viewing-the-status-of-push-notifications-using-metrics-and-apns)监控您的通知状态。

# 让客户能够在 Amazon Connect 中恢复聊天对话
<a name="chat-persistence"></a>

客户通常会开始聊天，然后离开对话，稍后再回来继续聊天。这种情况可能会在几天、几个月甚至几年的时间里多次发生。为了支持此类长时间的聊天，您可以启用持续聊天功能。

通过持续聊天，客户可以继续之前的对话，同时保留上下文、元数据和转录。客户回到聊天时无需重复之前的话，座席可以访问整个对话历史记录。

## 聊天补充
<a name="rehydration"></a>

持续聊天是通过一种称为聊天补充的过程实现的。此过程允许从以前的聊天联系中检索聊天记录并显示出来。它使客户和座席可以轻松地从他们中断的地方继续对话。

**重要**  
只有已结束的聊天会话才会被允许用于补充新的聊天会话，因为转录生成是异步进行的。  
用户应等待 30-60 秒，然后再尝试从之前结束的聊天中进行补充。

Amazon Connect 支持两种类型的补液：
+ `ENTIRE_PAST_SESSION`：开始新的聊天会话，并补充过去聊天会话中的所有聊天片段。
+ `FROM_SEGMENT`：开始新的聊天会话，并补充指定的过去的聊天片段。

有关显示这些不同补充模式的用例示例，请参阅[使用案例示例](#persistentchatscenario)。

## RelatedContactId
<a name="relatedcontactid"></a>

新联系可以通过 `RelatedContactId` 与现有联系建立关联。此新联系人包含相关联系人的[联系属性](connect-attrib-list.md)副本。

有关 `RelatedContactId` 如何在联系记录中建模的更多信息，请参阅 [Amazon Connect 联系记录的数据模型](ctr-data-model.md)。

对于持续聊天，`RelatedContactId` 描述了用于获取聊天补充的 `contactId`。

## 如何启用持续聊天
<a name="enable-persistent-chat"></a>

有两种方法可以启用持续聊天：
+ 创建新聊天时指定以前的联系 ID。有关说明，请参阅[在创建新的聊天联系时启用持续聊天](#enable-persistent-chat-creating-new-chat-contact)。
+ 将[创建持久联系人关联](create-persistent-contact-association-block.md)数据块添加到流中。有关说明，请参阅[在流中启用持续聊天](#enable-persistent-chat-within-contact-flow)。

**注意**  
您可以选择任意一种方法来保留聊天，但不能两者兼而有之。也就是说，您只能在新聊天中根据 `SourceContactID` 启用一次持续聊天。

要提供持续的聊天体验，您需要在开始新聊天或使用[创建持续联系关联](create-persistent-contact-association-block.md)流数据块时提供以前的联系 ID。此操作不会为您自动执行。建议您创建一个存储库来存储联系记录数据。通过存储库，可以检索每位客户的这些数据。

 有两种方法可以在存储库中创建条目：
+ [使用聊天消息流](https://docs.aws.amazon.com/connect/latest/adminguide/chat-message-streaming.html)在聊天结束时创建条目。
+ 检查[联系人事件](https://docs.aws.amazon.com/connect/latest/adminguide/contact-events.html#contact-events-data-model)，并使用 [AWS Lambda 功能](https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html)在存储库中创建条目。

设置存储库后，您可以检索客户以前的联系 ID，并在开始新聊天时或在[创建持续联系关联](create-persistent-contact-association-block.md)流数据块中提供该联系 ID。

此外，确保可以从实例的 Amazon S3 存储桶中检索过去的聊天记录。以下两点会导致 Amazon Connect 无法检索文字记录，也无法让聊天持续进行：
+ 您使用多个聊天文字记录存储桶。
+ 您可以更改 Amazon Connect 生成的聊天文字记录文件名。

### 在创建新的聊天联系时启用持续聊天
<a name="enable-persistent-chat-creating-new-chat-contact"></a>

要在创建新的聊天联系人时设置持续的聊天体验，请在 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 的`SourceContactId`参数`contactId`中提供前面的内容。这样就可以对以前联系人的聊天文字记录进行补充。客户和座席都可以在聊天中看到文字记录。有关示例，请参阅[使用案例示例](#persistentchatscenario)。

### 在流中启用持续聊天
<a name="enable-persistent-chat-within-contact-flow"></a>

要在流中设置持续聊天体验，请执行以下操作：

1. 创建聊天联系后，在流中添加[创建持久联系关联](create-persistent-contact-association-block.md)数据块。

1. 使用用户定义的属性指定源联系 ID。

或者，您可以使用 [CreatePersistentContactAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreatePersistentContactAssociation.html)API 提供来源联系人 ID，使当前聊天保持不变。

使用流数据块或 API 时，补充会在聊天开始后启动。补充完成后会发出补充事件通知您。

## 使用案例示例
<a name="persistentchatscenario"></a>

例如，客户开始了一个聊天会话：

1. 座席 a1 接受了聊天，客户和座席 a1 开始对话。这是在当前聊天会话中创建的第一个联系人。例如，`contactId` **C1** 可能是 11111111-aaaa-bbbb-1111-1111111111111。

1. 然后，座席 a1 将聊天转给座席 a2。这将创建另一个联系人。例如，`contactId` **C2** 可能是 2222222-aaaa-bbbb-2222-222222222222222。

1. 座席 a2 结束了聊天。

1. 客户会被转至断开连接流，进行聊天后调查，从而创建另一位联系人。例如，`contactId` **C3** 可能是 33333333-aaaa-bbbb-3333-3333333333333。

1. 显示聊天后调查，聊天会话结束。

1. 后来，客户又回来了，想要恢复过去的聊天会话。

目前，客户可能有两种不同的应用场景。以下是客户的持续聊天用例，以及您如何配置 Amazon Connect 以提供这些用例。

### 应用场景 1
<a name="persistentchatscenario-usecase1"></a>

客户想继续过去的聊天会话，但他们希望隐藏聊天后调查。您可以使用以下配置来提供这种体验。

**请求:**

```
PUT /contact/chat HTTP/1.1
Content-type: application/json
{
   "Attributes": { 
      "string" : "string" 
   },
   "ContactFlowId": "string",
   "InitialMessage": { 
      "Content": "string",
      "ContentType": "string"
   },
   "InstanceId": "string",
   ... // other chat fields
     
   // NEW Attribute for persistent chat 
   "PersistentChat" : {
       "SourceContactId":"2222222-aaaa-bbbb-2222-222222222222222" 
       "RehydrationType":"FROM_SEGMENT"
   }
}
```

#### 配置
<a name="usecase1-configuration"></a>
+ SourceContactId = 2222222-aaaa-bbbb-222222222222222（C2 的联系人 ID）
+ RehydrationType = "`FROM_SEGMENT`"

#### 预期行为
<a name="usecase1-behavior"></a>
+ 此配置会从指定的过去已结束联系人 C2（例如 2222222-aaaa-bbbb-2222-222222222222222）启动持续聊天会话。

  可以在当前的持续聊天会话中访问过去聊天会话 C2 (2222222-aaaa-bbbb-2222-222222222222222) 和 C1 (11111111-aaaa-bbbb-1111-1111111111111) 的记录。请注意，聊天片段 C3 (33333333-aaaa-bbbb-3333-3333333333333) 已从持续聊天会话中删除。
+ 在本例中，[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)响应将 C2（2222222-aaaa-bbbb-222222222222222）返回为 “”。ContinuedFromContactId
+ 这个持续聊天会话的 `RelatedContactId` 是 2222222-aaaa-bbbb-2222-222222222222222 (C2)。

### 应用场景 2
<a name="persistentchatscenario-usecase2"></a>

客户想继续过去的聊天会话，并查看过去整个参与过程的记录（他们不想隐藏聊天后调查）。您可以使用以下配置来提供这种体验。

**注意**  
 对于 `ENTIRE_PAST_SESSION` 补充类型，请将过去聊天会话的第一个联系人（初始 `contactId`）指定为 `SourceContactId` 属性。

**请求:**

```
PUT /contact/chat HTTP/1.1
Content-type: application/json
{
   "Attributes": { 
      "string" : "string" 
   },
   "ContactFlowId": "string",
   "InitialMessage": { 
      "Content": "string",
      "ContentType": "string"
   },
   "InstanceId": "string",
   ... // other chat fields
     
   // NEW Attribute for persistent chat 
   "PersistentChat":{
        "SourceContactId":"11111111-aaaa-bbbb-1111-1111111111111" // (first contactId C1)
        "RehydrationType":"ENTIRE_PAST_SESSION"
   }
}
```

#### 配置
<a name="usecase2-configuration"></a>
+ SourceContactId = `11111111-aaaa-bbbb-1111-1111111111111` (C1)
+ RehydrationType = “E`NTIRE_PAST_SESSION`”

#### 预期行为
<a name="usecase2-behavior"></a>
+ 这会从最近结束的聊天联系 (C3) 启动持续聊天会话。可以在当前的持续聊天会话中访问过去聊天会话 C3、C2 和 C1 的记录。
+ 在本例中，[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)响应以 “” 的形式返回 33333333-aaaa-bbbb-3333-33333333333 (C3)。ContinuedFromContactId
+ 这个持续聊天会话的 `RelatedContactId` 是 33333333-aaaa-bbbb-3333-3333333333333 (C3)。

**注意**  
聊天联系是可以累积的。聊天会话关联后，它们会继续进行下去。  
例如，如果将属于过去聊天会话的联系人 (`contactId` C2) 链接到过去不同聊天会话的联系人 (`contactId` C1)，那么通过链接 C2 创建的新持续聊天会话也会导致 C1 的隐式链接。新的持续聊天会话将具有以下关联：C3 → C2 → C1  
过去的 ContactID（持续聊天会话从中继续）会显示在 API 响应`ContinuedFromContactId`的字段中[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)。它也在联系人的联系记录[ContactTraceRecord](ctr-data-model.md#ctr-ContactTraceRecord)中的 RelatedContactId 字段中。

## 如何访问持续聊天的过去聊天联系记录
<a name="access-past-chat-transcript"></a>

使用现有的 `NextToken` 分页模型访问持续聊天的过去聊天记录。如果存在过去的聊天消息，则在新启动的持续聊天会话`NextToken`中对的初始呼叫会在响应中包含。[GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html) `NextToken`必须用于访问过去的聊天记录，同时`BACKWARD`在后续[GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)通话中`ScanDirection`将其设置为，以获取过去的聊天消息。

如果过去有多条聊天消息，则[GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)返回一条新的聊天记录，`NextToken`并且可以重复相同的过程来获取更多过去的聊天记录。

## 不支持：使用 `StartPosition` 和 `contactId` 筛选器进行持续聊天
<a name="startposition"></a>

Amazon Connect 不支持在[GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)呼叫时使用`StartPosition`和`contactId`过滤来自过去聊天的笔录项目属性。

# 在 Amazon Connect 中启用实时聊天消息流
<a name="chat-message-streaming"></a>

Amazon Connect Chat 提供的[APIs](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html)功能使您能够订阅聊天消息的实时流。使用这些 APIs，您可以：
+ 在创建新的聊天联系人时，实时流式传输聊天消息。
+ 扩展当前的 Amazon Connect Chat 功能，以支持与 SMS 解决方案和第三方消息应用程序的集成、启用移动推送通知以及创建分析控制面板来监控和跟踪聊天消息活动等应用场景。

**注意**  
本页介绍如何订阅 SNS 终端节点，以便在 Amazon Connect 中实时传输聊天消息。如果您正在尝试在 Amazon Connect 中为对话式 AI 互动启用消息流，请参阅[为 AI 支持的聊天启用消息流](message-streaming-ai-chat.md)。

## 消息流 APIs 的工作原理
<a name="how-chat-message-streaming-apis-work"></a>

当 [Amazon Connect 聊天联系 APIs人中发生某些事件时，就会触发 Amazon Connect 消息流](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html)。例如，当客户发送新的聊天消息时，该事件会向指定端点发送一个[有效负载](sns-payload.md)，其中包含有关刚刚发送的消息的数据。消息通过 [Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) (Amazon SNS) 发布到特定端点。

本主题将介绍如何使用 Amazon Connect 和 Amazon SNS 设置实时消息流。步骤如下：

1. 使用 Amazon SNS 控制台创建一个新的标准 SNS 主题并设置消息。

1. 调用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 启动聊天联系。

1. 调用 [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)API 启动消息流。

1. 调用 [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)API 来创建参与者的连接。

## 第 1 步：创建一个标准的 SNS 主题
<a name="step1-chat-streaming"></a>

1. 转到 Amazon SNS 控制台。

1. 在您的 AWS 账户@@ [中创建 SNS 主题](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)。在**详细信息**部分的**类型**中，选择**标准**，输入主题名称，然后选择**创建主题**。
**注意**  
当前，消息流 APIs 仅支持用于消息实时流式传输的标准 SNS。它们不支持 [Amazon SNS FIFO（先进先出）主题](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html)。

1. 创建主题后，其 Amazon 资源名称 (ARN) 会在**详细信息**部分中显示。将主题 ARN 复制到剪贴板。您将在下一步和 [第 3 步：对联系启用消息流](#step3-chat-streaming) 中使用主题 ARN。

   主题 ARM 与以下示例类似：

   ```
   arn:aws:sns:us-east-1:123456789012:MyTopic                                
   ```

1. 选择**访问策略**选项卡，选择**编辑**，然后在 SNS 主题上添加基于资源的策略，这样 Amazon Connect 就有权向其发布内容了。以下是 SNS 策略示例，您可以将其复制粘贴到 JSON 编辑器中，然后使用自己的值进行自定义：

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Principal":{
               "Service":"connect.amazonaws.com"
            },
            "Action":"sns:Publish",
            "Resource":"arn:aws:sns:us-east-1:111122223333:TopicName",
            "Condition":{
               "StringEquals":{
                   "aws:SourceAccount":"111122223333"
               },
               "ArnEquals":{
               "aws:SourceArn":"arn:aws:connect:us-east-1:111122223333:instance/InstanceId"
               }
            }
         }
      ]
   }
   ```

------
**注意**  
默认**访问策略**附带适用于 `sourceOwner` 的条件，例如：  

   ```
   "Condition": {
           "StringEquals": {
             "AWS:SourceOwner": "921772911154"
           }
         }
   ```
请务必将其移除并替换为 `SourceAccount`，例如：  

   ```
   "Condition":{
               "StringEquals":{
                  "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID"
               },
               "ArnEquals":{
                  "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN"
               }
            }
   ```
这样可以防止出现[跨服务混淆座席](cross-service-confused-deputy-prevention.md)的问题。

1. 如果您要在 SNS 上使用服务器端加密，请确认您已在 KMS key上启用了 `connect.amazonaws.com` 权限。以下是策略示例：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "key-consolepolicy-3",
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Sid": "Allow access for Key Administrators",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": [
                   "kms:Create*",
                   "kms:Describe*",
                   "kms:Enable*",
                   "kms:List*",
                   "kms:Put*",
                   "kms:Update*",
                   "kms:Revoke*",
                   "kms:Disable*",
                   "kms:Get*",
                   "kms:Delete*",
                   "kms:TagResource",
                   "kms:UntagResource",
                   "kms:ScheduleKeyDeletion",
                   "kms:CancelKeyDeletion"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## 第 2 步：启用聊天联系
<a name="step2-chat-streaming"></a>

1. 调用 Amazon Connect [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 发起聊天联系。

   有关如何创建用于调用 Amazon Connect 的软件开发工具包客户端的信息 APIs，请参阅以下主题：
   + [班级 AmazonConnectClientBuilder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/connect/AmazonConnectClientBuilder.html) 
   + [创建服务客户端](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html) 

1. 跟踪[StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)响应，因为这些响应属性用于呼叫启用直播 APIs 所需的其他聊天。`ContactId` `ParticipantToken`这将在接下来的步骤中进行说明。

## 第 3 步：对联系启用消息流
<a name="step3-chat-streaming"></a>
+ 致电[StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)以启用对您的 SNS 主题的实时消息流式传输。
  + **限制**：每位联系人最多可以订阅两个 SNS 主题。
  + 致电时 [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)，您需要提供 SNS 主题的 Amazon 资源名称 (ARN)（请参阅）。[第 1 步：创建一个标准的 SNS 主题](#step1-chat-streaming)

    一个 SNS 主题 ARN 可以跨 AWS 账户多个使用，但它必须与您的 Amazon Connect 实例位于同一个区域。例如，如果您的主题 ARN 位于 **us-east-1**，您的 Amazon Connect 实例也必须位于 **us-east-1**。
  + 对于在直播端点上未收到的初始聊天消息，您可以调用 [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)API 来接收初始消息。

## 第 4 步：创建参与者连接
<a name="step4-chat-streaming"></a>
+ [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)使用传递`ConnectParticipant`为 true 的属性进行调用。
  + 您必须在创建聊天[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)后的五分钟内致电。
  + 只有在[第 2 步：启用聊天联系](#step2-chat-streaming)您启用了直播功能[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)且来电者参与者启用时，才可以在`ConnectParticipant`设置为 true 的情况下进行通话`Customer`。
  + 如果您已经使用 `WEBSOCKET` 成功连接到聊天联系，则此步骤（创建参与者连接）为可选。

## 后续步骤
<a name="nextsteps-chat-streaming"></a>

你已经准备好处理消息流 APIs了。

1. 要验证它是否正常运行，请检查消息是否已发布到您创建的 SNS 主题。您可以使用 Amazon CloudWatch 指标来做到这一点。有关说明，请参阅使用[监控 Amazon SNS 主题](https://docs.aws.amazon.com/sns/latest/dg/sns-monitoring-using-cloudwatch.html)。 CloudWatch

1. 由于 SNS 的[保留期有限](https://aws.amazon.com/blogs//aws/sns-ttl-control/)，建议您设置 [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/)、[Amazon Kinesis](https://aws.amazon.com/kinesis/) 或其他服务来保留消息。

1. 使用[StopContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContactStreaming.html)是可选的，如果聊天通过联系流[断开连接](disconnect-hang-up.md)，或者客户断开了聊天，则不需要使用。不过，`StopContactStreaming` 提供了即使聊天正在进行，也能中止 SNS 主题消息流的选项。

# 在 Amazon Connect 中启用消息流后，使用 Amazon SNS 有效载荷
<a name="sns-payload"></a>

成功启用消息流后，您可能需要筛选消息，以便将其发送给目标参与者：座席、客户或所有人。

要按参与者进行筛选，请阅读 SNS 标题的特定属性 `MessageVisibility`，以确定该消息是仅限客户、仅限座席还是发送给所有人。
+ 仅发送给客户：对于面向客户的所有代码，客户端需要筛选出发送给客户的消息，并建立以下逻辑将消息转发给他们。

  ```
  if ( ( MessageVisibility == CUSTOMER || MessageVisibility == ALL)  && ParticipantRole != CUSTOMER )
  ```
+ 仅发送给座席：

  ```
  if ( ( MessageVisibility == AGENT || MessageVisibility == ALL)  && ParticipantRole != AGENT )
  ```

您还可以通过构建自定义[订阅筛选策略](https://docs.aws.amazon.com/sns/latest/dg/sns-subscription-filter-policies.html)来利用 Amazon SNS 中的筛选功能。这会将消息筛选逻辑从 SNS 主题订阅者转移到 SNS 服务本身。

## 有效负载中的消息属性
<a name="sns-message-attributes"></a>

以下是对 Amazon SNS 有效负载中每个消息属性的说明：
+ `InitialContactId`：聊天的初始联系 ID。
+ `ContactId`：聊天的当前联系 ID。如果聊天或 queue-to-queue联系流程中有新的代理，则`InitialContactId`和`ContactId`可能会有所不同。
+ `ParticipantRole`：发送消息的参与者。
+ `InstanceId`：Amazon Connect 实例 ID。
+ `AccountId`: AWS 账户 ID。
+ `Type`：可能的值：`EVENT`、`MESSAGE`。
+ `ContentType`：可能的值：`application/vnd.amazonaws.connect.event.typing`、`application/vnd.amazonaws.connect.event.participant.joined`、`application/vnd.amazonaws.connect.event.participant.left`、`application/vnd.amazonaws.connect.event.transfer.succeeded`、`application/vnd.amazonaws.connect.event.transfer.failed`、`application/vnd.amazonaws.connect.message.interactive`、`application/vnd.amazonaws.connect.event.chat.ended` 等。
+ `MessageVisibility`：可能的值：`AGENT`、`CUSTOMER`、`ALL`。

## SNS 有效负载示例
<a name="sns-message-payload"></a>

```
{
  "Type" : "Notification",
  "MessageId" : "ccccccccc-cccc-cccc-cccc-ccccccccccccc",
  "TopicArn" : "arn:aws:sns:us-west-2:009969138378:connector-svc-test",
  "Message" :  "{\"AbsoluteTime\":\"2021-09-08T13:28:24.656Z\",\"Content\":\"help\",\"ContentType\":\"text/plain\",\"Id\":\"333333333-be0d-4a44-889d-d2a86fc06f0c\",\"Type\":\"MESSAGE\",\"ParticipantId\":\"bbbbbbbb-c562-4d95-b76c-dcbca8b4b5f7\",\"DisplayName\":\"Jane\",\"ParticipantRole\":\"CUSTOMER\",\"InitialContactId\":\"33333333-abc5-46db-9ad5-d772559ab556\",\"ContactId\":\"33333333-abc5-46db-9ad5-d772559ab556\"}",
  "Timestamp" : "2021-09-08T13:28:24.860Z",
  "SignatureVersion" : "1",
  "Signature" : "examplegggggg/1tEBYdiVDgJgBoJUniUFcArLFGfg5JCvpOr/v6LPCHiD7A0BWy8+ZOnGTmOjBMn80U9jSzYhKbHDbQHaNYTo9sRyQA31JtHHiIseQeMfTDpcaAXqfs8hdIXq4XZaJYqDFqosfbvh56VPh5QgmeHTltTc7eOZBUwnt/177eOTLTt2yB0ItMV3NAYuE1Tdxya1lLYZQUIMxETTVcRAZkDIu8TbRZC9a00q2RQVjXhDaU3k+tL+kk85syW/2ryjjkDYoUb+dyRGkqMy4aKA22UpfidOtdAZ/GGtXaXSKBqazZTEUuSEzt0duLtFntQiYJanU05gtDig==",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-11111111111111111111111111111111.pem",
  "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:000000000000:connector-svc-test:22222222-aaaa-bbbb-cccc-333333333333",
  "MessageAttributes" : {
    "InitialContactId" : {"Type":"String","Value":"33333333-abc5-46db-9ad5-d772559ab556"},
    "MessageVisibility" : {"Type":"String","Value":"ALL"},
    "Type" : {"Type":"String","Value":"MESSAGE"},
    "AccountId" : {"Type":"String","Value":"999999999999"},
    "ContentType" : {"Type":"String","Value":"text/plain"},
    "InstanceId" : {"Type":"String","Value":"dddddddd-b64e-40c5-921b-109fd92499ae"},
    "ContactId" : {"Type":"String","Value":"33333333-abc5-46db-9ad5-d772559ab556"},
    "ParticipantRole" : {"Type":"String","Value":"CUSTOMER"}
  }
}
```

# 排除 Amazon Connect 中消息流的问题
<a name="troubleshoot-message-streaming"></a>

## 消息未发布到 SNS
<a name="message-not-published-to-sns"></a>

发生这种情况时，建议您检查 [第 1 步：创建一个标准的 SNS 主题](chat-message-streaming.md#step1-chat-streaming) 中的信息：
+ 确保您使用的是标准 SNS，而不是 [Amazon SNS FIFO（先进先出）](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html)。当前，消息流仅 APIs 支持标准 SNS 来实现消息的实时流式传输。
+ 确保在您的账户中正确应用了基于 SNS 资源的权限。
  + 如果启用了服务器端加密，则需要向同一个 Amazon Connect 服务主体授予加密和解密权限。

## 流式传输无法启动
<a name="contact-flow-not-starting"></a>

如果您使用消息流 APIs 来代替 websockets，请发送连接确认事件；请参阅。[第 4 步：创建参与者连接](chat-message-streaming.md#step4-chat-streaming)这等同于连接到 Websocket。只有在连接确认事件发生后，流式传输才会开始。

[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)之后拨打[StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)以标记`Customer`为已连接；请参阅[第 3 步：对联系启用消息流](chat-message-streaming.md#step3-chat-streaming)。这样可以确保在您确认客户已准备好接收消息后发送消息。

## 问题仍未解决？
<a name="other-issues-message-streaming"></a>

如果在尝试了之前的解决方案后仍然存在消息流问题，请联系 支持 寻求帮助。

Amazon Connect 管理员可以选择以下选项之一联系支持人员：
+ 如果您有 AWS 支持帐户，请前往[支持中心](https://console.aws.amazon.com/support/home)并提交工单。
+ 否则，请打开 [AWS 管理控制台](https://console.aws.amazon.com/) 并依次选择**Amazon Connect**、**支持**、**创建案例**。

提供以下信息会很有帮助：
+ 您的联络中心实例 ID/ARN。要查找您的实例 ARN，请参阅 [找到您的 Amazon Connect 实例 ID 或 ARN](find-instance-arn.md)。
+ 您所在区域。
+ 问题的详细说明。

# 通过集成自定义参与者，在 Amazon Connect 中自定义聊天流体验
<a name="chat-customize-flow"></a>

您可以将其他解决方案（例如自动程序）与 Amazon Connect 聊天集成，以创建自定义的聊天流体验。

以下概述了如何自定义聊天流体验。聊天对话开始后，为每个聊天分段实施这些步骤。我们建议在聊天流程 APIs 中添加一个[AWS Lambda 函数](invoke-lambda-function-block.md)区块来调用。

**重要**  
在 [AWS Lambda 函数](invoke-lambda-function-block.md) 数据块之前添加一个 [播放提示](play.md) 数据块。只有当 **Invoke AWS Lambda** 区块是入站聊天流程中的第一个区块时，才需要这样做。

1.  [启用实时聊天消息流](chat-message-streaming.md)。

1. 调用 Amazon Connect [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)API 为聊天联系人添加自定义参与者 (`ParticipantRole`=`CUSTOM_BOT`)。

   1. 有关如何创建用于调用 Amazon Connect 的软件开发工具包客户端的信息 APIs，请参阅以下主题：
      + [班级 AmazonConnectClientBuilder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/connect/AmazonConnectClientBuilder.html)
      + [创建服务客户端](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html)

   1. 保留从`ParticipantToken`中获得的[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)来电[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)。 `CreateParticipantConnection`返回 a`ConnectionToken`，您可以使用它来呼叫其他 Amazon Connect 参与者 APIs。

      致电[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)为自定义参与者创建连接时：
      + 将 `ConnectParticipant` 设置为 `True`，可将自定义参与者标记为已连接，以进行消息流式传输。
      + 通过致电后续`Type``CONNECTION_CREDENTIALS`的 Amazon Connect 参与者服务 APIs。
      + 应在调用 `CreateParticipant` 后的 15 秒内调用 `CreateParticipantConnection`。

1. 将参与者添加到联系人后，他们可以使用 Amazon Connect 参与者服务与客户交换消息 APIs。

1. 要断开参与者的连接，请调用 [ DisconnectParticipant](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_DisconnectParticipant.html)API。

**注意**  
如果联系人已有座席或 Amazon Lex 自动程序，则无法将自定义参与者添加到聊天中。
当座席或 Amazon Lex 自动程序加入联系人时，自定义参与者将断开连接。
一个联系人只能有一个自定义参与者。
不允许自定义参与者访问客户可能上传的附件。

建议配置自定义参与者可以与联系人聊天的时长：
+ 为 `ParticipantRole` = `CUSTOM_BOT` 设置 [Wait](wait.md) 数据块上的 **Timeout** 属性。
+ 如果自定义自动程序参与者在超时之前没有断开连接，该联系人将被路由到**已超时**分支。这样，您就可以决定接下来运行哪个数据块来解决客户的查询了。

**注意**  
如果联系人被路由到**已超时**分支，他们就不会断开与该联系人的连接。您必须调用 [ DisconnectParticipant](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_DisconnectParticipant.html)API 才能断开参与者的连接。

## 为加入自定义参与者的客户激活计时器
<a name="integrate-bot-extension-client"></a>

您可以为加入自定义参与者（例如自定义机器人）的客户激活计时器。这样，您就能检测到客户何时停止回复，从而终止机器人对话，并执行流中的下一步。通过终止空闲参与者，您可以减少客户与自定义参与者之间无响应的未完成聊天次数。

执行以下步骤集成空闲参与者自定义机器人扩展，并可选择设置自定义计时器值。这些步骤假定您已经在聊天中使用了自定义参与者功能。

1. 在自定义参与者加入聊天之前，请为客户调用 [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)API。

   1. 计时器仅为客户激活。自定义参与者没有空闲参与者或自动断开连接的计时器。

   1. 您可以选择调用 API 的方法。

   1. 在此步骤中配置的计时器值将在聊天过程中一直有效。如果您要为**客户和座席互动**设置不同的计时器值，请参阅步骤 2。

   1. 如果您已经以这种方式设置了客户端，则无需执行任何其他操作即可集成自定义参与者。

1. （可选）要配置在**客户和座席互动**期间与**客户和自定义参与者互动**期间不同的计时器和计时器值：
   + 在代理加入聊天之前，请使用所需的配置再次调用 [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)API。

有关聊天时间的更多信息，请参阅 [为聊天参与者设置聊天超时](setup-chat-timeouts.md)。

### 启动计时器
<a name="starting-timers"></a>

自定义参与者使用 [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)API 与客户建立连接后，他们将开始计时器。

### 当不兼容的参与者加入自定义参与者的聊天时会发生什么情况
<a name="non-compatible-participants"></a>

以下是座席或 Lex 机器人参与者加入与自定义参与者的聊天并且他们是不兼容的参与者时会发生的情况：

1. 自定义参与者将自动断开聊天连接。

1. 所有先前处于活动状态的计时器都将终止，并为连接的参与者创建新的计时器（如果配置了计时器）。

1. 每个新的计时器也会更新最新配置（如果需要）。这实际上是为新的聊天活跃参与者建立一个新的“闲置会话”。

### 与等待区块计时器的互动
<a name="interaction-wait-block-timer"></a>

闲置计时器不会影响 [Wait](wait.md) 区块的运行。

聊天联系进入**等待**区块时启动的**等待**区块计时器会继续运行。如果**等待**区块计时器过期，则无论是否有闲置参与者计时器处于活动状态，联系都会恢复流，并顺着**时间已过期**分支向下传送。

## 问题排查技巧
<a name="ts-chat-custom-bot"></a>
+ `ResourceNotFoundException`: 

  如果您在调用 `CreateParticipantConnection` API 时收到自定义参与者的 `ResourceNotFoundException`，请检查是否在 `CreateParticipant` API 调用后 15 秒内调用了 `CreateParticipantConnection` API。
+ `AccessDeniedException`: 

  如果您收到 `AccessDeniedException` 错误并且参与者角色为 CUSTOM\$1BOT，则表示机器人正在尝试访问附件。不允许 CUSTOM\$1BOT 的参与者角色访问客户上传的附件。

# 在 Amazon Connect 中为聊天联系设置客户身份验证
<a name="customer-auth"></a>

您可以在聊天中提示客户登录并进行身份验证。例如，与聊天机器人互动的未通过身份验证的客户在被路由到座席之前，系统会提示他们先登录。

此内置功能利用了 Amazon Connect Customer Profiles 和 [Amazon Cognito](https://aws.amazon.com/cognito/)。使用 Customer Profiles 不会产生额外费用，如果您在设置过程中选择了默认设置，则已在您的 Amazon Connect 实例中[启用](enable-customer-profiles.md)了 Customer Profiles。有关 Amazon Cognito 定价的信息，请参阅 [Amazon Cognito 定价](https://aws.amazon.com/cognito/pricing/)页面。

为聊天设置客户身份验证：

1. 为您的 Amazon Connect 实例[启用客户身份验证](enable-connect-managed-auth.md#enable-customer-auth)。

1. [启用身份验证消息](enable-connect-managed-auth.md#enable-auth-message).

1. 将 [验证客户身份](authenticate-customer.md) 数据块添加到流中。

如果您的联络中心正在使用 Amazon Connect 外部的现有身份验证解决方案，请参阅[聊天前身份验证](pre-chat-auth.md)。

# 为托管的通信小部件启用客户身份验证
<a name="enable-connect-managed-auth"></a>

本主题将介绍如果您使用 Amazon Connect 托管的聊天通信小部件，如何设置身份验证。您为 Amazon Connect 实例启用了客户身份验证，然后启用了一条身份验证消息，该消息显示一个链接，点击后会弹出 Amazon Cognito 托管 UI。

## 所需的 IAM 策略
<a name="auth-page-iam-policies"></a>

如果您使用自定义 IAM 策略来管理对 Amazon Connect 控制台的访问权限，请参阅[自定义 IAM 策略所需的权限](security-iam-amazon-connect-permissions.md)以获取访问**客户身份验证**页面所需权限的列表。

## 在您的 Amazon Connect 实例中启用客户身份验证
<a name="enable-customer-auth"></a>

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. 在左侧导航菜单上，选择**应用程序**、**客户身份验证**。如果您没有看到此选项，则该选项可能在您所在的 AWS 地区不可用。有关客户身份验证可用区域的信息，请参见[按区域显示的客户身份验证可用性](regions.md#customerauthentication_region)。

1. 在**客户身份验证**页面上，选择**在 Amazon Cognito 中创建用户池**。这样可打开 Amazon Cognito 控制台。

1. 使用您的身份提供商创建新的用户池。有关说明，请参阅《Amazon Cognito 开发人员指南》**中的[用户池入门](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html)。
**注意**  
当您配置 Amazon Cognito 应用程序客户端时，必须选择**不生成客户端密钥**。只支持不带客户端密钥的 Amazon Cognito 应用程序客户端。有关更多信息，请参阅《Amazon Cognito Developer Guide》**中的 [Application-specific settings with app clients](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html)。

1. 在创建 Amazon Cognito 用户池后，返回到**客户身份验证**页面，然后选择**关联用户池**。

1. 在**用户池**部分，从下拉菜单中选择您创建的用户池，然后选择**确认**。

   这样会将用户池关联到您的 Amazon Connect 实例。它使[验证客户身份](authenticate-customer.md)流数据块能够访问用户池。

1. 继续执行下一步：[启用身份验证消息](#enable-auth-message)。

## 启用身份验证消息
<a name="enable-auth-message"></a>

要启用身份验证消息，请在代码片段末尾添加身份验证参数片段变量。有关添加片段变量的信息，请参阅[Amazon Connect 中支持可自定义的小部件片段字段](supported-snippet-fields.md)。以下代码是您需要添加的身份验证参数片段的示例。

```
amazon_connect('authenticationParameters', { 
    redirectUri: 'your_redirect_url', // https://example.com 
    identityProvider: 'your_identity_provider_name' //optional
 });
```

其中：
+ `redirectUri` 是您在 IdP（身份提供商）和 Amazon Cognito 中配置的重定向 URI。这是您的客户登录后自动定向之处。在此页面中，您可以检查网址参数，如果有代码和状态，则可以使用这些值调用 [UpdateParticipantAuthentication](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantAuthentication.html)API。API 调用完成后，关闭弹出窗口；客户将返回聊天体验。
+ `identityProvider` 是您在 Amazon Cognito 中配置的身份提供商名称。该字段是可选的。如果提供了一个值，则登录链接会自动将客户引导到身份提供商的登录页面，而不是 Amazon Cognito 管理的登录页面，客户在该页面上需要选择用于登录的身份提供商。

 当流到达[验证客户身份](authenticate-customer.md)数据块时，您可以注册回调并将状态存储在本地，以便在重定向 URI 中进行验证，如下面的示例代码片段中所示：

```
amazon_connect('registerCallback', {
       'AUTHENTICATION_INITIATED' : (eventName, data) => {
            console.log(data.state)
        },
      });
```

启用客户身份验证后，在流中添加一个[验证客户身份](authenticate-customer.md)数据块。此数据块可在流中对聊天联系进行身份验证，并根据身份验证结果将他们引导到特定路径。

# 使用 Amazon Connec StartChatContact t API 进行聊天前身份验证
<a name="pre-chat-auth"></a>

在开始聊天之前在您的网站或移动应用程序中进行身份验证的客户可以在聊天启动时被识别为已通过身份验证。你可以使用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 来做到这一点。

经过身份验证的客户开始聊天后，使用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 中的参数设置他们的状态，如以下代码片段所示：

```
"SegmentAttributes": {
    "connect:CustomerAuthentication" : { 
        "ValueMap": {
            "Status": {
                "ValueString": "AUTHENTICATED"
            }
        }
    },
    "CustomerId": "12345"
```

`CustomerId` 是用于识别客户的可选字段。它可以是 Amazon Connect Customer Profiles ID，也可以是来自外部系统（例如 CRM）的自定义标识符。

# 为 AI 支持的聊天启用消息流
<a name="message-streaming-ai-chat"></a>

Amazon Connect 支持用于人工智能驱动的聊天互动的消息流。来自 AI 代理的响应在生成时会逐渐出现，从而改善了对话期间的客户体验。

以下是集成选项以及每个选项的功能：
+ Amazon Connect 座席
  + 消除了 Amazon Lex 的超时限制
  + 在处理过程中提供配送消息（例如 “稍等片刻，我正在审核您的账户”）
  + 使用渐进式文本（渐进式文本气泡）显示部分回复
+ 通过 Amazon Lex 或 Lambda 的第三方机器人
  + 消除了 Amazon Lex 的超时限制
  + 标准机器人响应行为

从 2025 年 12 月开始创建的实例将自动选择使用此功能。对于现有实例，您必须使用 API 或通过控制台手动启用消息流。

## 使用 API 启用消息流
<a name="message-streaming-enable-api"></a>

使用 [UpdateInstanceAttribute](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateInstanceAttribute.html)API 启用消息流式传输。将 `MESSAGE_STREAMING` 属性设置为 `true`。

```
aws connect update-instance-attribute \
  --instance-id your-instance-id \
  --attribute-type MESSAGE_STREAMING \
  --value true
```

要选择退出，请将属性设置为`false`。

## 使用控制台启用消息流
<a name="message-streaming-enable-console"></a>

对于新创建的实例，消息流默认处于启用状态。

对于现有实例：

1. 打开 Amazon Connect 控制台并选择您的实例。

1. 在导航窗格中，选择 Fl **ow** s > **Amazon Lex 机器人**。

1. 在 **Lex 机器人配置**下，选择在 **Amazon Connect 中启用消息流**。

**注意**  
当您使用控制台启用消息流时，所需的`lex:RecognizeMessageAsync`权限会自动添加到基于机器人别名资源的策略中。使用 API 时，必须手动添加此权限。

![\[在 Amazon Connect 控制台中启用消息流选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/message-streaming-ai-chat-enablement.png)


## 更新 Lex 机器人权限
<a name="message-streaming-lex-permissions"></a>

启用消息流后，Amazon Connect 需要获得调用 Amazon Lex API 的权限：

```
lex:RecognizeMessageAsync
```

您必须为 Amazon Connect 实例使用的每个 Amazon Lex 机器人别名更新基于资源的策略。

### 何时更新机器人基于资源的政策
<a name="message-streaming-when-to-update"></a>
+ **新实例** — 默认情况下，任何新关联的 Amazon Lex 机器人别名都将包含在其别名策略`lex:RecognizeMessageAsync`中。
+ **包含现有机器人的现有实**例 — 如果该实例以前使用过 Amazon Lex，并且您现在启用了消息流，则必须更新所有关联的 Amazon Lex 机器人别名的基于资源的策略以包含新的权限。

### Lex bot 别名基于资源的策略的示例片段
<a name="message-streaming-rbp-example"></a>

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "connect-us-west-2-MYINSTANCEID",
      "Effect": "Allow",
      "Principal": {
        "Service": "connect.amazonaws.com"
      },
      "Action": [
        "lex:RecognizeMessageAsync",
        "lex:RecognizeText",
        "lex:StartConversation
      ],
      "Resource": "arn:aws:lex:us-west-2:123456789012:bot-alias/MYBOT/MYBOTALIAS",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "123456789012"
        },
        "ArnEquals": {
          "AWS:SourceArn": "arn:aws:connect:us-west-2:123456789012:instance/MYINSTANCEID"
        }
      }
    }
  ]
}
```

您可以通过调用 Amazon Lex [UpdateResourcePolicy](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateResourcePolicy.html)API 来更新基于资源的 Amazon Lex 机器人别名策略来添加此权限，使其包含针对 Amazon Connect 实例 ARN 资源的`lex:RecognizeMessageAsync`操作。

**重要**  
此功能目前不支持分支回同一个[Amazon Connect 流数据块：获取客户输入](get-customer-input.md)流程块，也不支持在另一个 “**获取客户输入**” 区块中重复使用具有相同别名的 Amazon Lex 机器人。取而代之的是，使用不同的 Amazon Lex 机器人别名创建一个新的 “**获取客户意见**” 区块。

## 超时限制
<a name="message-streaming-timeout-limits"></a>

以下超时限制适用于聊天体验：
+ **标准聊天体验**-超时 10 秒
+ **聊天直播** — 60 秒超时

# 启用动态敏感数据编辑和消息处理
<a name="redaction-message-processing"></a>

Amazon Connect 支持消息处理，即在聊天消息到达任何参与者之前对其进行拦截和修改。该功能支持自动编辑敏感数据和自定义消息处理，从而帮助企业保持合规性和安全标准。

以下是处理选项以及每个选项的功能：
+ 内置敏感数据修改
  + 自动检测并删除信用卡号、社会保险号和其他 PII
  + 支持多种语言，包括英语、法语、葡萄牙语、德语、意大利语和西班牙语变体。有关 Contact Lens 加密功能支持的语言列表，请参阅[Amazon Connect 功能支持的语言](supported-languages.md)。
  + 选择对选定的或所有敏感数据实体进行密文
  + 替换为通用占位符 ([PII]) 或实体特定的占位符 ([姓名]、[CREDIT\$1CARD])
+ 自定义消息处理器（通过 Lambda）。有关更多信息，请参阅[什么是 Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)？ 在 AWS *Lambda 开发者指南中。*
  + 整合第三方语言翻译服务
  + 应用亵渎内容过滤
  + 使用 AI/LLM 服务转换消息
  + 实施特定于业务的消息修改

要配置消息处理，请在**设置记录和分析行为**块中定义密文规则。有关更多信息，请参阅 [启用对敏感数据的加密](enable-analytics.md#enable-redaction)。您也可以指定 Lambda 函数进行自定义处理。

您的自定义处理器 Lambda 将采用以下格式的输入 JSON：

```
{
  "version": "1.0",
  "instanceId": "string",
  "associatedResourceArn": "string",
  "chatContent": {
    "absoluteTime": "string",
    "content": "string",
    "contentType": "string",
    "id": "string",
    "participantId": "string",
    "displayName": "string",
    "participantRole": "string",
    "initialContactId": "string",
    "contactId": "string"
  }
}
```

并按以下格式输出一个 JSON：

```
{
  "status": "string", // "PROCESSED"|"APPROVED"|"FAILED"|"REJECTED"
  "result": {
    "processedChatContent": {
      "content": "string",
      "contentType": "string" // "text/plain"|"text/markdown"|"application/json"
    }
  }
}
```

当向聊天参与者发布时，经过处理的聊天内容将取代原始消息。

# 在 Amazon Connect 中设置短信消息
<a name="setup-sms-messaging"></a>

您可以启用短信功能， Amazon Connect 这样您的客户就可以通过移动设备向您发送短信。借助 Amazon Lex，您可以自动响应客户的问题，从而为座席节省宝贵的时间和精力。

本主题介绍如何设置和测试 SMS 消息 Amazon Connect。您可以使用 AWS End User Messaging SMS 获取支持短信功能的电话号码，对该号码启用双向短信，然后将其导入 Amazon Connect。

不支持使用一个同时用于语音和短信的电话号码。

**Topics**
+ [步骤 1：申请 AWS End User Messaging SMS的号码](#get-sms-number)
+ [第 2 步：为电话号码启用双向短信](#enable-twoway-sms)
+ [第 3 步：更新短信联系分支的流程](#branch-on-sms-contacts)
+ [第 4 步：测试短信的发送和接收](#test-sms)
+ [步骤 5：投入生产的先决条件](#verify-sms-config)
+ [客户没有收到短信？](#ts-sms-config)
+ [后续步骤](#sms-nextsteps)

## 第 1 步：在中申请号码 AWS End User Messaging SMS
<a name="get-sms-number"></a>

**重要**  
有些国家/地区要求注册电话号码才能在该国家/地区使用。提交注册请求后，可能需要长达 15 个工作日才能处理该请求。强烈建议您尽早开始此过程。有关注册的更多信息，请参阅[注册](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html)。  
还强烈建议您在申请号码之前查看[请求 SMS 号码的最佳实践](sms-number.md#bp-request-sms-number)。

有关使用 CLI 执行此步骤的说明，请参阅*《AWS End User Messaging SMS 用户指南》*中的[申请电话号码](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html)。

1. 打开 AWS SMS 控制台，网址为[https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/)。

1. 在导航窗格中的**配置**下，选择**电话号码**，然后选择**请求发起人**。

1. 在**选择国家/地区**页面上，您必须从下拉列表中选择要向其发送该消息的**消息目的地国家/地区**。选择**下一步**。

1. 在**消息收发使用案例**部分，执行以下操作：
   + 在**号码功能**下，根据您的要求选择**短信**或**语音**。
**重要**  
购买电话号码后，不能更改短信和语音功能。
     + **短信** - 选择是否需要短信功能。
     + **语音(文字转音频)** - 选择是否需要语音功能。
   + 在**每月估计的每月短信量 - 可选**下，选择您每月将发送的预估短信数量。
   + 在**公司总部 - 可选**中，请选择以下选项之一：
     + **本地** - 如果您的公司总部与将接收短信的客户位于同一个国家/地区，请选择此选项。例如，如果您的总部位于美国，而接收消息的用户也在美国，则可以选择此选项。
     + **国际** - 如果您的公司总部与将接收短信的客户不在同一个国家/地区，请选择此选项。
   + 对于**双向消息收发**，如果您需要双向发送消息，请选择**是**。

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

1. 在**选择发起人类型**下，选择一种推荐的电话号码类型或一种可用的号码类型。可用选项基于您在前面步骤中填写的用例信息。
   + 如果您选择 10DLC 并且已注册了活动，则可以从**关联到已注册的活动**中选择该活动。
   + 如果您想要的号码类型不可用，则可以选择**上一步**返回并修改您的用例。另请查看[支持的国家和地区（短信渠道）](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html)，确保目标国家/地区支持您所需的发起人类型。
   + 如果您想申请短代码或长代码，则需要使用开箱 支持。有关更多信息，请参阅 [Requesting short codes for SMS messaging with Amazon Pinpoint SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-short-code.html) 和 [Requesting dedicated long codes for SMS messaging with Amazon Pinpoint SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-long-code.html)。

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

1. 在**查看和请求**中，您可以在提交请求之前对其进行验证和编辑。选择**请求**。

1. 根据您申请的电话号码类型，可能会出现**需要注册**窗口。您的电话号码已与此注册关联，在注册获得批准之前，无法发送消息。有关注册要求的更多信息，请参阅 [Registrations](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html)。

   1. 对于**注册表单名称**，请输入一个友好名称。

   1. 选择**开始注册**以完成电话号码注册，或者选择**稍后注册**。
**重要**  
在您的注册获得批准之前，您的电话号码无法发送消息。  
 无论注册状态如何，您仍然需要支付该电话号码的每月定期租赁费。

## 第 2 步：为电话号码启用双向短信
<a name="enable-twoway-sms"></a>

成功从中获取电话号码后 AWS End User Messaging SMS，可以在该电话号码上启用双向短信，并以此 Amazon Connect 作为留言目的地。您可以为单个电话号码启用双向短信。当您的一位客户向您的电话号码发送消息时，消息正文将发送到 Amazon Connect。

有关使用 CLI 执行此步骤的说明，请参阅*《AWS End User Messaging SMS 用户指南》*中的[双向短信消息](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-two-way-sms.html)。

**注意**  
适用于双向短信的 Amazon Connect 在中列出的 AWS 区域中可用[消息收发集成](regions.md#messaging-integrations_region)。

1. 打开 AWS SMS 控制台，网址为[https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/)。

1. 在导航窗格中的**配置**下，选择**电话号码**。

1. 在**电话号码**页面上，选择所需电话号码。

1. 在**双向短信**选项卡上，选择**编辑设置**按钮。

1. 在**编辑设置**页面上，选择**启用双向消息**，如下图所示。  
![\[AWS End User Messaging SMS 编辑设置页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/sms-edit-settings.png)

1. 对于**目标类型**，选择 **Amazon Connect**。

1. 在**双向渠道角色**中，选择**选择现有 IAM 角色**。

1. 在**现有 IAM 角色**下拉列表中，选择现有 IAM 角色作为消息目的地。例如 IAM 策略，请参阅*《AWS End User Messaging SMS 用户指南》*中的 [Amazon Connect 的 IAM 策略](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-two-way-sms.html#phone-number-two-way-connect-iam-policy)。
**提示**  
如果您无法创建策略或角色，请仔细检查您的 Amazon Connect 实例是否位于[ Amazon Connect SMS 支持的区域](regions.md#messaging-integrations_region)。

1. 选择**保存更改**。

1. 在**将电话号码导入 Amazon Connect** 窗口中：

   1. 在**传入消息目的地**下拉列表中，选择将接收传入消息的 Amazon Connect 实例。  
![\[AWS End User Messaging SMS 导入电话号码页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/sms-import-phone-number.png)

   1. 选择**导入电话号码**。

1. 成功将号码导入后 Amazon Connect，您可以在 Amazon Connect 管理员网站中查看：在左侧导航栏中，选择**频道**、**电话号码**。SMS 号码显示在**电话号码**页面上，如下图所示。  
![\[Amazon Connect 管理员网站，电话号码页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/golden-sms-channel.png)

## 第 3 步：更新短信联系分支的流程
<a name="branch-on-sms-contacts"></a>

如果您想在联系人使用短信时对现有流进行分支，请在您的流中添加一个[检查联系属性](check-contact-attributes.md)数据块。此数据块允许您向特定队列发送短信联系或执行其他操作。

1. 在流中添加一个[检查联系属性](check-contact-attributes.md)数据块，然后打开**属性**页面。

1. 在**要检查的属性**部分，将**命名空间**设置为**分段属性**，将**键**设置为**子类型**。

   有关区段属性的更多信息，请参阅*ContactTraceRecord*主题[SegmentAttributes](ctr-data-model.md#segmentattributes)中的。

1.  在**要检查的条件**部分，将**条件**设置为**等于**，将**值**设置为 **connect:SMS**。

   下图的**属性**页面显示，当联系人进入短信渠道时，该页面已配置为分支。  
![\[“检查联系属性”数据块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/golden-check-attributes-block.png)

1. 将 SMS 电话号码与流关联：在左侧导航栏中，选择**渠道**、**电话号码**，选择 SMS 号码，然后选择**编辑**。  
![\[“编辑电话号码”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/golden-sms-number.png)

1. 在**流/IVR** 下，选择您更新的流，然后选择**保存**。  
![\[“检查联系属性”数据块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/golden-assign-flow-sms-number.png)

**提示**  
首次购买电话号码时，该电话号码的状态为**待处理**”。当电话号码可供使用时，它的状态将为**活动**。如果电话号码需要[注册](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html)，则您必须在电话号码的状态更改为**活动**之前完成该步骤。

## 第 4 步：测试短信的发送和接收
<a name="test-sms"></a>

在此步骤中，您将使用联系人控制面板（CCP）和移动电话来测试短信的发送和接收。

1. 在 CCP 中将您的状态设置为**可用**。

1. 使用移动设备，向您在[第 1 步：在中申请号码 AWS End User Messaging SMS](#get-sms-number)中请求的电话号码发送短信。
**提示**  
如果您的 AWS End User Messaging SMS 电话号码仍在短信沙箱中，则只能使用您配置的经过验证的目标号码来测试发送和接收 SMS 消息。要了解如何迁移，请参阅 [Moving from the SMS sandbox to production](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html)。  
![\[座席的 CCP 和客户发送短信的电话号码。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/sms-testing2.png)

## 步骤 5：投入生产的先决条件
<a name="verify-sms-config"></a>

在生产模式下使用 SMS 之前，请确保您已满足以下先决条件 AWS End User Messaging SMS。

1. [将您的账户移出 SMS/MMS 沙盒模式](https://docs.aws.amazon.com/sms-voice/latest/userguide/sandbox.html)

1. [设置短信/彩信注册](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html)

1. [确认您的支出限额与您的使用需求相匹配](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html)

1. [查看您的选择退出名单](https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list.html)

## 客户没有收到短信？
<a name="ts-sms-config"></a>

在打开 Su AWS pport 工单之前，请确认您已完成[步骤 5：投入生产的先决条件](#verify-sms-config)。

## 后续步骤
<a name="sms-nextsteps"></a>

建议执行以下步骤来为座席和客户提供最佳体验。
+ [让客户能够在 Amazon Connect 中恢复聊天对话](chat-persistence.md)：客户可以继续之前的对话，同时保留上下文、元数据和转录。客户回到聊天时无需重复之前的话，座席可以访问整个对话历史记录。
+ [创建供 Amazon Connect 中的聊天和电子邮件联系人使用的快速响应](create-quick-responses.md)：为座席提供对常见客户询问的预先撰写的响应，供他们在与客户聊天时使用。快速响应使座席可以更快地响应客户。

# 将 Amazon Connect 小部件添加到您的网站以接受聊天、任务、电子邮件和 Web 通话联系记录
<a name="connect-widget-on-website"></a>

本节中的主题介绍了如何为您的网站创建和自定义通信小部件。您将创建一个用于确定通过小部件创建的联系人的行为的联系表单，然后自定义该小部件的外观和功能。

**Topics**
+ [第 1 步：为小部件创建联系表单](#create-web-form)
+ [第 2 步：自定义您的通信插件](#customize-communications-widget)
+ [第 3 步：指定您希望在其中显示通讯控件的网站域名](#communications-widget-domains)
+ [第 4 步：确认并复制通信控件代码和安全密钥](#confirm-and-copy-communications-widget-script)

## 第 1 步：为小部件创建联系表单
<a name="create-web-form"></a>

在此步骤中，您将创建和自定义一个视图，以确定通过您的小部件创建的联系人的行为。

1. 登录到 Amazon Connect 管理员网站，网址为[https://instance name.my.connect.aws/](https://instance name.my.connect.aws/)。在**路由**选项卡下，选择**流**。

1. 在左上角点击**视图**。

1. 选择**创建视图**。

1. 在这里，您可以使用[无代码生成器](no-code-ui-builder.md)为您的客户配置联系表单。一些重要提示：
   + 使用表单组件将允许您在创建表单时将表单输入链接到您的联系人。表单链接将允许您直接获取与您的小部件互动的任何人的输入，并在创建联系人时使用他们在表单中填写的信息。
   + 连接操作组件是用于创建联系人的表单中最重要的元素。此组件应在表单中单独使用，不可与其他按钮类型组件混用。
   + 必须恰好存在一个连接操作组件，才能将视图与联系表单小部件一起使用。
   + Connect 操作组件 ConnectActionType 支持三个选项：
     + StartEmailContact
     + StartTaskContact
     + StartChatContact

     电子邮件和任务均可以在联系表单中使用。要为聊天联系创建聊天前表单，请参阅[在 Amazon Connect 托管的网站上添加聊天用户界面](add-chat-to-website.md)。
   + 视图组件有许多样式选项，使您能够自定义表单以适应您的环境。

1. 在表单中添加了**连接操作按钮**后，您就可以通过将由表单创建的联系人链接到连接操作按钮中的选项，来为这些联系人设置值。您希望链接的组件必须与**连接操作按钮**位于视图中的同一表单中。  
![\[激活新通信小部件请求的安全性。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/create-web-form-components-1.png)

   表单链接支持以下组件：
   + 表单输入
   + 下拉菜单（关闭多选）
   + 日期选取器
   + 文本区域
   + 时间选取器

1. 视图准备就绪后，选择**发布**。

## 第 2 步：自定义您的通信插件
<a name="customize-communications-widget"></a>

在此步骤中，您将为客户自定义通信小部件的体验。

1. 登录 Amazon Connect 管理员网站，网址为 [https://instance name.my.connect.aws/](https://instance name.my.connect.aws/)。选择**自定义通信小部件**。

1. 在“通信小部件”页面上，选择**添加通信小部件**，开始自定义新的通信小部件体验。要编辑、删除或复制现有的通信小部件，请从**操作**列下的选项中进行选择。

1. 输入通信小部件的**名称**和**描述**。
**注意**  
在 Amazon Connect 实例中创建的每个通信小部件的名称都必须是唯一的。

1. 在**通信选项**部分，选择**添加联系表单**。

1. 选择您在上一步中配置的视图。如果视图中的连接操作组件没有设置联系流，您需要在此处设置一个。

1. 单击 **Save and Continue**。

在**创建通信小部件**页面上，选择小部件按钮样式以及显示名称和样式。当您选择这些选项时，小部件预览会自动更新，以便您看到客户的体验效果。

**注意**  
该预览不会显示您创建的视图联系表单。仅显示标头样式。

### 显示类型
<a name="display-types"></a>

您可以在联系表单小部件的两种显示类型之间进行选择：
+ *浮动操作按钮*允许您将小部件固定为网页右下角的可交互按钮
+ *嵌入式内联*允许您直接将小部件嵌入到网页中，无需按下按钮即可将其加载

### 按钮样式
<a name="button-styles"></a>

1. 通过输入十六进制值（HTML 颜色代码）来选择按钮背景的颜色。

1. 选择白色或黑色作为图标颜色。无法自定义图标颜色。

### 小部件标题
<a name="widget-header"></a>

1. 提供标题消息和颜色以及小部件背景颜色的值。

1. *徽标 URL*：从 Amazon S3 存储桶或其他在线来源向徽标横幅插入一个 URL。

**重要**  
如果该徽标来自 Amazon S3 存储桶以外的在线来源，则自定义页面中的通信小部件预览将不会显示徽标。只有当您的页面上安装了自定义通信小部件后，徽标才会显示。

横幅的格式必须为 .svg、.jpg 或 .png。图像可以是 280 px（宽）x 60 px（高）。任何大于这些尺寸的图像都将被缩放，以适应 280x60 徽标组件空间。
+ 有关如何将文件（如徽标横幅等）上传到 S3 的说明，请参阅《Amazon Simple Storage Service 用户指南》**中的[上传对象](#)。
+ 确保正确设置了图像权限，以便通信小部件访问图像。有关如何公开访问 S3 对象的信息，请参阅“设置网站访问权限”主题中的[第 2 步：添加存储桶策略](#)。

## 第 3 步：指定您希望在其中显示通讯控件的网站域名
<a name="communications-widget-domains"></a>

1. 输入您要放置通信小部件的网站域。仅会在此步骤中选择的网站上加载该小部件。

   选择**添加域**，添加最多 50 个域。  
![\[“添加域”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-add-domain.png)

   域允许列表行为：
   + 自动包括子域。例如，如果您允许 example.com，则其所有子域（例如 sub.example.com）也被允许。
   + 协议 http:// 或 https:// 必须与您的配置完全匹配。设置允许域时指定确切的协议。
   + 自动允许所有 URL 路径。例如，如果允许使用 example.com，则允许其下的所有页面（例如示例。 com/cart or example.com/checkout) 可以访问。不能允许或阻止特定的子目录。
**重要**  
仔细检查您的网站 URLs 是否有效且不包含错误。请添加以 https:// 为开头的完整 URL。
建议您在生产网站和应用程序中使用 https://。

1. 在 “**为您的通信小组件添加安全性**” 下，我们建议您选择 “**是**”，然后与您的网站管理员合作设置您的 Web 服务器，以便为新的联系人请求发放 JSON Web Token (JWTs)。这使您在发起新联系人时拥有了更多控制权，包括验证发送到 Amazon Connect 的请求是否来自经过身份验证的用户的功能。  
![\[激活新通信小部件请求的安全性。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-choose-security.png)

   选择**是**，会产生以下结果：
   + Amazon Connect 在下一页提供了 44 个字符的安全密钥，你可以用它来创建 JSON 网络令牌 () JWTs。
   + Amazon Connect 在通信小部件嵌入脚本中添加了一个回调函数，用于在联系启动时检查 JSON Web 令牌（JWT）。

     您必须在嵌入式代码段中设置回调函数，如以下示例所示。

     ```
     amazon_connect('authenticate', function(callback) {
       window.fetch('/token').then(res => {
         res.json().then(data => {
           callback(data.data);
         });
       });
     });
     ```

   如果您选择此选项，在下一步中，您将获得一个安全密钥，用于在您的网站上发起的所有联系人请求。请您的网站管理员将您的 Web 服务器设置为 JWTs 使用此安全密钥发布。

1. 选择**保存**。

## 第 4 步：确认并复制通信控件代码和安全密钥
<a name="confirm-and-copy-communications-widget-script"></a>

在此步骤中，您要确认选择并复制通信小部件的代码，并将其嵌入到您的网站中。如果您选择在[步骤 3 JWTs ](#communications-widget-domains) 中使用，也可以复制用于创建密钥的密钥。

### 安全密钥
<a name="communications-widget-security-key"></a>

使用此 44 个字符的安全密钥从您的 Web 服务器生成 JSON 网络令牌。如果需要更改，您也可以更新或轮换密钥。当您执行此操作时，Amazon Connect 会为您提供一个新密钥，同时保留以前的密钥，直到您替换它。部署新密钥后，您可以返回 Amazon Connect 并删除之前的密钥。

![\[Amazon Connect 提供的安全密钥。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-security-key.png)


当您的客户与您网站上的通信小部件互动时，通信小部件会向 Web 服务器请求 JWT。提供此 JWT 后，小部件会将其包含在最终客户向 Amazon Connect 发出的联系人请求中。然后，Amazon Connect 会使用密钥解密令牌。如果成功，则确认了 JWT 是由您的 Web 服务器发出的，Amazon Connect 会将联系人请求路由到您的联络中心座席。

#### JSON Web 令牌的详细信息
<a name="jwt"></a>
+ 算法：**HS256**
+ 声明：
  + **订阅**:*widgetId*

    将 `widgetId` 替换为您自己的 widgetId。要查找您的 widgetId，请参阅[通信小部件脚本](#communications-widget-script)中的示例。
  + **iat**：\$1按时发放。
  + **exp**：\$1有效期（最长 10 分钟）。
  + **segmentAttributes（可选）**：一组系统定义的键值对，使用属性映射存储在各个联系分段上。如需了解更多信息 SegmentAttributes ，请查看 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-SegmentAttributes)API。
  + **属性（可选）**：带有 string-to-string键值对的对象。联系人属性必须遵守 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-Attributes)API 设置的限制。
  + **relatedContactId （可选）**：带有有效联系人 ID 的字符串。 relatedContactId 必须遵守 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API 设定的限制。
  + **customerId（可选）**：这可以是 Amazon Connect Customer Profiles ID，也可以是来自外部系统（例如 CRM）的自定义标识符。

  \$1有关日期格式的信息，请参阅以下互联网工程任务组 (IETF) 文档：[JSON Web 令牌 (JWT)](https://tools.ietf.org/html/rfc7519)，第 5 页。

下面的代码片段举例说明了如何使用 Python 生成 JWT：

```
import jwt 
import datetime 
CONNECT_SECRET = "your-securely-stored-jwt-secret" 
WIDGET_ID = "widget-id" 
JWT_EXP_DELTA_SECONDS = 500

payload = { 
'sub': WIDGET_ID, 
'iat': datetime.datetime.utcnow(), 
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=JWT_EXP_DELTA_SECONDS), 
'customerId': "your-customer-id",
'relatedContactId':'your-relatedContactId',                    
'segmentAttributes': {"connect:Subtype": {"ValueString" : "connect:Guide"}}, 'attributes': {"name": "Jane", "memberID": "123456789", "email": "Jane@example.com", "isPremiumUser": "true", "age": "45"} } 
header = { 'typ': "JWT", 'alg': 'HS256' } 
encoded_token = jwt.encode((payload), CONNECT_SECRET, algorithm="HS256", headers=header) // CONNECT_SECRET is the security key provided by Amazon Connect
```

### 通信小部件脚本
<a name="communications-widget-script"></a>

下图显示了您在网站上嵌入的内容示例 JavaScript ，您希望客户在这些网站上与您的联络中心进行互动。该脚本会在网站右下角显示小部件。

**注意**  
在使用嵌入式内联样式时，将小部件脚本包含在需要渲染小部件的 HTML 元素中。

![\[通信小部件脚本。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-code.png)


网站加载时，客户会首先看到小部件图标。他们选择此图标后，通信小部件将打开，客户就可以与您的座席发起联系了。

要随时更改通信小部件，请选择**编辑**。

**注意**  
保存的更改将在几分钟内更新客户体验。保存之前，请确认您的小部件配置。

![\[小部件预览上的编辑链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-edit.png)


要更改网站上的小部件图标，您将收到一个新的代码片段，用于直接更新您的网站。

# 通过 Amazon Connect 启用 Apple Messages for Business
<a name="apple-messages-for-business"></a>

您的客户可以在 iPhone、iPad 和 Mac 上的 Messages（消息）应用程序中直接与您的联络中心互动。

当您启用 Apple Messages for Business 后，您的客户可以查找问题的答案，并请求座席帮助解决问题，同时使用他们每天使用的熟悉 Messages 应用程序与朋友和家人聊天。每当客户使用 Search、Safari、Spotlight、Siri 或 Maps 呼叫您的注册电话号码时，他们都可以选择与您的联络中心聊天。

Apple Messages for Business 与 Amazon Connect 的集成使您能够使用已用于 [Amazon Connect Chat](web-and-mobile-chat.md) 的相同配置、分析、路由和座席用户界面。

## 先决条件：确定 Apple Messages for Business 是否适合您的使用场景
<a name="apple-messages-for-business-prerequisites"></a>

要获得企业资格，请确保您符合 [Apple Messages for Business 文档](https://register.apple.com/resources/messages/messaging-documentation/#qualifying-as-a-business)中列出的标准。

如果您确定 Apple Messages for Business 是适合您业务的渠道，请填写以下表格：
+ [Apple Messages for Business 准备就绪文档](https://register.apple.com/resources/messages/messaging-documentation/resources/Messages-for-Business_Readiness.pdf)
+ [描述 Apple Messages for Business 的四种主要使用场景](https://register.apple.com/resources/messages/messaging-documentation/resources/Messages-for-Business_UseCases.pdf)

## 步骤 1：向 Apple 注册
<a name="register-with-apple"></a>

通过首先向 Apple 注册为品牌，从而将 Apple Messages for Business 与 Amazon Connect 集成。执行此操作后，您将获得一个唯一的 Apple Messages for Business 账户 ID，然后可以将您的 Apple Messages for Business 账户链接到 Amazon Connect。

1. 转至 [Apple Messages for Business](https://register.apple.com/business-chat) 页面。在**作为一家企业，我想在 Messages 应用程序中与客户联系**框中，选择**开始使用**。

1. 如果您还没有 Apple ID，请为您的企业创建一个。

   Apple ID 通常用于个人使用 Apple 服务，例如在 iCloud 中存储个人内容和从 App Store 中下载应用程序。如果您拥有个人 Apple ID，建议您使用贵组织的电子邮件地址创建单独的 Apple ID 来管理 Messages for Business。利用单独的管理式 Apple ID，您可以将 Messages for Business 通信与个人 Apple 通信区分看来。

1. 通过接受 **Apple 的服务条款**，即可为新的 Messages for Business 账户注册资料。建议创建一个[商业 Messages for Business 账户](https://register.apple.com/resources/messages/messaging-documentation/register-your-acct#create-a-commercial-business-chat-account)。然后，您可以提供企业详细信息，例如徽标和支持时间。

1. 选择 Amazon Connect 作为您的消息收发服务提供商。您可以通过从下拉列表中选择 Amazon Connect 或输入以下 URL 来完成此操作：
   + **https://messagingintegrations.connect.amazonaws.com/苹果商务聊天**

向 Apple 提交申请后，您将在 **Messages for Business 账户**页面的顶部看到申请的状态。

有关向 Apple 注册的更多信息，请参阅 Apple 网站上的以下文章：[Getting Started with Messages for Business](https://register.apple.com/resources/business-chat/BC-GettingStarted.pdf)（Messages for Business 入门）和 [Messages for Business Policies and Best Practices](https://register.apple.com/resources/business-chat/BC-Policies_and_Best_Practices.pdf)（Messages for Business 策略和最佳实践）。

## 步骤 2：收集所需信息
<a name="gather-apple-messages-for-business-information"></a>

收集以下信息，以便在步骤 3 中打开支持工单时其随时可用：

1. **Apple Messages for Business 账户 ID**：在您获得 Apple Messages for Business 批准后，会向您签发一个 Apple Messages for Business 账户 ID。有关查找您的 Apple Messages for Business 账户 ID 的信息，请参阅[查找与 Amazon Connect 集成的 Apple Messages for Business 帐户 ID](find-apple-messages-for-business-account-id.md)。
**注意**  
您的 Apple Messages for Business 账户 ID 是由数字和字母组成的一个随机字符串。它和您的 Apple ID 不一样。

1. **Apple 令牌**：这是对您的账户进行身份验证的唯一 ID。有关查找您的 Apple 令牌的帮助，请参阅[在将 Apple Messages for Business 与 Amazon Connect 集成时查找 Apple 令牌](find-apple-token-id.md)。

1. **Amazon Connect 实例 ARN**：这是您要链接到 Apple 企业账户的实例的标识符。有关查找您的实例 ID 的信息，请参阅[找到您的 Amazon Connect 实例 ID 或 ARN](find-instance-arn.md)。
**注意**  
确保为集成启用了服务相关角色。  
如果您的实例是在 **2018 年 10 月**之前创建的，请在与您的 Amazon Connect 实例关联的角色上添加 `connect:*` 策略。有关服务相关角色的更多信息，请参阅[使用 Amazon Connect 的服务相关角色和角色权限](connect-slr.md)。

1. **Amazon Connect 流 ID**：这是您要用于入站聊天的流的标识符。有关查找您的流 ID 的信息，请参阅[在将 Apple Messages for Business 与 Amazon Connect 集成时查找流 ID](find-contact-flow-id.md)。

## 步骤 3：将 Apple Messages for Business ID 链接到 Amazon Connect
<a name="link-apple-messages-for-business"></a>

在此步骤中，您将创建一个 Amazon Connect 支持工单，以将您的 Apple Messages for Business ID 链接到 Amazon Connect。

1. 创建一张[特殊 支持 门票](https://support.console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=service-chime-end-user&categoryCode=other)，将你的 Apple 企业信息关联到 Amazon Connect。

   如果出现提示，请使用您的 AWS 帐户登录。
**提示**  
正在寻求技术支持？ [在这里开 支持 票](https://console.aws.amazon.com/support/home)。

1. 选择**账户和账单**。

1. 使用下拉框选择 **Chime（最终用户）**。在**类别**中选择**激活**，然后选择**下一步：其他信息**。

1. 对于**主题**，请输入 **Apple Messages for Business 集成请求**。

1. 在**描述**框中，复制并粘贴以下模板：

   ```
   Subject: Apple Messages for Business Integration request
      Body:
   
      Apple Messages for Business Account ID (required): enter your account ID
      Apple Token (required): enter your Apple token
      Amazon Connect Instance ARN (required): enter your instance ARN
      Amazon Connect Flow ID (required): enter your flow ID
   ```

1. 将[先决条件](#apple-messages-for-business-prerequisites)部分中的两个表单附加到支持请求中。
**注意**  
这个步骤为必填项。如果您没有附上这些表单，您的请求将不予处理。

   下图显示了一个已完成工单的示例：  
![\[已完成工单示例。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-sample-use-case-description.png)

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

1. 选择**联系我们**，选择您的**首选联系语言**，然后选择 **Web** 作为联系方式（如果默认情况下未选中）。  
![\[联系方式。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-contact-support-options.png)

1. 选择**提交**。

1. 支持 将根据您的请求直接与 Amazon Connect 团队合作，并继续处理任何其他问题。

### 后续步骤
<a name="enable-apple-messages-for-business-next-steps"></a>

为您的 Amazon Connect 实例启用 Apple Messages for Business 后，可以向您的消息中[添加 Apple Messages for Business 功能](add-apple-messages-for-business-features.md)。例如：
+ 使用 Apple 的 Message Suggest 转移呼叫。
+ 在您的网站上嵌入 Apple Messages for Business 按钮。
+ 向您的消息中添加列表选择器、时间选取器、表单和快速响应。
+ 在集成中添加 Apple Pay、iMessage 应用程序和身份验证。
+ 使用丰富的链接 URLs.
+ 使用联系属性路由 Apple Messages for Business 消息。
+ 为您的集成启用附件。

此外，还要通过 [Apple 体验审查](https://register.apple.com/resources/messages/messaging-documentation/xp-review)。

## 步骤 4：创建并提交体验审查记录
<a name="experience-apple-messages-for-business"></a>

录制演示体验，以供 Amazon Connect 和 Apple Messages for Business 审查。该视频必须准确反映账户在生产环境中时发生的用户旅程（涵盖所有应用场景）。仅上传用户视角（用户设备）的录制内容。您无需从座席控制台或在后端激活的机器人那里发送录制内容。如果需要，您可以将该视频拆分成多个部分。演示您在体验、实时座席互动和任何[非工作时段消息](https://register.apple.com/resources/messages/messaging-documentation/ux-design#automated-messaging)中集成的[丰富功能](https://register.apple.com/resources/messages/messaging-documentation/customer-journey#interactive-features)。请务必遵守 Apple Messages for Business 的[最佳实践](https://register.apple.com/resources/messages/messaging-documentation/ux-design#best-practices)和[策略](https://register.apple.com/resources/messages/messaging-documentation/policies)。

**提升用户体验的技巧**
+ **介绍/欢迎消息：**自动化系统应在新对话的第一条消息发出后 5 秒内自动回复。当客户与自动化系统开始对话时，请提供类似**这是一个自动化座席**或**我是一个自动化座席**的消息。有关更多信息，请参阅[自动化消息收发](https://register.apple.com/resources/messages/messaging-documentation/ux-design#automated-messaging)。
+ **使用条款和隐私策略声明：**这些声明应通过该品牌网站的[富链接](https://register.apple.com/resources/messages/msp-rest-api/type-richlink#rich-link-messages)进行处理，允许用户在方便时阅读全部条款。不要在对话中发送大量法律文本。只有当用户首次与该品牌互动或条款已更新时，才应发送此类内容。
+ **初始分类：**应在互动开始时发送分类菜单。这是一种可指导和帮助用户的快速方法。您可以使用快速回复消息（最多 5 个选项）。有关更多信息，请参阅[分类客户](https://register.apple.com/resources/messages/messaging-documentation/ux-design#triage-customers)。
+ **进行介绍：**务必在对话开始时以及将客户转接到新座席之后，介绍实时座席。
+ **实时支持可用性：**如果客户在正常客户服务时间之外寻求帮助，而此时实时座席不可用，则自动响应应告知他们，实时座席何时能够做出回应。有关更多信息，请参阅[自动化消息收发](https://register.apple.com/resources/messages/messaging-documentation/ux-design#automated-messaging)。
+ **允许从自动化座席切换到实时座席：**每当客户发送“帮助”一词时，必须随时能够联系到实时座席。此外，如果自动化座席无法理解请求，则在显示诸如“我正在将您的消息转接给实时座席，以便更好地为您提供帮助”之类的消息后，该座席必须无缝切换到实时座席。
+ **不要要求提供之前已提供的信息：**座席可以访问完整的对话历史记录，包括之前的回复和最近的事务，因此无需要求客户重复信息。
+ **富链接：**所有内容都 URLs 应作为富链接发送。这意味着不应发送任何 tap-to-load问题或文字链接。有关更多信息，请参阅 [将丰富的链接用于 URLs](add-apple-messages-for-business-features.md#rich-links)。
+ **功能气泡：**应具有相关的缩略图和行动号召文本，以便客户清楚了解相应功能的内容，并将其识别为可点击的项目。
+ **我们鼓励使用满意度调查：**完成与客户的互动后，您可能需要向他们提供客户服务满意度（CSAT）调查。为了获得更好的客户体验，请在体验结束后而不是在每个常见问题解答之后提供 CSAT 调查。有关更多信息，请参阅[满意度调查](https://register.apple.com/resources/messages/messaging-documentation/ux-design#satisfaction-surveys)。
+ **键入指示器：**当座席（无论是实时座席还是自动化座席）开始键入时，应显示键入指示器，以便体验一致。应在显示任何消息类型（文本消息或交互式消息）之前显示键入指示器。对于由机器人发送的消息以及按顺序发送的消息，在每条消息前仅使用 1 秒键入指示器。有关更多信息，请参阅[键入指示器消息](https://register.apple.com/resources/messages/msp-rest-api/common-specs#typingindicatormessage)。

创建体验审查记录后，您可以再次创建 Amazon Connect 支持工单以进行共享。在最终批准之前，Amazon Connect 和 Apple Messages for Business 将提供反馈。

1. 创建一张[特殊 支持 门票](https://support.console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=service-chime-end-user&categoryCode=other)以分享您的体验回顾记录。如果出现提示，请使用您的 AWS 帐户登录。

1. 选择**账户和账单**。

1. 使用下拉框选择 **Chime（最终用户）**。在**类别**中选择**激活**，然后选择**下一步：其他信息**。

1. 对于**主题**，请输入 **Apple Messages for Business 体验审查请求**。

1. 在**描述**框中，复制并粘贴以下模板：

   ```
   Subject: Apple Messages for Business Experience Review request
   
   Body:
   
      Apple Messages for Business Account ID (required): enter your account ID
   ```

1. 附上体验审查记录。

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

1. 选择**联系我们**，选择您的**首选联系语言**，然后选择 **Web** 作为联系方式（如果默认情况下未选中）。

1. 选择**提交**。

1. 支持 将根据您的请求直接与 Amazon Connect 团队合作，并对任何反馈进行跟进。

# 为 Apple Messages for Business 发送测试信息，以测试与 Amazon Connect 的集成情况
<a name="send-test-message"></a>

登录 Apple Messages for Business 账户后，请按照以下步骤发送测试消息，以确保集成设置正确。

## 步骤 1：将内部测试人员添加到您的 Messages for Business 账户中
<a name="add-internal-tester"></a>

1. 登录 [Apple Business Register](https://register.apple.com/)。

1. 选择 **Messages for Business 账户**，然后选择要添加测试人员的账户。

1. 向下滚动页面至**账户测试**。

1. 添加内部测试 IDs 人员中的苹果。

1. 当您的列表填写完毕并准备好开始测试时，请选择**发送给新测试人员**，以向测试人员发送一封教学电子邮件。

将向每位测试人员的 Apple ID 电子邮件地址发送一封包含 Messages for Business 对话链接的教学电子邮件。如果测试人员没有收到该电子邮件，请重新检查在“账户测试”分区中是否提供了其电子邮件地址。很可能电子邮件地址不正确或不是 Apple ID。出于安全原因，Apple 无法验证 Apple ID 电子邮件地址。

## 步骤 2：测试发送和接收消息
<a name="test-send-receive-messages"></a>

当您的测试人员收到教学电子邮件时，他们需要激活其中的链接。完成此操作后，他们可以向您的座席发送消息，然后他们可以通过联系人控制面板 (CCP) 进行回复。

注意以下几点：

1. 设计一个测试来触发您的 Apple Messages for Business 的所有功能。

1. 您应该注意到，从 iOS 设备发送的消息会到达您的测试业务。在您的支持座席桌面上进行测试的员工应该能够回复这些测试消息。

1. 您的测试人员可能会注意到，您的品牌颜色在“Messages”（消息）标题中不可见。当您的账户处于测试模式时，品牌颜色不可用。您的账户上线后，您的品牌颜色将会正确显示。

1. 如果您将测试链接发送给其电子邮件未在“账户测试”分区中列出的人员，则他们将无法发送消息。

1. 如果您提供重定向页面 URL，且您的测试人员尝试通过不支持的设备进入 Messages for Business，则他们将登录默认页面或重定向页面。您可以在 Messages for Business 账户页面底部的**不支持的设备**分区中设置您的重定向页面 URL。

**开始测试**

1. 确保您的测试人员使用的设备配备受支持的 iOS：iOS 11.3 及更高版本或 macOS 10.13.4。

1. 要求测试人员执行以下操作：

   1. 使用其支持的设备查找发送给他们的电子邮件。

   1. 从支持的设备上打开该电子邮件，然后选择相应的链接。该链接会将他们带到 Messages 应用程序中的 Messages for Business 对话。

## 故障排除
<a name="troubleshoot-test-messages"></a>

如果您在发送测试消息时遇到任何问题，请按照以下步骤操作：

1. 确认您已在 “企业消息” 账户中将您的电子邮件 address/Apple ID列入许可名单，作为测试人员。

1. 在 Apple 设备上确认以下设置：
   + 转至**设置** > **消息**，并检查 **iMessage** 是否已启用。
   + 转至**设置** > **消息** > **发送和接收**，并检查 AppleID 是否正确，并允许接收消息。

1. 检查您是否正在使用支持的 iOS。运行 iOS 11.3 及更高版本或 macOS 10.13.4 及更高版本的 Apple 设备支持 Messages for Business。

1. 当您在 Apple 账户中选择 Amazon Connect 作为您的 MSP 时，您是否从下拉列表中选择了 **Amazon Connect**？ 或者您是否输入了以下 URL：
   + https://messagingintegrations.connect.amazonaws.com/applebusinesschat

   如果您输入了该 URL，请仔细检查是否存在拼写错误。

1. 确认您的 Apple 企业账户在 [Apple Business Register](https://register.apple.com/) 中处于**在线**状态。如果该账户处于待处理状态，则选择**发送以供审核**。在进行额外的 Apple ID 允许列表更改或其他 Apple 企业账户配置更改后，需要重复执行此操作。

# 为 Apple Messages for Business 启用身份验证
<a name="enabling-authentication-for-apple-messages-for-business"></a>

要开始设置过程，首先要导航到您的身份提供商。

## 身份提供商配置
<a name="apple-messages-for-business-identity-provider-configuration"></a>

 以下 Amazon Connect 域名必须注册为用于身份验证的身份提供商的允许重定向 URI：

```
https://participant.connect.region.amazonaws.com/participant/authentication/update
```

## 与 Amazon Cognito 集成
<a name="apple-messages-for-business-integration-with-aws-cognito"></a>

 您可以[将您的身份提供商添加](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-provider.html)到现有 Amazon Cognito 用户池，或创建一个新的 [Amazon Cognito 用户池](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html)。

 在此用户池中，您可以创建[应用程序客户端](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html)，然后选择部分或全部身份提供商。记下应用程序客户端的客户端 ID。对于此应用程序客户端，必须将以下 Amazon Connect 域添加为允许的回拨 URL：

```
https://participant.connect.region.amazonaws.com/participant/authentication/update
```

**注意**  
配置 Amazon Cognito 应用程序客户端时，必须选择**不生成客户端密钥**。只支持不带客户端密钥的 Amazon Cognito 应用程序客户端。

## 使用 Apple Messages for Business 门户网站配置 Amazon Cognito 应用程序客户端
<a name="configuring-your-cognito-app-client-with-the-apple-messages-for-business-portal"></a>

 **在**集成 OAuth2 身份验证**中，将您的 Amazon Cognito 应用程序客户端 ID 配置为**客户端标识符**，将 Amazon Cognito 用户池域[的授权](https://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html)端点配置为网址。OAuth **

![\[对 Amazon Cognito 用户池进行客户身份验证。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/configuring-your-cognito-app-client-with-the-apple-messages-for-business-portal.png)


## 使用 Amazon Connect 配置用户池
<a name="configuring-your-user-pools-with-connect"></a>

 在 Amazon Connect 控制台的**客户身份验证**页面上，关联将用于身份验证的用户池。

![\[对 Amazon Cognito 用户池进行客户身份验证。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/configuring-your-user-pools-with-connect.png)


## 启用 Amazon Connect Customer Profiles
<a name="apple-messages-for-business-configuring-amazon-connect-customer-profiles"></a>

**启用 Customer Profiles**

 在 Amazon Connect 控制台的**客户配置文件**页面上，确保为您的实例启用了“客户配置文件”。如果显示**没有与此 Amazon Connect 实例相关联的 Customer Profiles 域**，请参阅[为您的 Amazon Connect 实例启用 Customer Profiles](enable-customer-profiles.md)。

![\[在 Amazon Connect 控制台中启用 Customer Profiles。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/apple-messages-for-business-configuring-amazon-connect-customer-profiles.png)


### 向安全配置文件授予 Customer Profile 权限（可选）
<a name="apple-messages-for-business-grant-customer-profile-permissions"></a>

 要向用户（代理、管理员）授予在座席工作区中访问view/edit/publish客户资料的权限，请参阅[更新座席的 Customer Profiles 权限](security-profile-customer-profile-agent.md)。向安全配置文件授予权限后，用户就可以访问座席工作区中的功能。

 有关权限的详细列表，请参阅 [Customer Profiles 权限](security-profile-list.md#customerprofiles-permissions-list)。

## 配置“验证客户身份”流数据块
<a name="apple-messages-for-business-authenticate-customer-flow-block"></a>

有关说明，请参阅[Amazon Connect 中的流数据块：验证客户身份](authenticate-customer.md)。

# 添加 Apple Messages for Business 功能
<a name="add-apple-messages-for-business-features"></a>

## 使用 Apple 的 Message Suggest 转移呼叫
<a name="call-deflection"></a>

借助 [Message Suggest](https://register.apple.com/resources/messages/messaging-documentation/message-with-customers#triggering-message-suggest)，当用户在 Safari、Maps、Siri 或 Search 中点击您的企业电话号码时，可以允许用户在语音和消息收发之间进行选择。

要启用 Message Suggest，请向 Apple Messages for Business 团队发送一封包含以下信息的电子邮件，地址为 **registry@apple.com**，Apple 可以为您设置通道：
+ 提供您的所有主要电话号码，包括高呼叫量电话号码。
+ 提供电话联系时间，以设定客户对您下班后消息的期望。
+ 提供要与每个电话号码关联的意图参数、组参数和正文参数。
+ 提供您的座席每天可以支持多少客户的估计值。此值可以根据运营能力的不同而增加或减少。

要了解有关启用 “留言建议” 的更多信息，请参阅 [Apple 的 “留言建议](https://register.apple.com/resources/business-chat/faq/business-chat-suggest-faqs.html)” FAQs。

## 嵌入 Apple Messages for Business 按钮
<a name="embed-apple-messages-for-business-buttons"></a>

要在您的网站或移动应用程序中嵌入 Apple Messages for Business 按钮，请执行以下操作：

1. 将 Apple 的企业信息 JS (JavaScript) 库添加到您的网页标题中。

1. 添加一个 `div` 容器来存放按钮。

1. 自定义横幅、后备支持和按钮颜色，以满足您的品牌需求。

Messages for Business 按钮至少必须包含以下内容：
+ 用于指定容器类型的类属性：横幅、电话或消息。
+ 一个 data-apple-business-id属性，即您在企业信息中注册公司时收到的企业编号。

## 身份验证
<a name="add-apple-messages-for-busines-authentication"></a>

身份验证允许客户在聊天对话中登录您选择的身份提供商。身份验证功能利用 OAuth2 和 OIDC 框架在成功登录后验证客户的身份。有关更多信息，请参阅。[为 Apple Messages for Business 启用身份验证](enabling-authentication-for-apple-messages-for-business.md)

## 从 URL 开始聊天
<a name="start-chat-from-url"></a>

您可以让客户能够通过您的网站或电子邮件消息与您开始对话。

例如，客户可以使用您提供的 URL 开始聊天。当他们单击相应 URL 时，系统会将他们重定向到 Messages，这样他们就可以向您的企业发送短信。

您可以决定提供 URL 的方式和位置。您可以将其作为链接包含在电子邮件消息中、您的网站上，也可以将其用作应用程序中按钮的操作。

使用网址 **https://bcrw.apple.com/urn: biz: *your-business-id***，*your-business-id*替换为注册企业信息后从 Apple 收到的企业编号。

以下是您可以在 URL 中包含的可选查询字符串参数：
+ `biz-intent-id`：用于指定聊天的意图或目的。
+ `biz-group-id`：用于指示最有资格处理客户特定疑问或问题的团体、部门或个人。
+ `body`：用于预先填充消息，这样客户只需按**发送**即可开始对话。

以下示例说明了对于向结算部门提出信用卡问题的客户来说，URL 可能的外观：
+ `https://bcrw.apple.com/urn:biz:22222222-dddd-4444-bbbb-777777777777?biz-intent-id=account_question&biz-group-id=billing_department&body=Order%20additional%20credit%20card`.

## 添加列表选择器、时间选择器、表单、附件和快速回复
<a name="add-list-pickers-time-pickers"></a>

列表选择器会提示您的客户选择一个项目，例如一款产品或其查询原因。时间选取器会提示您的客户选择可用时段，例如安排预约。快速回复会提示您的客户选择简单的内联响应。通过表单，您可以为客户创建丰富的多页面互动流。

有关如何设置列表选择器、时间选择器和快速回复的信息，请参阅 [在聊天中为客户添加 Amazon Lex 互动消息](interactive-messages.md)。

有关如何启用附件的信息，请参阅[启用附件以使用聊天共享文件](enable-attachments.md)。

## Apple Pay
<a name="apple-pay"></a>

Apple Pay 允许客户无需管理纸质账单、硬币或实体银行卡，即可完成购买。使用 Apple Messages for Business，客户无需离开信息应用程序就能购买自己喜爱的品牌。

Apple Pay 是一项独特的功能，但与应用程序内的 Apple Pay 和网络上的 Apple Pay 有相似之处。当企业要求通过 Apple Messages for Business 购买商品和服务的客户付款时，客户可以使用 Apple Pay 进行付款。

![\[使用 Apple Pay 的智能手机图片。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/apple-pay-1.png)


要了解有关 Apple Pay 的更多信息，请参阅[面向开发者的 Apple Pay](https://developer.apple.com/apple-pay/)。

有关如何使用 Connect 设置 Apple Pay 的信息，请参阅 [在聊天中为客户添加 Amazon Lex 互动消息](interactive-messages.md)。

## iMessage 应用程序
<a name="imessage-apps"></a>

iMessage 应用程序或 Apple 自定义互动消息 (CIM) 可提高终端客户与企业客户之间的互动性，使终端客户能够从企业接收 iMessage 应用程序。这些 iMessage 应用程序包含一组更丰富的信息，终端客户可以完全在 Apple 的 Message 应用程序内进行互动，从而使终端客户能够留在对话中进行相同的互动。这使得 Apple CIM 比其他现有的互动消息类型更具可定制性。

下图是使用 Apple CIM 发送的 iMessage 应用程序的示例，上面有详细地图和位置图钉：

![\[使用 Apple CIM 发送的 iMessage 应用程序图片，上面有详细地图和位置图钉：\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/imessage-apps-1.png)


有关如何使用 Amazon Connect 设置 iMessage 应用程序的信息，请参阅 [在聊天中为客户添加 Amazon Lex 互动消息](interactive-messages.md)。

## 将丰富的链接用于 URLs
<a name="rich-links"></a>

富链接显示包含图像或视频的 URL 的内联预览。与往常不同的是 URLs，客户可以在聊天中立即查看图像或视频预览，而无需选择 “点击加载预览” 消息。

### 在 Amazon Connect 中使用富链接的要求
<a name="rich-links-requirements"></a>

要在 Amazon Connect 聊天消息中使用富链接，您的 URL 和图片必须满足以下要求：
+ 您的网站必须使用 Facebook Open Graph 标签。有关更多信息，请参阅[站点管理员共享指南](https://developers.facebook.com/docs/sharing/webmasters/)。
+ URL 附带的图片必须是 .jpeg、.jpg 或 .png。
+ 网站必须为 HTML。

**注意**  
首次使用富链接功能时，建议您在与聊天文本分开的消息中发送 URL，如以下示例所示。第一条消息介绍了 URL。下一条消息包含 URL。  

![\[聊天消息中发送的 URL。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-rich-link.png)


## 在联系流中使用 Apple Messages for Business 联系属性
<a name="apple-messages-for-business-flows"></a>

联系属性使您能够存储有关联系的临时信息，以便可以在流中使用。

例如，如果您在使用 Apple Messages for Business 时有不同的业务领域，则可以根据**AppleBusinessChatGroup**联系人属性分支到不同的流程。或者，如果你想将 Apple Messages for Business 消息与其他聊天消息不同的路由，你可以根据此进行分支 MessagingPlatform。

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

使用以下联系属性来路由 Apple Messages for Business 客户。


| 属性 | 说明 | 类型 | JSON | 
| --- | --- | --- | --- | 
|  MessagingPlatform  |  从中发出客户请求的消息传递平台。 确切值：**AppleBusinessChat**  | 用户定义 | \$1.属性。 MessagingPlatform | 
|  AppleBusinessChatCustomerId  |  Apple 提供的客户不透明 ID。对于 AppleID 和企业来说，这是不变的。您可以使用它来识别消息来自新客户还是老客户。  | 用户定义 | \$1.属性。 AppleBusinessChatCustomerId | 
|  AppleBusinessChatIntent  |  您可以定义聊天的意图或目的。此参数包含在 URL 中，当客户选择**商务聊天**按钮时，该 URL 会在 Messages 中启动聊天会话。  | 用户定义 | \$1.属性。 AppleBusinessChatIntent | 
|  AppleBusinessChatGroup  |  您可以定义一个小组，指定最有资格处理客户特定疑问或问题的部门或个人。此参数包含在 URL 中，当客户选择**商务聊天**按钮时，该 URL 会在 Messages 中启动聊天会话。  | 用户定义 | \$1.属性。 AppleBusinessChatGroup | 
|  AppleBusinessChatLocale  |  定义用户希望在其用户界面中看到的语言和 AWS 区域首选项。它由语言标识符 (ISO 639-1) 和区域标识符 (ISO 3166) 组成。例如，**en\$1US**。  | 用户定义 | \$1.属性。 AppleBusinessChatLocale | 
|  AppleFormCapability  |  客户设备是否支持表单。 如果为“true”，则客户设备受支持。 如果为“false”，则设备不受支持。  | 用户定义 | \$1.属性。 AppleFormCapability | 
|  AppleAuthenticationCapability  |  客户设备是否支持身份验证 (OAuth2)。如果为“true”，则客户设备受支持。如果为“false”，则他们的设备不受支持。  | 用户定义 | \$1.属性。 AppleAuthenticationCapability | 
|  AppleTimePickerCapability  |  客户设备是否支持时间选取器。 如果为“true”，则客户设备受支持。 如果为“false”，则设备不受支持。  | 用户定义 | \$1.属性。 AppleTimePickerCapability | 
|  AppleListPickerCapability  |  客户设备是否支持列表选择器。 如果为“true”，则客户设备受支持。 如果为“false”，则设备不受支持。  | 用户定义 | \$1.属性。 AppleListPickerCapability | 
|  AppleQuickReplyCapability  |  客户设备是否支持快速响应。 如果为“true”，则客户设备受支持。 如果为“false”，则设备不受支持。  | 用户定义 | \$1.属性。 AppleQuickReplyCapability | 

# 更新 Apple Messages for Business 与 Amazon Connect 的集成
<a name="update-apple-messages-for-business"></a>

如果您想更改流程 ID 或其他信息，则需要更新您的 Apple Messages for Business 集成。

1. 打开 [支持 工单](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=customer-account&categoryCode=activation)。

   如果出现提示，请使用您的 AWS 帐户登录。

1. 在**使用案例描述**框中，复制并粘贴以下模板以指示这是**更新**请求：

   ```
   Subject: Update Apple Messages for Business Integration request
   Body:
      Apple Messages for Business Account ID (required): enter your current account ID change to new account ID
      Apple Token (required): enter your token
      Amazon Connect Instance ARN (required): enter your current instance ARN change to new instance ARN
      Amazon Connect Flow ID (required): enter your current flow ID change to new flow ID
   ```
**注意**  
如果您更新您的 Amazon Connect 实例 ARN，则还必须更新您的联系流 ID。

1. 展开**联系选项**，然后选择您的**首选联系语言**，接着选择 **Web** 作为联系方式（如果默认情况下未选中）。  
![\[“联系选项”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-contact-support-options.png)

1. 选择**提交**。

1. 支持 将根据您的请求直接与 Amazon Connect 团队合作，并继续处理任何其他问题。

# 删除 Apple Messages for Business 与 Amazon Connect 的集成
<a name="delete-apple-messages-for-business"></a>

1. 打开 [支持 工单](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service&serviceCode=customer-account&categoryCode=activation)。

   如果出现提示，请使用您的 AWS 帐户登录。

1. 在**使用案例描述**框中，复制并粘贴以下模板以指示这是**删除**请求：

   ```
   Subject: Delete Apple Messages for Business Integration
   Body:
     Apple Messages for Business Account ID (required): enter your account ID   
      Amazon Connect Instance ARN (required): enter your instance ARN
      Amazon Connect Flow ID (required): enter your flow ID
   ```

   下图显示了一个已完成工单的示例：

1. 展开**联系选项**，然后选择您的**首选联系语言**，接着选择 **Web** 作为联系方式（如果默认情况下未选中）。  
![\[“联系选项”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-contact-support-options.png)

1. 选择**提交**。

1. 支持 将根据您的请求直接与 Amazon Connect 团队合作，并继续处理任何其他问题。

# 查找与 Amazon Connect 集成的 Apple Messages for Business 帐户 ID
<a name="find-apple-messages-for-business-account-id"></a>

1. 在 [Apple Business Register](https://register.apple.com/) 中，导航到**消息服务提供商**，并单击或点击**测试您的消息收发服务提供商连接**。  
![\[“消息收发服务提供商”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-messaging-service-provider.png)

1. 单击或点击**复制 ID**。  
![\[“消息收发服务提供商连接”页面，“复制 ID”链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-account-id.png)

# 在将 Apple Messages for Business 与 Amazon Connect 集成时查找 Apple 令牌
<a name="find-apple-token-id"></a>
+ 在 [Apple Business Register](https://register.apple.com/) 中，导航到**消息收发服务提供商**，然后选择**复制令牌**。  
![\[“消息收发服务提供商”页面，“复制令牌”链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-msp-copytoken.png)

# 在将 Apple Messages for Business 与 Amazon Connect 集成时查找流 ID
<a name="find-contact-flow-id"></a>

流 ID 是您要用于入站 Apple Messages for Business 消息的流。流可定义客户开始新聊天时的体验。

您可以重复使用已用于语音或聊天联系的现有流，也可以专门为 Apple Messages for Business 联系创建一个新流。有关创建新入站流的说明，请参阅[创建入站流](create-contact-flow.md#create-inbound-contact-flow)。

有关流的更多信息，请参阅 [Amazon Connect 流](connect-contact-flows.md)。

**查找 Apple Messages for Business 的流 ID**

1. 使用**管理员**账户或分配给有权查看联系流的安全配置文件的账户登录 Amazon Connect 控制台。

1. 在导航菜单上，选择**路由**、**联系流**。

1. 选择要使用的流。
**注意**  
仅选择类型为**流（入站）**的流。Apple Messages for Business 不适用于其他流类型，例如**客户队列**、**客户保持**、**客户私密消息**等。

1. 在流设计器中，展开**显示其他流信息**。  
![\[示例流，“显示其他流信息”分区。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-find-contactflow-id.png)

1. 在“ARN（Amazon 资源编号）”下，复制 contact-flow/ 之后的所有内容。例如，在下图中，您将复制带下划线的部分。  
![\[显示如何复制 Amazon 资源编号的关键部分的图表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/abc-find-contactflow-id-copy.png)

   1. 请注意**类型** = **流（入站）**。

   1. 流 ID 位于 ARN 的末尾。仅复制此末尾部分。

# 在 Amazon Connect 实例中管理 Apple Messages for Business 聊天
<a name="manage-customer-chats"></a>

当您将 Apple Messages for Business 与 Amazon Connect 实例集成时，来自 Apple Messages for Business 的消息的行为与到达您的联络中心的任何其他聊天消息完全相同。

**注意**  
Amazon Connect 聊天服务限额限制适用于 Apple Messages for Business。要了解更多信息，请参阅[Amazon Connect 服务配额](amazon-connect-service-limits.md)。

## 设置自动回复
<a name="auto-respond-chats"></a>

您可以使用 Amazon Lex 设置对聊天进行自动回复。有关介绍如何设置 Amazon Lex 和 Amazon Connect 的教程，请参阅 [将 Amazon Lex 自动程序添加到 Amazon Connect](amazon-lex.md)。

# 设置 WhatsApp 企业消息
<a name="whatsapp-integration"></a>

本节中的主题说明了如何设置和测试 Amazon Connect 的 WhatsApp 企业消息。您可以使用 [AWS 最终用户消息社交](https://docs.aws.amazon.com/social-messaging/latest/userguide/what-is-service.html)将 WhatsApp 企业账户和电话号码关联到 Amazon Connect 实例，然后将关联的电话号码导入 Amazon Connect。然后，客户可以使用 WhatsApp 向您的呼叫中心发送消息。

您还可以使用 Amazon Lex 自动回复客户的问题，从而节省座席的时间和精力。有关更多信息，请参阅《Amazon Lex 开发人员指南》**中的 [Amazon Lex 入门](https://docs.aws.amazon.com/lexv2/latest/dg/getting-started.html)。

**Topics**
+ [前提条件](#whatsapp-prerequisites)
+ [步骤 1：启用 Amazon Connect 作为事件目标](#enable-connect-destination)
+ [步骤 2：在您的电话号码上配置入站联系流](#inbound-contact-flow)
+ [步骤 3：发送和接收测试消息](#send-receive-test-messages)
+ [后续步骤：准备上线](#whatsapp-next-steps)
+ [对常见问题进行排查](#whatsapp-troubleshooting)
+ [WhatsApp Amazon Connect 的商业消息功能和限制](whatsapp-messaging-capabilities.md)

## 前提条件
<a name="whatsapp-prerequisites"></a>

在 WhatsApp 与 Amazon Connect 集成之前，您必须具备以下物品：
+  WhatsApp 企业账户。
+ 一个 WhatsApp 电话号码。该号码必须能够接听语音通话或短信，才能完成 Meta 的 WhatsApp 商务消息电话号码验证流程。您可以使用 Amazon Connect 语音 AWS End User Messaging SMS 号码或号码作为 WhatsApp 电话号码。您也可以使用自己在外部拥有的电话号码 AWS。

  使用 Amazon Connect 语音 AWS End User Messaging SMS 号码或号码时，我们建议您申请一个未用于实时语音或短信流量的新号码，以免服务中断。

  您可以使用 AWS 最终用户消息社交控制台[https://console.aws.amazon.com/social-messaging/](https://console.aws.amazon.com/social-messaging/)来创建 WhatsApp 企业账户和电话号码。有关更多信息，请参阅 *AWS 最终用户消息社交用户指南 WhatsApp*中的[注册](https://docs.aws.amazon.com/social-messaging/latest/userguide/getting-started.html#getting-started-embedded)。

**重要**  
WhatsApp 具有自动业务验证流程，最长可能需要 2 周才能完成。 我们建议您尽早开始此过程。 WhatsApp 如果违反了 WhatsApp 企业政策或无法验证 WhatsApp 企业身份，则可以禁用企业账户。  
此外，我们强烈建议您在创建和关联 WhatsApp 资源之前查看 [AWS 最终用户消息社交WhatsApp ](https://docs.aws.amazon.com/social-messaging/latest/userguide/best-practices.html)[的最佳实践和最佳实践](https://business.whatsapp.com/policy#best_practices)。

在创建账户和电话号码后，按所列顺序完成以下各节中的步骤。

## 步骤 1：启用 Amazon Connect 作为事件目标
<a name="enable-connect-destination"></a>

以下步骤说明了如何使用 AWS 最终用户消息社交来启用 Amazon Connect 作为关联 WhatsApp 企业账户的事件目的地。这使系统能够导入您的 WhatsApp 电话号码。

 您可以使用[AWS 最终用户消息社交控制台](https://console.aws.amazon.com/social-messaging/)或 AWS CLI 来完成此任务。要使用 AWS CLI，请参阅[https://docs.aws.amazon.com/connect/latest/APIReference/API_ImportPhoneNumber.html](https://docs.aws.amazon.com/connect/latest/APIReference/API_ImportPhoneNumber.html)《*Amazon Connect API 参考*》和[https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_PutWhatsAppBusinessAccountEventDestinations.html](https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_PutWhatsAppBusinessAccountEventDestinations.html)《*AWS 最终用户消息社交 API 参考*》。

以下几个步骤说明了如何使用该控制台。

**要使用 控制台**

1. 登录 AWS 最终用户消息社交控制台，网址为[https://console.aws.amazon.com/social-messaging/](https://console.aws.amazon.com/social-messaging/)。

1. 在导航窗格中，选择**WhatsApp 企业账户**，然后选择所需的账户。

1. 在**事件目标**选项卡上，选择**编辑目标**。

1.  对于**目标类型**，选择 **Amazon Connect**。

1.  对于 **Connect 实例**，请从下拉列表中选择您的 Amazon Connect 实例。

1.  对于**角色 ARN**，请选择一个 IAM 角色，该角色会授予传递消息和事件以及导入电话号码的权限。对于示例 IAM 策略，请参阅《AWS 最终用户社交消息用户指南》**中的[将消息和事件目标添加到 AWS 最终用户社交消息中](https://docs.aws.amazon.com/social-messaging/latest/userguide/managing-event-destinations-add.html#managing-event-destinations-amazon-connect-policies)。  

1. 选择**保存更改**。

   这样会开始将电话号码导入 Amazon Connect 的过程。

   该操作完成后，该号码将显示在 Amazon Connect 管理员网站中。

**查看号码**
   + 在导航窗格上，选择**渠道**，然后再选择**电话号码**。

     显示所有 WhatsApp 号码的 “**活动频道**” **WhatsApp**列。  
![\[显示号码的 “电话号码” 页面。 WhatsApp\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/whats-app-imported-number.png)

## 步骤 2：在您的电话号码上配置入站联系流
<a name="inbound-contact-flow"></a>

您可以创建用于 WhatsApp 电话号码的入站联系流，也可以重复使用现有流程。如果您重复使用某个流，则可以添加 `CheckContactAttribute` 数据块并为该流启用分支。该屏蔽允许您将 WhatsApp 联系人发送到特定队列或采取其他操作。

有关构建联系流的更多信息（包括互动式消息和富链接预览），请参阅本节后面的 [WhatsApp Amazon Connect 的商业消息功能和限制](whatsapp-messaging-capabilities.md)。

以下几组步骤说明了如何配置入站联系流并向该流中添加 `CheckContactAttribute` 数据块。

**配置流**

1. 在以下位置启动 Amazon Connect 控制台 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)

1. 在导航窗格上，选择**渠道**，然后再选择**电话号码**。

1. 选择 WhatsApp 数字，然后选择 “**编辑”**。

1. 在**流/IVR** 下，选择您更新的流。  
![\[“编辑” 页面的联系流程/IVR 部分显示了 WhatsApp 流程。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/whatsapp-flow-ivr.png)

1. 选择**保存**。

**添加 CheckContactAttribute 数据块**

1. 请按照[前面部分中](#enable-connect-destination)的步骤 1–4 执行操作。

1. 打开流的**属性**页面。

1. 在**要检查的属性**部分，将**命名空间**设置为**分段属性**，并将**键**设置为**子类型**。有关分段属性的更多信息，请参阅本指南后面的 [SegmentAttributes](ctr-data-model.md#segmentattributes)。

1. 在 “**要检查的条件**” 部分中，将**条件**设置为 “**等于**”，**将连接**值**设置为：WhatsApp**。

1. 选择**保存**。

## 步骤 3：发送和接收测试消息
<a name="send-receive-test-messages"></a>

在此步骤中，您将使用联系人控制面板 (CCP) 和移动电话发送和接收 WhatsApp 测试消息。

**测试集成**

1. 在 CCP 中将您的状态设置为**可用**。

1.  WhatsApp 在移动电话上使用，输入之前添加的电话号码开始对话。

   下图显示了一条带有**选项**的消息，以及由此产生的选项列表。  
![\[手机屏幕，其中显示了一条示例消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/whatsapp-options-results.png)

## 后续步骤：准备上线
<a name="whatsapp-next-steps"></a>

在您测试集成之后，我们建议您在 WhatsApp 消息渠道中添加以下特性和功能。

### 添加 Amazon Connect 功能
<a name="add-features"></a>

以下列表中的链接将带您了解有关 Amazon Connect 功能的信息，您可以将这些功能添加到您的客户和座席体验中。
+  了解有关 [WhatsApp Amazon Connect 的商业消息功能和限制](whatsapp-messaging-capabilities.md)的更多信息。
+  [让客户能够在 Amazon Connect 中恢复聊天对话](chat-persistence.md) – 客户可以继续之前的对话，同时保留上下文、元数据和转录。客户回到聊天时无需重复之前的话，座席可以访问整个对话历史记录。
+  [创建供 Amazon Connect 中的聊天和电子邮件联系人使用的快速响应](create-quick-responses.md) – 为座席提供对常见客户询问的预先撰写的响应，供他们在与客户聊天时使用。快速响应使座席可以更快地响应客户。

### 添加入口点
<a name="add-entry-points"></a>

以下列表中的链接将带您了解有关添加不同类型客户入口点的信息。
+ 切入点：[引导潜在客户和客户进行业务消息对话的 5 种方法](https://business.whatsapp.com/blog/messaging-app-entry-points)（WhatsApp博客文章） 
+  二维码：[管理您的 WhatsApp 企业平台二维码](https://business.facebook.com/business/help/890732351439459)（Meta 帮助文章） 
+  Click-to-WhatsApp广告：在[广告管理器 WhatsApp 中创建可点击的广告](https://business.facebook.com/business/help/447934475640650?id=371525583593535)（Meta 帮助文章） 

### 在您的电话号码中添加显示名称
<a name="add-display-name"></a>

要添加客户看到的经过验证的显示名称，请在 Meta 帮助中查看[关于 WhatsApp 企业显示名称](https://business.facebook.com/business/help/338047025165344)。

### 扩展流量
<a name="scale-traffic"></a>

在将实时流量引 WhatsApp 入集成后，我们建议您监控以下配额。

**Amazon Connect 配额**  
有关默认配额以及提高默认配额的更多信息，请参阅 [Amazon Connect 服务配额](amazon-connect-service-limits.md)。
+ [每个实例的并发活动聊天数](amazon-connect-service-limits.md#concurrent-active-chats)配额。有关监控此配额的信息，请参阅[使用监控您的 Amazon Connect 实例 CloudWatch](monitoring-cloudwatch.md)。
+ [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) 限制配额。
+ [SendChatIntegrationEvent](https://docs.aws.amazon.com/connect/latest/APIReference/API_SendChatIntegrationEvent.html) 限制配额。
+ `SendIntegrationEvent` 限制配额。AWS 最终用户消息社交使用的一种仅限权限的 API，用于发布入站 WhatsApp 事件。

**最终用户社交消息配额**  
AWS 最终用户消息社交对多条消息 APIs强制执行速率限制。监控以下内容 APIs ，查看是否需要更改一个或多个配额。这些链接会带您进入 *AWS 最终用户社交消息 API 参考*。
+  [SendWhatsAppMessage](https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_SendWhatsAppMessage.html)
+  [PostWhatsAppMessageMedia](https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_PostWhatsAppMessageMedia.html)
+  [GetWhatsAppMessageMedia](https://docs.aws.amazon.com/social-messaging/latest/APIReference/API_GetWhatsAppMessageMedia.html)

有关增加 AWS 最终用户社交消息配额的更多信息，请参阅《AWS 最终用户社交消息用户指南》**中的以下主题：
+ [AWS 最终用户社交消息的配额](https://docs.aws.amazon.com/social-messaging/latest/userguide/quotas.html)
+ [提高消息对话限制 WhatsApp](https://docs.aws.amazon.com/social-messaging/latest/userguide/increase-message-limit.html)
+ [提高消息吞吐量 WhatsApp](https://docs.aws.amazon.com/social-messaging/latest/userguide/increase-message-throughput.html)

## 对常见问题进行排查
<a name="whatsapp-troubleshooting"></a>

使用以下信息对 WhatsApp集成的常见问题进行故障排除。

**Topics**
+ [无法在您的 Amazon Connect 实例中看到导入的电话号码](#no-imported-number)
+ [来自客户的入站消息未送达](#whatsapp-messages-not-delivered)

### 无法在您的 Amazon Connect 实例中看到导入的电话号码
<a name="no-imported-number"></a>

如果您导入的号码未能显示在 Amazon Connect 管理员网站上，请按照以下步骤操作：
+ 确保事件目标 IAM 角色具有必要的权限。有关更多信息，请参阅 [步骤 1：启用 Amazon Connect 作为事件目标](#enable-connect-destination)。
+ 查看是否需要提高*每个实例的电话号码数*配额。有关更多信息，请参阅 [Amazon Connect 服务配额](amazon-connect-service-limits.md)。
+ 要将关联的 WhatsApp 企业账户重新分配给其他 Amazon Connect 实例，您必须先释放从原始 Amazon Connect 实例导入的电话号码。电话号码发布后，您可以将关联的 WhatsApp 企业账户上的活动目的地更新为另一个 Amazon Connect 实例。
**重要**  
请勿发布处理实时客户流量的号码。相反，应[申请新的电话号码](https://docs.aws.amazon.com/connect/latest/adminguide/claim-and-manage-phonenumbers.html)。
+ 为了帮助确定导入问题的原因，请在 CloudTrail 日志中搜索`ImportPhoneNumber`事件并查看错误详情。如果 `ImportPhoneNumber` 调用成功，您可以调用 `DescribePhoneNumber` 以获取其他错误详情。

如果您进行了修复，则必须重新导入相应电话号码。为此，请重复[步骤 1：启用 Amazon Connect 作为事件目标](#enable-connect-destination)。

### 来自客户的入站消息未送达
<a name="whatsapp-messages-not-delivered"></a>

如果 WhatsApp 入站邮件停止传送，请在 AWS CloudTrail 日志中`SendChatIntegrationEvent`搜索错误详情。`SendIntegrationEvent`

您还可以检查以下常见情境：
+ 确保您在 AWS 最终用户消息社交中关联的 WhatsApp 企业账户已启用 Amazon Connect 事件目的地。
+ 确保您的事件目标 IAM 角色具有必要的权限。有关更多信息，请参阅本部分前面的[步骤 1：启用 Amazon Connect 作为事件目标](#enable-connect-destination)。如果 API CloudTrail 引发`AccessDeniedException`错误，则您的角色配置不正确。`SendIntegrationEvent`
+ 确保您的 WhatsApp 电话号码成功导入到您的 Amazon Connect 实例，并且该号码具有关联的入站联系流程。有关更多信息，请参阅 [步骤 2：在您的电话号码上配置入站联系流](#inbound-contact-flow)。
+ 入站消息已被删除，因为它们尚不受支持。有关更多信息，请参阅 [WhatsApp Amazon Connect 的商业消息功能和限制](whatsapp-messaging-capabilities.md)。

# WhatsApp Amazon Connect 的商业消息功能和限制
<a name="whatsapp-messaging-capabilities"></a>

 WhatsApp 业务消息集成提供以下功能：
+ 文本消息
+ 交互式消息。有关更多信息，请参阅 [在聊天中为客户添加 Amazon Lex 互动消息](interactive-messages.md)。
+ 带有丰富链接预览的消息
+ 已发送和阅读企业消息的回执
+ 附件

## 限制
<a name="whatsapp-messaging-limitations"></a>

将 WhatsApp 企业消息与 Amazon Connect 集成时，请注意以下限制：

**投递回执限制**
+ 不支持客户消息的已读回执。
+ 不支持客户消息的投递回执。中显示的配送收据 WhatsApp 表示 WhatsApp 已收到消息，而不是 Amazon Connect。



**文本消息限制**
+ 不支持来自客户的超过 1024 个字符的入站文本消息。



**不受支持的消息类型**
+ 不支持由客户发送的入站联系人消息。
+ 不支持由客户发送的入站位置消息。
+ 不支持由客户发送的反应消息。
+ 不支持由客户发送的回复消息。新消息内容是在没有回复上下文的情况下发送的。
+ 不支持接收客户已删除消息的消息状态。



**附件限制**
+ 不支持发起新联系或对话时来自客户的所有附件。客户只能在现有联系期间发送附件。
+ 不支持来自客户超过 20MB 的附件。
+ 不支持带字幕的附件。Amazon Connect 会删除所有字幕并发送附件。
+ 不支持贴纸附件。

# 设置应用程序内通话、网络通话、视频通话和屏幕共享功能
<a name="inapp-calling"></a>

 Amazon Connect 应用内、网络和视频通话功能使您的客户无需离开您的网络或移动应用程序即可与您联系。您可以使用这些功能将上下文信息传递给 Amazon Connect。这使您能够根据客户的配置文件或其他信息（例如先前在应用程序中执行的操作）等属性，对客户体验进行个性化设置。

## 需要了解的重要事项
<a name="inapp-calling-important"></a>
+ 在视频通话或屏幕共享会话期间，即使客户处于等待状态，座席仍然能够看到客户的视频或屏幕共享。处理个人身份信息（PII）是客户的责任。如果您要更改此行为，可以构建一个自定义 CCP 和通信小部件。有关更多信息，请参阅 [将应用内通话、Web 通话、视频通话和屏幕共享原生集成到您的应用程序中](config-com-widget2.md)。

## 通信小部件：将聊天、语音和视频全部配置到一个地方
<a name="one-page"></a>

要设置应用内通话、网络通话和视频通话，您可以使用**通信小部件**页面。它支持聊天、语音、视频和屏幕共享。下图显示了为所有这些选项配置页面时的**通信选项**部分。

![\[“创建通信小部件”页面的“通信选项”部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/comm-widget-all.png)


## 多用户应用内通话、Web 通话和视频通话
<a name="multi-user"></a>

您最多可以在一个正在进行的或预定的 Web 通话、应用内通话或视频通话中再添加四名用户，达到总共六个参与者：座席、第一个用户和四个其他参与者（用户或座席）。

例如，为了帮助完成一项抵押贷款交易，您可以让座席和客户、客户的配偶、一名翻译，甚至一位主管（也就是另一位座席）同时加入通话，以快速解决任何问题。

要了解如何启用多用户 Web、应用程序内和视频通话，请参阅[启用多用户应用内通话、Web 通话和视频通话](enable-multiuser-inapp.md)。

## 如何设置应用程序内通话、网络通话、视频通话和屏幕共享
<a name="inapp-options"></a>

有两种方法可以将 Amazon Connect 应用程序内通话、网络通话和视频通话以及屏幕共享嵌入到您的网站或移动应用程序中：
+ 选项 1：[配置 out-of-the-box通信小部件](config-com-widget1.md)。您可以使用界面生成器自定义字体和颜色，并保护控件，使其只能从您的网站启动。
+ 选项 2：[将应用程序内通话、网络通话和视频通话原生集成到您的移动应用程序中](config-com-widget2.md)。选择此选项可从头开始构建通信小部件并将其与您的移动应用程序或网站集成。使用 Amazon Connect APIs 和 S Amazon Chime DK 客户端 APIs 以原生方式集成到您的移动应用程序或网站中。

**注意**  
如果您有定制的座席桌面，则无需为了 Amazon Connect 应用内和 Web 通话功能而对该桌面进行任何修改。但是，您需要[集成视频通话和屏幕共享](integrate-video-calling-for-agents.md)。

# 在 Amazon Connect 中配置 out-of-the-box通信小工具
<a name="config-com-widget1"></a>

使用此选项为桌面和移动[浏览器](connect-supported-browsers.md#browsers-inapp)创建通信小部件。在此过程结束时，Amazon Connect 会生成一个自定义 HTML 代码片段，您可以将其复制到网站的源代码中。

1. 使用 Amazon Connect 管理员帐户或在其安全配置文件中具有 “**渠道和流程**”、“**通信” 控件-“创建**” 权限的用户帐户登录管理网站。

1. 在 Amazon Connect左侧导航菜单中，选择**频道**、**通信小部件**。

1. 此向导将引导您完成以下三个步骤。

## 步骤 1：选择沟通渠道
<a name="widgetdetails"></a>

1. 在**通信小部件**页面上，输入通信小部件的**名称**和**描述**。
**注意**  
在 Amazon Connect 实例中创建的每个通信小部件的名称都必须是唯一的。

1. 在**通信选项**部分，选择客户如何与您的小部件互动。下图显示了允许客户进行网络通话、视频通话和屏幕共享的选项。  
![\[通信小部件页面配置了网络通话、视频通话和屏幕共享功能。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/comm-widget-page-call.png)

1. 在**网络通话**部分，选择是否为客户启用视频和屏幕共享体验。上图显示了客户可以查看座席视频、打开他们的视频以及允许座席和客户共享屏幕的选项。有关设置屏幕共享限制的信息，请参阅 [启用屏幕共享的网址限制](screen-sharing-url-restriction.md)。

1. 选择 **保存并继续**。

## 步骤 2：自定义小部件
<a name="customizewidget"></a>

当您选择这些选项时，小部件预览会自动更新，以便您看到客户的体验效果。

![\[通信小部件的预览。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/netra-call-preview.png)


**定义小部件访问按钮样式**

1. 通过输入十六进制值（[HTML 颜色代码](https://htmlcolorcodes.com/)）来选择按钮背景的颜色。

1. 选择**白色**或**黑色**作为图标颜色。无法自定义图标颜色。

**自定义显示名称和样式**

1. 提供标题消息和颜色以及小部件背景颜色的值。

1. **徽标 URL**：从 Amazon S3 存储桶或其他在线来源向徽标横幅插入一个 URL。
**注意**  
如果该徽标来自 Amazon S3 存储桶以外的在线来源，则自定义页面中的通信小部件预览将不会显示徽标。只有当您的页面上安装了自定义通信小部件后，徽标才会显示。

   横幅的格式必须为 .svg、.jpg 或 .png。图像可以是 280 px（宽）x 60 px（高）。任何大于这些尺寸的图像都将被缩放，以适应 280x60 徽标组件空间。

   1. 有关如何将文件（如徽标横幅等）上传到 S3 的说明，请参阅《Amazon Simple Storage Service 用户指南》**中的[上传对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)。

   1. 确保正确设置了图像权限，以便通信小部件访问图像。有关如何公开访问 S3 对象的信息，请参阅《设置网站访问权限》**主题中的[第 2 步：添加存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html#bucket-policy-static-site)。

## 步骤 3：为小部件添加您的域
<a name="widgetdomain"></a>

通过此步骤，您可以保护通信小部件，使其只能从您的网站启动。

1. 输入您要放置通信小部件的网站域。通信小部件仅会在此步骤中选择的网站上加载。

   选择**添加域**，添加最多 50 个域。  
![\[“添加域”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-add-domain.png)
**重要**  
仔细检查您的网站 URLs 是否有效且不包含错误。请添加以 https:// 为开头的完整 URL。
建议您在生产网站和应用程序中使用 https://。

1. 在**为您的通信小部件请求添加安全性**下，要获得最快的设置体验，请选择**否，我会跳过**。

   建议选择**是**，以便验证用户是否经过身份验证。有关更多信息，请参阅 [在 Amazon Connect 中为应用程序内通话、网络通话和视频通话提供客户体验的个性化体验](optional-widget-steps.md)。

1. 选择 **保存并继续**。

   成功了！您的小部件已创建。复制生成的代码，然后将其粘贴到网站中要显示通信小部件的每个页面上。

## 让您的座席能够进行应用内通话、网络通话、视频通话和屏幕共享
<a name="agent-cx-cw"></a>

要使座席能够使用视频通话和屏幕共享，请为其安全配置文件分配**联系人控制面板（CCP）**、**视频通话- 访问**权限。

 Amazon Connect 代理工作区支持 Amazon Connect 应用内通话、网络通话、视频通话以及屏幕共享。您可以使用与电话和聊天相同的配置、路由、分析和座席应用程序。要开始，唯一的步骤就是为座席的安全配置文件授予视频通话和屏幕共享权限。

对于自定义座席桌面，无需更改 Amazon Connect 应用程序内呼叫和 Web 呼叫。启用具有视频通话权限的座席安全配置文件，然后按照以下指南将视频通话和屏幕共享集成到座席桌面。

## 客户端设备如何发起应用内通话或网络通话
<a name="diagram-option1"></a>

下图显示了客户端设备（移动应用程序或浏览器）发起应用内通话或网络通话的事件顺序。

![\[显示客户端设备如何发起通话的概念图。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/netra-gs-diagram-option1.png)


1. （可选）您可以传递在网站上捕获的属性，并使用 JSON Web 令牌（JWT）对其进行验证。

1. 客户点击您的网站或移动应用中的通信小部件。

1. 通信控件 Amazon Connect 通过传递 JWT 中包含的属性来启动 Web 调用。

1. 联系到达流，被路由，然后进入队列。

1. 座席接受该联系。

1. （可选）如果为客户和座席启用了视频，他们就可以开始播放视频了。

## 更多信息
<a name="cw-more-resources"></a>

有关应用内通话、网络通话和视频通话功能要求的更多信息，请参阅以下主题：
+ [Amazon Connect 中应用程序、网络通话和视频通话对座席工作站的要求](videocalling-networking-requirements.md)
+ [提供应用内、网络和视频通话功能的受支持的浏览器和移动操作系统](connect-supported-browsers.md#browsers-inapp) 

# 将应用内通话、Web 通话、视频通话和屏幕共享原生集成到您的应用程序中
<a name="config-com-widget2"></a>

将 Amazon Connect 应用内通话、Web 通话、视频通话和屏幕共享原生集成到您的应用程序中

1. 使用 Amazon Connect [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API 创建联系人。

1. 然后使用 API 调用返回的详细信息使用[适用于 iOS](https://github.com/aws/amazon-chime-sdk-ios)、[Andro](https://github.com/aws/amazon-chime-sdk-android) id 或的 Amazon Chime 客户端库加入通话[JavaScript](https://github.com/aws/amazon-chime-sdk-js)。

有关创建额外参与者的信息，请参阅[启用多用户应用内通话、Web 通话和视频通话](enable-multiuser-inapp.md)。

有关示例应用程序，请参阅以下 Github 存储库：[amazon-connect-in-app-调用](https://github.com/amazon-connect/amazon-connect-in-app-calling-examples)示例。

**Topics**
+ [客户端设备如何发起应用内通话或网络通话](#diagram-option2)
+ [开始使用](#diagram-option2-gs)
+ [选项步骤](#optional-steps)

## 客户端设备如何发起应用内通话或网络通话
<a name="diagram-option2"></a>

下图显示了客户端设备（移动应用程序或浏览器）发起应用内通话或网络通话的事件顺序。

![\[显示客户端设备如何发起通话的概念图。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/netra-gs-diagram.png)


1. 客户使用客户端应用程序（网站或应用程序）发起应用内通话或网络通话。

1. 客户端应用程序（网站或移动应用程序）或 Web 服务器使用 Amazon Connect [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API 启动联系人，向其传递任何属性或上下文 Amazon Connect。

1. 客户端应用程序使用步骤 2 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)中返回的详细信息加入呼叫。

1. （可选）客户端使用 [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)API 接收用于通过 API 发送 DTMF 的[SendMessage](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html)。`ConnectionToken`

1. 联系到达流，再根据流进行路由，然后进入队列。

1. 座席接受该联系。

1. （可选）如果为客户和座席启用了视频，他们就可以开始播放视频了。

1. （可选-未显示在图表中）可以使用[CreateParticipant](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipant.html)和添加其他参与者[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) APIs。

## 开始使用
<a name="diagram-option2-gs"></a>

以下是入门的高级步骤：

1. 使用 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API 创建联系人。该 API 会返回 Amazon Chime SDK 客户端加入通话所需的全部详细信息。

1. 使用返回的配置来实例化 Amazon Chime 软件开发工具包`MeetingSessionConfiguration`客户端对象。[StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)

1. 使用在步骤 2 中创建的 `MeetingSessionConfiguration`，来初始化 Amazon Chime SDK 客户端 `DefaultMeetingSession`，从而创建一个客户端会议会话。
   + iOS

     ```
     let logger = ConsoleLogger(name: "logger") 
     let meetingSession = DefaultMeetingSession(
         configuration: meetingSessionConfig, 
         logger: logger
     )
     ```
   + Android

     ```
     val logger = ConsoleLogger()
     val meetingSession = DefaultMeetingSession(
         configuration = meetingSessionConfig,
         logger = logger,
         context = applicationContext
     )
     ```
   + JavaScript

     ```
     const logger = new ConsoleLogger('MeetingLogs', LogLevel.INFO);
     const deviceController = new DefaultDeviceController(logger);
     const configuration = new MeetingSessionConfiguration(
         meetingResponse, 
         attendeeResponse
     );
     const meetingSession = new DefaultMeetingSession(
         configuration, 
         logger, 
         deviceController
     );
     ```

1. 使用 `meetingSession.audioVideo.start()` 方法加入有音频的 WebRTC 联系。
   + iOS/Android

     ```
     meetingSession.audioVideo.start()
     ```
   + JavaScript

     ```
     await meetingSession.audioVideo.start();
     ```

1. 使用 `meetingSession.audioVideo.stop()` 方法挂断 WebRTC 联系。
   + iOS/Android

     ```
     meetingSession.audioVideo.stop()
     ```
   + JavaScript

     ```
     meetingSession.audioVideo.stop();
     ```

## 选项步骤
<a name="optional-steps"></a>

有关其他操作和全面的 API 文档，请参阅特定于平台的 API 概述指南：
+ **iOS**：[API 概述](https://aws.github.io/amazon-chime-sdk-ios/guides/api_overview.html)
+ **Android**：[API 概述](https://aws.github.io/amazon-chime-sdk-android/guides/api_overview.html)
+ **JavaScript**: [API 概述](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/03_API_Overview.md)

### 发送 DTMF 音
<a name="send-dtmf-tones"></a>

要向通话发送 DTMF，需要两个 Amazon Connect 参与 APIs 者服务：[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)和。[SendMessage](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html)

**注意**  
`contentType`因为 SendMessage API 必须是`audio/dtmf`。

1. 调用[CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)以检索`ConnectionToken`。 (`ParticipantToken`是调用此 API 所必需的。 你可以在[StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)回复中找到它。）

1. 使用`ConnectionToken`，调[SendMessage](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html)用发送 DTMF 数字。

### 选择音频设备
<a name="select-audio-devices"></a>

要选择音频 input/output 设备，您可以使用适用于安卓和 iOS 的 Amazon Chime SDK 客户端中的方法或适用于 iOS 的本机 [iOS 功能](https://developer.apple.com/documentation/avkit/avroutepickerview)。

**iOS/安卓**

```
meetingSession.audioVideo.listAudioDevices()
meetingSession.audioVideo.chooseAudioDevice(mediaDevice)
```

**JavaScript**

```
await meetingSession.audioVideo.listAudioInputDevices();
await meetingSession.audioVideo.listAudioOutputDevices();
await meetingSession.audioVideo.startAudioInput(device);
await meetingSession.audioVideo.chooseAudioOutput(deviceId);
```

### 将音频静音和取消静音
<a name="mute-unmute-audio"></a>

对于静音和取消静音，请使用 `meetingSession.audioVideo.realtimeLocalMute()` 和 `meetingSession.audioVideo.realtimeLocalUnmute()`。

**iOS/安卓**

```
meetingSession.audioVideo.realtimeLocalMute()
meetingSession.audioVideo.realtimeLocalUnmute()
```

**JavaScript**

```
meetingSession.audioVideo.realtimeMuteLocalAudio();
meetingSession.audioVideo.realtimeUnmuteLocalAudio();
```

### 开始自拍视频
<a name="start-self-video"></a>

要开始自拍视频，请使用 `meetingSession.audioVideo.startLocalVideo()`。有关如何枚举和选择特定设备的更多信息，请参阅客户端库 API 指南。

**iOS/安卓**

```
meetingSession.audioVideo.startLocalVideo()
```

**JavaScript**

```
meetingSession.audioVideo.startLocalVideoTile();
```

### 停止自拍视频
<a name="stop-self-video"></a>

要停止自拍视频，请使用 `meetingSession.audioVideo.stopLocalVideo()`。

**iOS/安卓**

```
meetingSession.audioVideo.stopLocalVideo()
```

**JavaScript**

```
meetingSession.audioVideo.stopLocalVideoTile();
```

### 启用座席视频
<a name="enable-agent-video"></a>

要允许在应用程序中接收和加载座席的视频，请使用 `meetingSession.audioVideo.startRemoteVideo()`。您还需要实现视频图块观察器，并将视频图块绑定到显示视图。

**iOS/安卓**

```
meetingSession.audioVideo.startRemoteVideo()
// Implement VideoTileObserver to handle video tiles
meetingSession.audioVideo.addVideoTileObserver(observer)
// In videoTileDidAdd callback:
meetingSession.audioVideo.bindVideoView(videoView, tileId: tileState.tileId)
```

**JavaScript**

```
// Remote video is received automatically when available
// Implement AudioVideoObserver to handle video tiles
meetingSession.audioVideo.addObserver(observer);
// In videoTileDidUpdate callback:
meetingSession.audioVideo.bindVideoElement(tileId, videoElement);
```

请参考针对特定平台的 SDK 指南，获取关于实现视频图块的完整详细信息。

### 禁用座席视频
<a name="disable-agent-video"></a>

要禁止在应用程序中接收和加载座席的视频，请使用 `meetingSession.audioVideo.stopRemoteVideo()`。

**iOS/安卓**

```
meetingSession.audioVideo.stopRemoteVideo()
meetingSession.audioVideo.unbindVideoView(tileId)
```

**JavaScript**

```
meetingSession.audioVideo.unbindVideoElement(tileId);
```

### 使用数据消息
<a name="use-data-messages"></a>

如果您需要将任何状态从座席端发送给最终用户，则可以使用[数据消息](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/03_API_Overview.md#9-send-and-receive-data-messages-optional)。例如，当客户处于暂停状态时，您可以向客户的应用程序发送一条数据消息以显示一条消息，让他们知道他们处于暂停状态，并且他们的 video/screen 共享仍在发送中，或者您可以关闭共 video/screen 享。

**iOS/安卓**

```
meetingSession.audioVideo.realtimeSendDataMessage(topic, data, lifetimeMs)
meetingSession.audioVideo.addRealtimeDataMessageObserver(topic, observer)
```

**JavaScript**

```
meetingSession.audioVideo.realtimeSendDataMessage(topic, data, lifetimeMs);
meetingSession.audioVideo.realtimeSubscribeToReceiveDataMessage(topic, callback);
```

### 监听停止事件
<a name="listen-for-stop-events"></a>

您可以通过 `audioVideoDidStop` 观察器来监听某个联系的参与结束所触发的事件。具体的状态码可能因平台而异。

#### 呼叫已达到容量
<a name="call-reaches-capacity"></a>

当超过 6 人尝试加入通话时，超出的人员将收到以下错误消息，并且在其他人离开之前无法加入。
+ **iOS：**`MeetingSessionStatusCode.audioCallAtCapacity` 或 `MeetingSessionStatusCode.audioAuthenticationRejected`
+ **Android：**`MeetingSessionStatusCode.AudioCallAtCapacity` 或 `MeetingSessionStatusCode.AudioAuthenticationRejected`
+ **JavaScript:** `MeetingSessionStatusCode.AudioCallAtCapacity` 或 `MeetingSessionStatusCode.AudioAuthenticationRejected`

#### 参与者已从通话中被移除
<a name="participant-removed-from-call"></a>

当座席将某位参与者从通话中移除，但其他参与者的联系仍在继续，他们将收到以下状态码。请注意，如果移除参与者导致联系结束，则他们将收到此状态或联系结束状态。
+ **iOS：**`MeetingSessionStatusCode.audioServerHungup` 或 `MeetingSessionStatusCode.audioAuthenticationRejected`
+ **Android：**`MeetingSessionStatusCode.AudioServerHungup` 或 `MeetingSessionStatusCode.AudioAuthenticationRejected`
+ **JavaScript:** `MeetingSessionStatusCode.AudioAttendeeRemoved` 或 `MeetingSessionStatusCode.AudioAuthenticationRejected`

#### 联系结束
<a name="contact-ends"></a>

当所有参与者的实际联系完全结束时，他们将收到以下状态码。
+ **iOS：**`MeetingSessionStatusCode.audioCallEnded`
+ **Android：**`MeetingSessionStatusCode.AudioCallEnded`
+ **JavaScript:** `MeetingSessionStatusCode.AudioCallEnded`

# 启用多用户应用内通话、Web 通话和视频通话
<a name="enable-multiuser-inapp"></a>

Amazon Connect 支持在现有通话中添加其他用户以加入应用内通话、网络通话和视频通话。您最多可以在一个正在进行的或预定的应用内通话、Web 通话或视频通话中再添加四名用户，达到总共六个参与者：座席、第一个用户和四个其他参与者（用户或座席）。

## 如何将参与者添加到多用户通话中
<a name="how-to-add-participants"></a>

1. 要启用多用户通话，您需要从 Amazon Connect 控制台启用[增强的多方联系人监控](monitor-conversations.md)。

1. 完成后，您可以利用现有 Amazon Connect [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API 创建联系人，并将此联系人路由给代理。

1. 要添加其他参与者，请先创建一个`ContactId`从 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API 响应传入 API 的[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)参与者。 [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)在原始呼叫者连接到代理之前，不会成功。可以在 `ParticipantDetails.ParticipantCapabilities` 字段中为参与者设置视频和屏幕共享功能。

1. 成功[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)完成后，它将返回[参与者令牌](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html#connect-CreateParticipant-response-ParticipantCredentials)。此令牌可以在`Type`设置为的请求中使用`WEBRTC_CONNECTION`。[CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)响应中包含[ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting)哪些可用来加入会议的 [Amazon Chime SDK 客户端库](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-client-lib.html)为创建的其他参与者创建的会议。按照[集成说明](config-com-widget2.md)进行操作，以允许您的应用程序最终用户加入会议。
**注意**  
[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)如果代理尚未连接到联系人，则返回 Bad Request 错误。有关用户可能试图在连接座席之前加入的业务应用程序，请参阅[处理并发用户加入](#handling-concurrent-joins)。

1. 其他客户可以在[CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)退货后随时连接。参与者加入后，[所有其他语音和录音行为都与多方通话功能类似](multi-party-calls.md)。如果请求中启用了新参与者的视频和屏幕共享功能，则他们可以启用他们的视频和屏幕共享。[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)
**注意**  
任何时候总共只有 6 名参与者（客户和座席）可以加入正在进行的通话中。如果在加入会议过程中发生了添加超出限制的额外参与者的操作，则 Amazon Chime SDK 客户端库会返回一个状态码，指示该通话已满员。

1. 在参与者连接到通话之后，如果他们正常断开连接，或者非正常断开连接持续了一段预配置的时间，则他们的参与者凭证将不再有效。如果客户端库`onAudioVideoDidStop`旁听者收到指示与会者不再有效的状态码，则应用程序可以触发[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)与[CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)您的业务后端的新呼叫以重新加入该呼叫。

1. 每增加一个用户连接， Amazon Connect 就会创建一个新的联系人和[联系人记录](ctr-data-model.md)。所有其他联系人均已 PreviousContactId 设置为 InitialContactId （即由 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API 创建的联系人），以便将其追踪到原始联系人。每个联系记录具有以下特点：
   + 有一个**” InitiationMethod “:” WEBR** TC\$1API”
   + 包含以下分段属性：

     ```
        "SegmentAttributes": {
           "connect:Subtype": {
             "ValueString": "connect:WebRTC"
           }
         },
     ```

   此外，每个联系记录都包含 `CreateParticipant` 中提供的显示名称。对于任何额外用户联系，不会填充座席信息。这是为了避免座席信息重复。

   下图说明了在网络、应用程序内或视频通话中添加多个参与者和代理的场景中，如何映射上一个和下一个联系 IDs 人。  
![\[该图显示了如何映射多方 IDs WebRTC 呼叫的联系人\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/multiparty-webrtc-contact-mapping.png)

## 处理并发用户加入
<a name="handling-concurrent-joins"></a>

企业可能希望创建允许用户以任何顺序、在任何时间加入的应用程序。例如，您的应用程序可能会向多个用户发送一封包含外部预约 ID 的链接的电子邮件，该链接应在预定时间被用户用于加入通话。为实现此行为，业务后端必须确保：
+ 第一个加入的用户会触发 StartWebRTCContact 请求。
+ 所有其他用户都使用 CreateParticipant 和， CreateParticipantConnection但**仅在第一个用户连接到代理之后**。

本节描述一个可能的实现，该实现假设您的业务后端包含一个存储（如 DynamoDB），用于保存关于预约会议的元数据。请注意，预约不是示例实现的功能 Amazon Connect，而是其中的一项功能。

当用户导航到该页面时，他们应该向后端发送一个请求。后端检查：
+ 用户是否能够开始预约，以及时间是否正确。
+  Amazon Connect 联系人是否已通过呼叫创建[StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)。

**如果尚未创建联系人**，则客户应使用自定义[流程](connect-contact-flows.md)调用 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API，并提供一个[属性，该属性](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html#connect-StartWebRTCContact-request-Attributes)表示预计将加入呼叫的相应座席的座席队列。该流应包含一个[设置工作队列](set-working-queue.md)数据块，该数据块配置为使用属性中提供的座席队列。然后，该流应以[转接到队列](transfer-to-queue.md)数据块来终止。在调用 API 之前，后端应以原子方式更新存储区，将调用从“无”状态移至“正在创建”状态，并处理任何并发修改异常。

[StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)应将来自的凭证退还给客户，他们应立即加入通话。应在业务存储中将该联系标记为“已创建”，并保存其联系 ID。**此业务 API 需要在所有可能加入的参会者之间实现同步**。这可以通过使用数据库提供的原子操作来实现。

**如果联系处于“正在创建”状态**，则应该将该状态返回给额外用户，显示相关信息，并在短暂等待后重新尝试加入。

**如果联系人已创建**：他们应检索联系人 ID，然后调用 [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)API。业务后端应查找 **`Contact.AgentInfo.ConnectedToAgentTimestamp`** 字段。如果该字段不存在，则表示第一个用户尚未连接到座席，并且额外用户应显示相关信息，在短暂等待后重新尝试。

如果该字段存在，则后端应调用 [CreateParticipant[CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)，然后调用 get [ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting)，如前几节所述。

后端工作流应看起来像下面这样。

![\[处理并发用户加入的后端流示图\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/multiparty-backend-flow.png)


您可以参阅 [Amazon Connect 应用程序内调用示例](https://github.com/amazon-connect/amazon-connect-in-app-calling-examples/tree/main/Web) GitHub 进行实施。

**座席不会使用同一个网站加入**。座席应在[联系人控制面板](launch-ccp.md)中将其状态设置为**可用**。当第一个客户加入时，系统会自动呼叫座席。

## 计费
<a name="multiuser-billing"></a>

额外参与者的计费方式与通话中初始客户和任何座席的现有计费方式相同。音频、视频和屏幕共享都会产生各自的、按参与者计费的费用。

## 等待行为
<a name="multiuser-hold-behavior"></a>

在视频通话或屏幕共享会话期间，即使参与者处于等待状态，座席也能看到该参与者的视频或共享的屏幕。参与者有责任相应地处理个人身份信息。如果使用原生的 CCP 应用程序，当任何非座席参与者被置于等待时，座席的视频将被禁用。如果您要更改此行为，可以构建一个自定义 CCP 和通信小部件。

有关更多信息，请参阅 [将应用内通话、Web 通话、视频通话和屏幕共享原生集成到您的应用程序中](config-com-widget2.md)。

## 限制
<a name="multiuser-limitations"></a>

在创建额外的应用内通话、Web 通话、视频通话和屏幕共享参与者时，存在以下限制：
+ 如果原始联系在创建时将客户的视频能力设置为**无**，则额外参与者无法将其视频能力设置为**发送**。

# 在 Amazon Connect 中为应用程序内通话、网络通话和视频通话提供客户体验的个性化体验
<a name="optional-widget-steps"></a>

本主题中的步骤是可选的，但建议使用。它们使您能够根据客户之前在应用中执行的操作来个性化他们的体验。此选项可在发起新通话时为您提供更多控制选项，包括将上下文信息作为属性传递。

 完成这些步骤后，您需要与网站管理员合作设置您的 Web 服务器，以便为新呼叫发放 JSON Web 令牌 (JWTs)

1. 如果您已经创建了通信小部件，请在**通信小部件**页面上，选择要编辑的小部件。

1. 在**域和安全性**部分中选择**编辑**。

1. 在**为您的通信小部件请求添加安全性**下，选择**是**。  
![\[“是”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-choose-security.png)

1. 选择 **保存并继续**。Amazon Connect 会创建该小部件以及以下内容：
   + Amazon Connect 在下一页提供了 44 个字符的安全密钥，你可以用它来创建。 JWTs
   + Amazon Connect 在通信小部件嵌入脚本中添加了一个回调函数，用于在通话启动时检查 JWT。

     您必须在嵌入式代码段中设置回调函数，如以下示例所示。

     ```
     amazon_connect('authenticate', function(callback) {
       window.fetch('/token').then(res => {
         res.json().then(data => {
           callback(data.data);
         });
       });
     });
     ```

   在下一步中，您将获得一个安全密钥，用于在您的网站上发起的所有通话。请您的网站管理员将您的 Web 服务器设置为 JWTs 使用此安全密钥发布。

1. 选择 **保存并继续**。

1. 复制自定义 HTML 代码片段并将其插入网站的源代码中。

## 替代方法：直接从代码片段中传递联系属性
<a name="pass-attrib-from-code"></a>

**注意**  
虽然这些属性的作用域使用 `HostedWidget-` 前缀，但它们在客户端仍是可变的。如果您需要在联系人流中使用 PII 或不可变数据，请使用 JWT 设置。

以下示例介绍了如何在不启用小部件安全性的情况下直接从代码片段中传递联系属性。

```
<script type="text/javascript">
  (function(w, d, x, id){ /* ... */ })(window, document, 'amazon_connect', 'widgetId');
  amazon_connect('snippetId', 'snippetId');
  amazon_connect('styles', /* ... */);
  // ...
  
  amazon_connect('contactAttributes', {
   foo: 'bar'
  })
<script/>
```

### 在联系流中使用属性
<a name="contact-flow-usage-voice"></a>

[检查联系属性](check-contact-attributes.md)流数据块通过**用户定义**的命名空间来访问这些属性，如下图所示。您可以使用流数据块添加分支逻辑。完整路径是 `$Attribute.HostedWidget-attributeName`。

![\[此图显示了流数据块分支到“有效”和“无效”提示。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/flow-check-contact-attrib.png)


## 复制通信小部件代码和安全密钥
<a name="copy-widget-script4"></a>

在此步骤中，您要确认选择并复制通信小部件的代码，并将其嵌入到您的网站中。您也可以复制用于创建的密钥 JWTs。

### 安全密钥
<a name="widget-security-key4"></a>

使用此 44 个字符的安全密钥从您的 Web 服务器生成 JSON 网络令牌。如果需要更改，您也可以更新或轮换密钥。当您执行此操作时，Amazon Connect 会为您提供一个新密钥，同时保留以前的密钥，直到您替换它。部署新密钥后，您可以返回 Amazon Connect 并删除之前的密钥。

![\[安全密钥。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-security-key.png)


当客户与您网站上的“开始通话”图标进行交互时，通信小部件会向 Web 服务器请求 JWT。提供 JWT 后，小部件会将其包含在最终客户向 Amazon Connect 发出的通话中。然后，Amazon Connect 会使用密钥解密令牌。如果成功，则确认了 JWT 是由您的 Web 服务器发出的，Amazon Connect 会将通话路由到您的联络中心座席。

#### JSON Web 令牌的详细信息
<a name="jwts4"></a>
+ 算法：**HS256**
+ 声明：
  + **订阅**:*widgetId*

    将 `widgetId` 替换为您自己的 widgetId。要查找您的 widgetId，请参阅示例 [通信小部件脚本](add-chat-to-website.md#chat-widget-script)。
  + **iat**：\$1按时发放。
  + **exp**：\$1有效期（最长 10 分钟）。

  \$1有关日期格式的信息，请参阅以下互联网工程任务组 (IETF) 文档：[JSON Web 令牌 (JWT)](https://tools.ietf.org/html/rfc7519)，第 5 页。

下面的代码片段举例说明了如何使用 Python 生成 JWT：

```
payload = {
'sub': widgetId, // don't add single quotes, such as 'widgetId'
'iat': datetime.utcnow(),
'exp': datetime.utcnow() + timedelta(seconds=JWT_EXP_DELTA_SECONDS)
}

header = {
'typ': "JWT",
'alg': 'HS256'
}

encoded_token = jwt.encode((payload), CONNECT_SECRET, algorithm=JWT_ALGORITHM, headers=header) // CONNECT_SECRET is the security key provided by Amazon Connect
```

#### 通信小部件脚本
<a name="chat-widget-script4"></a>

下图显示了您在网站上嵌入 JavaScript 的内容示例，您希望客户能够在这些网站上致电您的联络中心。该脚本会在网站右下角显示小部件。

下图显示了一个在哪里可以找到 widgetId 的示例。

![\[通信小部件脚本。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-code.png)


网站加载时，客户会首先看到**开始**图标。他们选择此图标后，通信小部件将打开，客户就可以呼叫您的座席了。

要随时更改通信小部件，请选择**编辑**。

**注意**  
保存的更改将在几分钟内更新客户体验。保存之前，请确认您的小部件配置。

![\[小部件预览上的编辑链接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chatwidget-call-edit.png)


要更改网站上的小部件图标，您将收到一个新的代码片段，用于直接更新您的网站。

# 针对您的 Amazon Connect Web 通话小部件的其他自定义设置
<a name="more-customizations-web-calling-widget"></a>

您可以在 Web 通话小部件中添加以下额外的自定义设置：
+ 将[背景模糊](#background-blur)应用于客户的视频图块。
+ 将小部件设置为[全屏](#fullscreen-mode)。
+ 选择[默认摄像头](#choose-default-camera)。
+ [调整视频大小](#resize-video)以适合其容器。

以下各节解释自定义设置的详细信息、使用案例以及如何配置它们。您可以通过配置 `WebCallingCustomizationObject` 来管理这些自定义设置。

**Topics**
+ [背景模糊](#background-blur)
+ [全屏模式](#fullscreen-mode)
+ [选择默认摄像头](#choose-default-camera)
+ [调整视频大小](#resize-video)
+ [配置自定义设置对象](#configure-customization-object-web)
+ [支持的选项和限制](#supported-options-web-calling)

## 背景模糊
<a name="background-blur"></a>

此自定义项用于控制客户视频的背景模糊行为。启用后，当视频处于活动状态时，客户的背景会被模糊处理。这有助于保护其在视频通话中可能暴露在背景里的个人信息或私人空间。

要启用背景模糊，请在 `WebCallingCustomizationObject` 中将 `videoFilter.backgroundBlur.option` 设置为 `ENABLED_ON_BY_DEFAULT`。

## 全屏模式
<a name="fullscreen-mode"></a>

使用此自定义项来控制小部件的全屏行为。您可以通过两种方式启用全屏：
+ 向控件添加全屏按钮。客户可以使用该按钮来开启和关闭全屏模式。

  要添加全屏按钮，请将 `fullscreen.displayButton` 设置为 `ENABLED`。

或
+ 将小部件设置为在加载时进入全屏模式。

  要在加载时启用全屏模式，请将 `fullscreen.fullscreenOnLoad` 设置为 `ENABLED`。

当客户需要专注于小部件时（例如在进行屏幕共享期间），使用全屏模式特别有帮助。

您可以单独使用这两个选项，也可以组合使用。

## 选择默认摄像头
<a name="choose-default-camera"></a>

此自定义项允许小部件在客户启用视频时选择默认的摄像头，提供前置或后置摄像头的选项。例如，此功能在远程诊断设备时非常有用。客户可以使用后置摄像头向座席展示设备。

要将后置摄像头设为默认，请将 `devices.defaultCamera` 设置为 `Back`。

## 调整视频大小
<a name="resize-video"></a>

此自定义项控制客户和座席的视频图块在小部件内的缩放方式。例如，视频帧可以调整为填满整个视频图块，或者按比例缩放以适配视频图块（如果视频帧的宽高比与视频图块不匹配，则会留下空白区域）。
+ 要为客户调整视频大小，请将 `videoTile.localVideoObjectFit` 设置为目标值。
+ 要为座席调整视频大小，请将 `videoTile.remoteVideoObjectFit` 设置为目标值。

有关更多信息，请参阅 [支持的选项和限制](#supported-options-web-calling)。

## 配置自定义设置对象
<a name="configure-customization-object-web"></a>

以下示例展示如何为 Web 通话实现可选的自定义功能。有关这些选项的详细说明，请参阅[支持的选项和限制](#supported-options-web-calling)。

您可以实现以下示例中显示的部分或全部字段。当您没有实现某些自定义时，系统将对这些缺失的字段使用默认行为。

```
amazon_connect('webCallingCustomizationObject', { 
        videoFilter: { 
            backgroundBlur: { 
                option: "ENABLED_OFF_BY_DEFAULT" 
            }
        },
        fullscreen: {
            displayButton: "ENABLED",
            fullscreenOnLoad: "DISABLED"
        },
        devices: { 
            defaultCamera: "Front" 
        },
        videoTile: {
            localVideoObjectFit: "cover",
            remoteVideoObjectFit: "cover"
        },
        copyDisplayNameFromAuthenticatedChat: true
});
```

下图展示在非全屏模式下，这些自定义功能的外观效果。

![\[非全屏模式下的自定义功能。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/fullscreenmode.png)


下图展示在全屏模式下，这些自定义功能的外观效果。

![\[全屏模式下的自定义功能。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/nonfullscreenmode.png)


## 支持的选项和限制
<a name="supported-options-web-calling"></a>

下表列出了支持的自定义设置字段和推荐的值限制。


| 自定义布局选项 | Type | 值 | 说明 | 
| --- | --- | --- | --- | 
|  `videoFilter.backgroundBlur.option`  |  字符串  |  `ENABLED_ON_BY_DEFAULT` \$1 `ENABLED_OFF_BY_DEFAULT`  |  设置您的客户的视频图块背景模糊。默认情况下，当您的客户启用视频时，背景模糊过滤器将应用于视频图块。如果您不希望默认启用该过滤器，可以将其设置为 `ENABLED_OFF_BY_DEFAULT`，您的客户仍然可以在小部件的首选页面中手动启用该过滤器。 | 
|  `fullscreen.displayButton`  |  字符串  |  `ENABLED`  |  在小部件的右上角添加一个按钮，使其在浏览器中全屏显示。默认情况下，此按钮不会添加到小部件中，如果要添加此按钮，可以将其设置为 `ENABLED`。 | 
|  `fullscreen.fullscreenOnLoad`  |  字符串  |  `ENABLED`  |  使小部件在浏览器中全屏显示。默认情况下，该小部件将锚定在网页的右下角，将其设置为 `ENABLED` 将使该小部件在浏览器中全屏显示。 | 
|  `devices.defaultCamera`  |  字符串  |  `Front` \$1 `Back`  | 设置客户启用视频时的默认摄像头。这适用于手机或平板电脑使用案例。默认情况下，默认摄像头处于选中状态（[细节](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices)）。（有关更多信息，请参阅 Mozilla 开发者[MediaDevices文档中的:EnumerateDevices () 方法](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices)。） 将其设置为 `Front\|Back` 时，它会选择相应的摄像头（如果有）。 | 
|  `copyDisplayNameFromAuthenticatedChat`  |  布尔值  |  `true` \$1 `false`  | 如果最终客户使用 [Authenticate Customer](authenticate-customer.md) 流块进行身份验证，则将该值设置为 `true` 会将显示名称复制到语音联系。默认值为 `false`。 | 
|  `videoTile.localVideoObjectFit`  |  字符串  |  `fill` \$1 `contain` \$1 `cover` \$1 `none` \$1 `scale-down`  |  在小部件中设置客户的视频图块的 [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) 属性。默认情况下，该值由视频分辨率的宽度和高度决定：如果高度大于宽度，则为 `contain`，否则为 `cover`。有关每个值的详细描述，请参阅 Mozilla 开发者文档中的 [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit)。  此属性仅适用于小部件中客户视频的显示高度和宽度。客户发送给座席的视频的高度和宽度保持不变。  | 
|  `videoTile.remoteVideoObjectFit`  |  字符串  |  `fill` \$1 `contain` \$1 `cover` \$1 `none` \$1 `scale-down`  | 在小部件中设置客户的视频图块的 [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) 属性。默认情况下，该值由视频分辨率的宽度和高度决定：如果高度大于宽度，则为 `contain`，否则为 `cover`。有关每个值的详细描述，请参阅 Mozilla 开发者文档中的 [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit)。  该属性仅适用于小部件中座席视频的显示高度和宽度。  | 

# 使用 Amazon Connect Streams JS 将视频通话和屏幕共享集成到您的自定义座席桌面中
<a name="integrate-video-calling-for-agents"></a>

本主题适用于开发人员。对于自定义座席桌面，您需要进行更改以支持视频通话和屏幕共享。以下是高级步骤。

**注意**  
如果您将 CCP 直接嵌入到自定义座席应用程序中，请确保在使用 [Amazon Connect Streams JS](https://github.com/aws/amazon-connect-streams) 启动 CCP 时，`allowFramedVideoCall` 设置为 true。

1. 使用 [Amazon Connect Streams JS](https://github.com/aws/amazon-connect-streams) 来检查传入的联系是否是 WebRTC 联系。使用联系子类型 `"connect:WebRTC"`，如以下代码示例所示：

   `contact.getContactSubtype() === "connect:WebRTC"`

1. 您可以使用 ` contact contact.getName()` 中的名称字段检索客户显示名称。

## 添加对视频的支持
<a name="support-video"></a>

完成以下步骤，在客户启用视频处理功能时添加对该功能的支持。

1. 要检查联系人是否具有视频功能，请执行以下操作：

   ```
   // Return true if any connection has video send capability
   contact.hasVideoRTCCapabilities()
   
   // Return true if the agent connection has video send capability
   contact.canAgentSendVideo()
   
   // Return true if other non-agent connection has video send capability
   contact.canAgentReceiveVideo()
   ```

1. 要检查座席是否具有处理视频通话的视频权限，请执行以下操作：

   `agent.getPermissions().includes('videoContact');`

1. 要接受视频通话，联系人必须具有视频功能，并且座席必须具有视频权限。

   ```
   function shouldRenderVideoUI() {
       return contact.getContactSubtype() === "connect:WebRTC" &&
       contact.hasVideoRTCCapabilities() &&
       agent.getPermissions().includes('videoContact');
   }
   ```

1. 要加入视频会话，请调用 `getVideoConnectionInfo`：

   ```
   if (shouldRenderVideoUI()) {
      const response = await
      contact.getAgentConnection().getVideoConnectionInfo();
   }
   ```

1. 要构建视频 UI 并加入视频会议会话，请参阅：
   + Amazon Chime 适用于 JavaScript on [的 SDK](https://github.com/aws/amazon-chime-sdk-js) GitHub 
   + [Amazon Chime SDK React 组件库](https://github.com/aws/amazon-chime-sdk-component-library-react)已开启 GitHub

1. 为简单起见，以下代码片段使用了 Amazon Chime SDK React 组件库中的示例。

   ```
   import { MeetingSessionConfiguration } from "amazon-chime-sdk-js";
   import {
     useMeetingStatus,
     useMeetingManager,
     MeetingStatus,
     DeviceLabels,
     useLocalAudioOutput
   } from 'amazon-chime-sdk-component-library-react';
   
   const App = () => (
     <MeetingProvider>
       <MyVideoManager />
     </MeetingProvider>
   );
   
   const MyVideoManager = () => {
       const meetingManager = useMeetingManager();
       if (shouldRenderVideoUI()) {
           const response = await contact.getAgentConnection().getVideoConnectionInfo();
           const configuration = new MeetingSessionConfiguration(
               response.meeting, response.attendee);
           await meetingManager.join(configuration, { deviceLabels: DeviceLabels.Video });
           await meetingManager.start();
       }
       
       function endContact() {
           meetingManager.leave();
       }
   }
   ```

1. 要渲染视频网格，请使用 Amazon Chime SDK React 组件库中的，或者使用自定义界面行为[RemoteVideoTileProvider](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-providers-remotevideotileprovider--page)。[VideoTileGrid](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-components-videotilegrid--page)

1. 要渲染视频预览，可以使用[VideoPreview](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-components-previewvideo--page)和[CameraSelection](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-components-deviceselection-camera-cameraselection--page)组件。要选择或更改摄像头视频，您可以使用 `meetingManager.selectVideoInputDevice` 或 `meetingManager.startVideoInput `（如果会议正在进行中）。

   ```
   const meetingManager = useMeetingManager();
   const { isVideoEnabled } = useLocalVideo();
   if (isVideoEnabled) {
       await meetingManager.startVideoInputDevice(current);
    } else {
       meetingManager.selectVideoInputDevice(current);
   }
   ```

1. 要实现背景模糊，请参阅[useBackgroundBlur](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-hooks-usebackgroundblur--page)。

1. 有关如何构建自定义视频体验的代码示例，请参阅此 Amazon Chime SDK 示例：[Amazon Chime React Meeting demo](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/meeting)。

## 增加对屏幕共享的支持
<a name="support-screen-sharing"></a>

**注意**  
如果您直接在自定义代理应用程序中使用 out-of-box CCP，请确保`allowFramedScreenSharing`在使用 [Amazon Connect Streams JS](https://github.com/aws/amazon-connect-streams) 启动 CCP 时将其设置为 true。`allowFramedScreenSharingPopUp`  
将 `allowFramedScreenSharing` 设置为 true 时，只能在一个窗口或标签页中的一个 CCP 上启用屏幕共享按钮。将 `allowFramedScreenSharingPopUp` 设置为 true 时，当座席选择屏幕共享按钮时，屏幕共享应用程序会在单独的窗口中启动。有关详细信息，请参阅 [Amazon Connect Streams JS](https://github.com/aws/amazon-connect-streams) 文档。

要启用自定义座席桌面上的屏幕共享，请完成以下步骤。

1. 检查联系人是否具有屏幕共享功能。

   ```
   // Return true if any connection has screen sharing send capability
   contact.hasScreenShareCapability()
   
   // Return true if the agent connection has screen sharing send capability
   contact.canAgentSendScreenShare()
   
   // Return true if customer connection has screen sharing send capability
   contact.canCustomerSendScreenShare()
   ```

1. 检查座席是否具有视频权限。

   ```
   agent.getPermissions().includes('videoContact');
   ```

1. 检查座席是否可以为符合条件的联系人启动屏幕共享会话。

   ```
   fun canStartScreenSharingSession() {
       return contactgetContactSubtype() === "connect:WebRTC" &&
       contact.hasScreenShareCapability() &&
       agent.getPermissions().includes('videoContact');
   }
   ```

1. 调用 `startScreenSharing` 以启动屏幕共享会话。这将 `ScreenSharingActivated` 添加到联系中，使您可以在[联系记录](ctr-data-model.md)中进行搜索。

   ```
   contact.startScreenSharing();
   ```

1. 调用 `getVideoConnectionInfo` 以加入会话。如果座席已加入视频会话处理视频，则可以跳过此步骤。

   ```
   if (canStartScreenSharingSession) {
       contact.startScreenSharing();
       const response = await
       contact.getAgentConnection().getVideoConnectionInfo();
   }
   ```

1. 通过使用 Amazon Chime SDK React Components Library 加入会话。有关代码片段，请参见 [添加对视频的支持](#support-video) 中的步骤 6。

1. 使用 Amazon Chime SDK React Components 中的相同[VideoTileGrid](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-components-videotilegrid--page)内容来渲染屏幕共享视频磁贴。有关更多信息，请参阅[useContentShare状态](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-hooks-usecontentsharestate--page)和[useContentShare控件](https://aws.github.io/amazon-chime-sdk-component-library-react/?path=/docs/sdk-hooks-usecontentsharecontrols--page) 

1. 会话结束时调用 `stopScreenSharing`。

   ```
   contact.stopScreenSharing();
   ```

1. 您可以通过订阅以下回拨来接收屏幕共享活动的事件：

   ```
   initScreenSharingListeners() {
       this.contact.onScreenSharingStarted(() => {
           // Screen sharing session started
       });
   
       this.contact.onScreenSharingStopped(() => {
           // Screen sharing session ended
       });
   
       this.contact.onScreenSharingError((error) => {
           // Screen sharing session error occurred
       });
     }
   }
   ```

# 启用屏幕共享的网址限制
<a name="screen-sharing-url-restriction"></a>

您可以管理 URLs 允许您的客户和代理在联系期间共享的内容。这使您能够实现增强的安全性和隐私性。当客户或座席共享未列入许可名单的网址时，他们会收到一条错误消息，屏幕共享视频会自动暂停并变黑。

**重要**  
支持以下浏览器：  
Chrome 浏览器版本 109 及更高版本
Edge 版本 109 及更高版本
座席和客户只能共享浏览器选项卡。他们无法共享窗口或整个屏幕。如果您启用此功能，而客户或座席使用不支持的浏览器、窗口或整个屏幕，他们将收到一条错误消息。

要启用屏幕共享的网址限制，请完成以下步骤。

## 步骤 1：创建允许 URLs 列表
<a name="step1-url-restriction"></a>

您可以使用预定义的属性配置允许 URLs 的列表。完成以下步骤。

1. 在 Amazon Connect 管理网站中，选择****路由****、**预定义属性**、**添加预定义属性**。

1. 在**添加预定义属性**部分的**预定义属性**框中，添加以下内容之一。
   + 要为客户屏幕共享创建允许列表，请输入 `screensharing:customer-allowed-urls`。
   + 要为座席屏幕共享创建允许列表，请输入 `screensharing:agent-allowed-urls`。

1. 在**值**框中，输入允许的网址。它可以是格式完整的网址，也可以是用于子字符串匹配的字符串模式，例如 ` https://mycompany` 或 ` /mytransactions`。下表列出了有效格式的示例。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/screen-sharing-url-restriction.html)

1. 保存列表。将 URLs 显示在 “**预定义属性**” 页面上，如以下示例所示。  
![\[预定义属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/screen-sharing-restricted-urls.png)

## 步骤 2：向您的网站列表添加脚本
<a name="step2-url-restriction"></a>

您需要在网站中嵌入一个脚本，这样页面的网址就可以显示给捕获应用程序。您可以从 Amazon Connect 托管的亚马逊 CloudFront 终端节点上的文件中获取捕获处理程序。按照以下说明进行操作。

1. 在 Amazon Connect 管理网站中，选择 “**频道**”、“**沟通” 小部件**。在通信小部件摘要页面上，查找小部件脚本。从 `s.src` 属性获取端点，如以下示例所示。  
![\[小部件脚本。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/screen-sharing-restricted-urls-step2.png)

   终端节点可以位于与您的 Amazon Connect 实例不同的 AWS 区域。为了获得最佳性能，建议使用与 Amazon Connect 实例相同的区域。

1. 将以下占位符 `${endpoint}` 替换为上一步中的值。复制整个代码片段并将其粘贴到网站的顶层。

   ```
   <script type="text/javascript" src='${endpoint}/amazon-connect-url-restriction.js'></script>
   ```

# 在 Amazon Connect 中设置任务
<a name="concepts-getting-started-tasks"></a>

1. [更新座席的路由配置文件](routing-profiles.md)，以便他们管理和创建任务。

   将任务添加到其路由配置文件中时，您可以指定一次最多为他们分配 10 个任务。

   座席可以暂停的任务数量与其[路由配置文件](routing-profiles.md)中的**每个座席的最大任务数**设置相同。

   例如，一个座席的**每个座席的最大任务数**设置为同时处理 5 个活动任务。这意味着他们最多可以暂停 5 个任务，以便他们腾出活动时段来执行更关键的新任务。但是，这也意味着座席在任何时间点都可以在其工作区中拥有两倍的任务数量。在我们的示例中，该座席的工作区中可以有 10 个任务：5 个已暂停，5 个处于活动状态。

   下图显示了**路由配置文件**页面上的**任务**选项。  
![\[“任务”选项，每个座席的最大任务数设置为 5，队列设置为语音、聊天、任务。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-routing-profile-2.png)

1. [创建快速连接](quick-connects.md)，以便代理可以向自己、其他代理或共享队列 create/assign 执行任务。

1. 更新流以路由任务。

1. （可选）[创建任务模板](task-templates.md)以便座席轻松创建任务。为他们定义了创建任务所需的所有字段。

1. （可选）[与外部应用程序集成](integrate-external-apps-tasks.md)并根据预定义的条件[设置规则，自动创建任务](add-rules-task-creation.md)。

1. 默认情况下，所有座席都可以创建任务。如果要屏蔽某些座席的[权限](task-template-permissions.md)，请在他们的安全配置文件中指定**联系人控制面板**、**限制任务创建权限**。

# Amazon Connect 中的任务频道
<a name="tasks"></a>

Amazon Connect Tasks 允许您使用座席为客户提供支持的不同工具对任务进行优先排序、分配、跟踪甚至自动化。例如，您可以使用“任务”：
+ 跟进客户关系管理 (CRM) 解决方案（例如 Salesforce）中记录的客户问题。
+ 通过电话跟进客户。
+ 在特定业务系统中完成操作，例如处理保险申请中的客户索赔。

目前，Amazon Connect Tasks 可以在符合 [GDPR](https://aws.amazon.com/compliance/gdpr-center) 的情况下使用，并已获得 SOC、PCI、HITRUST、ISO 和 HIPAA 的批准。

## 什么是任务？
<a name="what-is-a-task"></a>

在企业中，*任务*是座席必须完成的工作单元。这包括可能源自外部应用程序的工作。在 Amazon Connect 中，这个工作单元是联系人。它可以像语音或聊天联系一样进行路由、优先级排序、分配和跟踪。适用于语音或聊天联系的所有功能同样适用于任务联系。

座席在联系人控制面板 (CCP) 中处理任务，就像处理任何其他联系一样。分配任务后，座席会看到一条通知，其中包含任务描述、与任务相关的信息以及完成任务可能需要的任何应用程序的链接。下图显示了座席的 CCP 在管理任务时的什么样子。

![\[联系人控制面板中的一项任务。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-introduction.png)


## 如何创建任务
<a name="concepts-set-up-tasks"></a>

Amazon Connect 为您提供了不同的任务创建方式：

1. 您可以将预置的连接器与 CRM 应用程序（例如 Salesforce 和 Zendesk）配合使用，根据一组预定义的条件自动创建任务，无需进行任何自定义开发。

   例如，您可以在 Amazon Connect 中配置一条规则，以便在 Salesforce 中创建新案例时自动创建任务。

   有关更多信息，请参阅 [设置应用程序集成，以在 Amazon Connect 中创建任务](integrate-external-apps-tasks.md) 和 [为 Amazon Connect 中的第三方集成生成任务创建规则](add-rules-task-creation.md)。

1. 您可以与本土应用程序或特定业务应用程序集成，使用 Amazon Connect 创建任务。 APIs

   有关更多信息，请参阅 [StartTaskContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html) API。

1. 您可以在流中添加一个 [创建任务](create-task-block.md) 数据块。通过此数据块，您能够根据客户输入（DTMF 输入）、联系人和任务信息，直接从流中创建和编排任务。

1. 您无需进行任何开发工作，即可以让您的座席通过联系人控制面板 (CCP) 创建任务。

   例如，座席可以创建任务，确保后续工作不会被遗忘，例如给客户回电以提供问题的最新进展。

   有关更多信息，请参阅 [在 Amazon Connect 中测试语音、聊天和任务体验](chat-testing.md)。

有关任务入门的更多信息，请参阅 [在 Amazon Connect 中设置任务](concepts-getting-started-tasks.md)。

**重要**  
[默认客户队列](default-customer-queue.md)流不支持任务。如果您在不做任何更改 out-of-the-box的情况下使用它，它将失败。**默认客户队列流**包含一个[循环提示](loop-prompts.md)数据块，该数据块不支持任务。  
建议您创建一个新流，然后使用它来检查通道并将任务路由到所需队列。有关说明，请参阅[如何将任务发送到队列](#example-enqueue-task)。或者，也可以更新默认流中的**循环提示**数据块，这样**错误**分支就不会终止；而是对联系人执行其他操作。

## 支持的流类型
<a name="concepts-tasks-supported-contact-flow-types"></a>

您可以在以下流类型中使用任务：
+ 入站流
+ 客户队列流
+ 座席私密消息流
+ 转接到队列流
+ 转接座席流

## 支持的联系人数据块
<a name="concepts-tasks-supported-contact-blocks"></a>

您可以在以下流数据块中使用任务：
+ 更改路由优先级/期限
+ 检查联系属性
+ 检查营业时间
+ 检查队列状态
+ 检查人员配置
+ 创建任务
+ 断开/挂断
+ 按百分比分配
+ 结束流 / 恢复
+ 获取队列指标
+ 调用 AWS Lambda 函数
+ 循环
+ 设置联系属性
+ 设置客户队列流
+ 设置断开连接流
+ 设置工作队列
+ 转接流
+ 转接队列
+ 等待

## 关联的任务
<a name="linked-tasks"></a>

在 [StartTaskContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html)API 中使用任务时，可以通过`PreviousContactID`或将新联系人与现有联系人关联`RelatedContactId`。此新联系人包含相关联系人的[联系属性](connect-attrib-list.md)副本。

以下代码显示了包含 `PreviousContactID` 和 `RelatedContactId` 的请求语法。

```
PUT /contact/task HTTP/1.1
Content-type: application/json

{
   "Attributes": { 
      "string" : "string" 
   },
   "ClientToken": "string",
   "ContactFlowId": "string",
   "Description": "string",
   "InstanceId": "string",
   "Name": "string",
   "PreviousContactId": "string",
   "QuickConnectId": "string",
   "References": { 
      "string" : { 
         "Type": "string",
         "Value": "string"
      }
   },
   "RelatedContactId": "string",
   "ScheduledTime": number,
   "TaskTemplateId": "string"
}
```

使用 `PreviousContactID` 或 `RelatedContactID` 创建任务时，请注意以下几点：
+ `PreviousContactID`，使用 `PreviousContactID` 关联联系人时，在链中任何时候对联系属性所做的更新都会渗透到整个链中。
+ `RelatedContactID`-使用关联联系人时`RelatedContactID`，对联系人属性的更新将仅渗透到 API 中引用的 ContactId。[UpdateContactAttributes](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContactAttributes.html)

**注意**  
您只能在请求正文中指定 `PreviousContactID` 或 `RelatedContactID`，不能同时指定两者。如果同时指定两者，Amazon Connect 将返回一个 `InvalidRequestException` 错误消息，状态码为 400。

有关 `PreviousContactID` 和 `RelatedContactId` 如何在联系记录中建模的信息，请参阅联系记录数据模型中的 [ContactTraceRecord](ctr-data-model.md#ctr-ContactTraceRecord)。

## 座席可以将任务关联到出站联系人
<a name="agents-can-link-tasks"></a>

当座席**正在积极处理任务**时，联系人控制面板（CCP）上会显示**数字键盘**。如果他们使用数字键盘拨打出站呼叫，则该呼叫会自动关联到任务。Amazon Connect 使用 `relatedContactID` 参数将任务和出站呼叫关联起来。

以下 CCP 图像显示，座席处理任务时，**数字键盘**可用。

![\[CCP 上的数字键盘。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-linked-outboundcall.png)


## 使用“创建任务”数据块将任务链接到联系人
<a name="link-contacts-using-create-task-block"></a>

“创建任务”数据块允许您自动将任务链接到当前联系人。

下图**创建任务**数据块的“属性”页面显示了**联系人链接**选项。

![\[“创建任务”数据块“属性”页面上的“联系人链接”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/create-task-properties-manually.png)


## 跟踪创建任务的人员
<a name="createdby-tasks"></a>

通过 CCP 创建任务的座席会自动将其座席资源 ARN 添加到联系记录中，作为名为 `CreatedByUser` 的[分段属性](connect-attrib-list.md#attribs-segment-attributes)。此属性使您能够跟踪任务的始发座席。但是，您无法使用 Amazon Connect 管理网站`CreatedByUser`进行访问；而是使用 [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)API。

您可在[创建任务](create-task-block.md)数据块上使用 `CreatedByUser` 分段属性。您可以设置**由用户创建**的分段属性，该属性表示创建任务的用户的 ARN。下图显示了**创建任务**属性页面中该属性可用的部分。

![\[“创建任务”属性页面，“由用户创建”属性。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-expiry.png)


 您也可以为通过 [StartTaskContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html)API 创建的任务手动设置此值。

## 座席可为自己分配任务
<a name="agents-self-assign-tasks"></a>

当联络中心主管创建任务模板时，他们可以将其配置为允许座席自行分配任务。座席通过使用 CCP 为自己分配任务。

开发人员可以在 [StartTaskContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html)API `assignmentType` 上使用值指定，`SELF`并指定有效值`CreatedByUser`和有效值`TaskTemplateID`。

## 要使用 IAM？ 添加任务权限
<a name="iam-tasks"></a>

如果您的组织使用自定义 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 策略来管理对 Amazon Connect 控制台的访问权限，请确保用户拥有相应的权限来设置任务创建应用程序。有关所需权限的列表，请参阅 [“任务”页面](security-iam-amazon-connect-permissions.md#tasks-page)。

**注意**  
如果您的实例是在 2018 年 10 月之前创建的，有关如何配置服务相关角色 (SLR) 的信息，请参阅 [适用于 2018 年 10 月之前创建的实例](connect-slr.md#migrate-slr)。

## 在实时和历史指标报告中跟踪任务
<a name="tracking-tasks"></a>

您可以在实时和历史指标报告中跟踪所有任务的状态，就像跟踪其他渠道中的联系人一样。例如，您可以跟踪：
+ 座席在每项任务上花费了多长时间 ([座席联系时间](metrics-definitions.md#agent-contact-time))。
+ 从创建任务到完成任务的总时间 ([联系人处理时间](metrics-definitions.md#contact-handle-time))。

### 指标
<a name="tracking-only-tasks"></a>
+ [平均活动时间](metrics-definitions.md#average-active-time)
+ [座席平均暂停时间](metrics-definitions.md#average-agent-pause-time) 

### 联系指标
<a name="contact-data-tasks"></a>

以下数据是在联系人数据模型中捕获的。

### 不适用于任务且在报告中其值为 0 的指标
<a name="tracking-null-tasks"></a>
+ [平均座席交互时间](metrics-definitions.md#average-agent-interaction-time)
+ [平均客户等待时间](metrics-definitions.md#average-customer-hold-time)
+ [座席交互和等待时间](metrics-definitions.md#agent-interaction-and-hold-time) – 历史数据
+ [座席交互时间](metrics-definitions.md#agent-interaction-time) – 历史数据
+ [平均座席交互时间](metrics-definitions.md#average-agent-interaction-time)
+ [平均客户等待时间](metrics-definitions.md#average-customer-hold-time)

### 根据自定义服务级别 (SL) 管理任务
<a name="tasks-custom-sl"></a>

语音和聊天的服务级别时间可能很短，以秒或分钟为单位，但有些任务的服务级别可能长达数小时或数天。您可以创建适合每个渠道的自定义服务级别持续时间。有关更多信息，请参阅[自定义服务等级](metrics-definitions.md#custom-service-levels)。

## 任务何时结束？
<a name="when-do-tasks-end"></a>

任务的默认总持续时间最多为 7 天。[创建任务模板](task-templates.md)时，您可以将任务的持续时间最多延长至 90 天。

发生以下情况之一时，任务结束：
+ 座席完成任务。
+ 流运行了 [断开/挂断](disconnect-hang-up.md) 数据块，任务结束。
+ 任务达到默认 7 天的期限。
+ 如果在任务模板中配置了此选项，则它会到达**到期时间（分钟）**。
+ 您可以使用 [StopContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContact.html)API 结束任务。

也可以在[创建任务](create-task-block.md)数据块上使用**联系人到期**设置。

## 如何将任务发送到队列
<a name="example-enqueue-task"></a>

由于[默认客户队列](default-customer-queue.md)流仅适用于语音联系，因此建议您创建新流，将任务（以及其他非语音通道）发送到队列。

假设您希望一项任务的总体等待时间为 10 分钟，但想每分钟检查一次，看看是否还有正在处理队列的座席，并且他们有可能在某个时刻接手这项任务。对于这种使用案例，您可以执行以下操作：

1. 将[循环](loop.md)数据块添加到流中。将**循环次数**设置为 10。

1. 对于**循环**分支，使用[检查人员配置](check-staffing.md)数据块来检查队列的座席可用性。

1. 如果有空闲的座席，可使用[转接队列](transfer-to-queue.md)数据块将联系人转接到队列中。

1. 将**完成**分支设置为将联系人路由到[断开/挂断](disconnect-hang-up.md)数据块。如果在 10 分钟的循环期间没有座席，则会触发该操作。

## 搜索和查看已完成的任务
<a name="task-ctr-fields"></a>

使用[联系搜索](contact-search.md)页面搜索和查看已完成的任务。

下图是任务联系记录中的**联系摘要**和**参考信息**的示例。

![\[任务联系记录页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-sample-ctr.png)


以下数据会附加到联系记录中，但不与之一起存储。数据包含在导出文件中。
+ 流 ID
+ 潜在属性：
  + [ContactDetails](ctr-data-model.md#ctr-contact-details)
    + 名称：任务的名称
    + 描述：任务的描述
  + [References](ctr-data-model.md#ctr-contact-references)：任何指向表格或其他网站的链接

当任务安排在未来的日期和时间时，**联系摘要**还会显示**计划时间**。

## 更多信息
<a name="tasks-more-information"></a>
+ [Amazon Connect 功能规格](feature-limits.md)
+ [接受联系人控制面板 (CCP) 分配的任务](accept-task.md)
+ [在联系人控制面板 (CCP) 中创建新任务](create-task.md)
+ [在 Amazon Connect 联系人控制面板 (CCP) 中将任务转接到另一名座席或队列](transfer-task.md)

# 在 Amazon Connect 任务中暂停和恢复任务
<a name="concepts-pause-and-resume-tasks"></a>

您可以暂停和恢复所有未过期、未断开连接或计划在以后执行的任务。暂停和恢复任务的好处是，它可让座席腾出一个活动时段，这样当他们当前的任务由于缺少批准或等待外部输入而停滞时，他们可以接收更关键的任务。

您还可以暂停全自动任务以应对不可抗力事件（自然灾害、基础设施故障、入侵），这些事件可能需要您暂时停止所有业务流程，然后在紧急情况过去后恢复这些流程。

**Topics**
+ [已暂停和已恢复的任务如何排队](#pause-tasks-queue)
+ [座席如何暂停和恢复任务](#pause-tasks-agent-experience)
+ [座席可以暂停多少任务](#pause-tasks-number)
+ [已暂停的任务何时可以恢复？](#when-resume-tasks)
+ [以编程方式暂停和恢复任务](#programmatically-pause-and-resume-tasks)
+ [配置流以暂停和恢复任务](#pause-and-resume-flow)
+ [联系事件流](#ces-pause-and-resume-tasks)
+ [联系记录中的暂停和恢复任务事件](#ctr-pause-and-resume-tasks)
+ [指标](#metrics-pause-and-resume-tasks)

## 已暂停和已恢复的任务如何排队
<a name="pause-tasks-queue"></a>
+ 所有处于队列中但尚未分配给座席的已暂停任务都将退出队列。这样，它们就不会消耗实例的队列限制，而会允许将其他更重要的联系人分配给座席。
+ 任务恢复后，它会重新排队，流也会根据您的配置继续运行。
+ 在设计流以恢复已退出队列的未分配的已暂停任务时，请务必在流中添加一个[转接队列](transfer-to-queue.md)数据块，以便在恢复后将任务排入队列。否则，任务将保持退出队列的状态。

## 座席如何暂停和恢复任务
<a name="pause-tasks-agent-experience"></a>

座席可以使用**暂停**按钮从其联系人控制面板（CCP）或 Agent Workspace 中暂停任务。要更新任务，座席必须选择**恢复**。对于处于“已暂停”状态的任务，座席可以采取的唯一操作是结束任务或转接任务。

下图显示了 CCP 上的**暂停**按钮。

![\[CCP 上的“暂停”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-pause-button-ccp.png)


下图显示了 Agent Workspace 上的**暂停**按钮。

![\[Agent Workspace 上的“暂停”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-pause-button-agentworkspace.png)


座席暂停或恢复任务后，会显示一条横幅，通知他们该任务的当前状态。下面的 CCP 图像显示了“暂停”横幅。

![\[CCP 上的“暂停”和“恢复”横幅。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-paused-ccp.png)


下面的 Agent Workspace 图像显示了“恢复”横幅。

![\[Agent Workspace 上的“暂停”和“恢复”横幅。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-resumed.png)


当座席打开了多个任务并且他们暂停了其中任何一个任务时，任务列表中的图标会更新，以通知他们任务的状态。下图显示了“已暂停”图标的示例。

![\[任务状态图标。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-pause-agentworkspace.png)


## 座席可以暂停多少任务
<a name="pause-tasks-number"></a>

座席可以暂停的任务数量最多为其[路由配置文件](routing-profiles.md)中的**每个座席的最大任务数**设置的两倍。

例如，一个座席的**每个座席的最大任务数**设置为同时处理 5 个活动任务。这意味着他们最多可以暂停 5 个任务，以便他们腾出活动时段来执行更关键的新任务。但是，这也意味着座席在任何时间点都可以在其工作区中拥有两倍的任务数量。在我们的示例中，该座席的工作区中可以有 10 个任务：5 个已暂停，5 个处于活动状态。

## 已暂停的任务何时可以恢复？
<a name="when-resume-tasks"></a>

已暂停的任务可以随时恢复。因此，座席可以临时处理两倍于其并发限制的任务。

例如，一个座席的工作区中有 10 个任务：5 个已暂停，5 个处于活动状态。他们同时恢复所有已暂停的任务。现在他们有 10 个活动任务。除非活动任务数低于其路由配置文件中**每个座席的最大任务数**限制，否则不会将新任务路由给他们。

## 以编程方式暂停和恢复任务
<a name="programmatically-pause-and-resume-tasks"></a>

您可以使用和以编程方式暂停[PauseContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_PauseContact.html)和[ResumeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_ResumeContact.html) APIs恢复任务。

暂停和恢复任务时，可以将相应的流配置为在暂停和恢复事件时运行。例如：
+ 您可能需要设计一个流，以便在座席设定的午休时间后自动恢复已暂停的任务。
+ 您可能需要创建一个恢复流，以更新在任务暂停期间可能已更改的任务属性。

## 配置流以暂停和恢复任务
<a name="pause-and-resume-flow"></a>

配置[设置事件流](set-event-flow.md)数据块以暂停和恢复任务。下图显示了配置为暂停流的**设置事件流**数据块的**属性**页面。

![\[“设置事件流”数据块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-set-event-flow.png)


以下是您可能需要在流中配置的几个场景：
+ 对于在联系暂停时运行的流，请将其配置为在任务暂停时通知主管。
+ 恢复已暂停的联系时，请将流配置为更新联系属性，以确保座席始终使用最新版本的属性。

## 联系事件流和座席事件流中的新事件
<a name="ces-pause-and-resume-tasks"></a>

当任务暂停和恢复时，会在联系事件流和座席事件流中生成新的“已暂停”和“已恢复”事件。

下图显示了联系事件流中“已暂停”事件的示例。

![\[联系事件流中的“已暂停”事件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-pause-ces.png)


下图显示了联系事件流中“已恢复”事件的示例。

![\[联系事件流中的“已恢复”事件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-resumed-ces.png)


下图显示了座席事件流中“已暂停”任务的示例。

![\[座席事件流中的“已暂停”事件。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-aes.png)


## 联系记录中的暂停和恢复任务事件
<a name="ctr-pause-and-resume-tasks"></a>

在联系人记录数据模型的[ContactTraceRecord](ctr-data-model.md#ctr-ContactTraceRecord)部分中捕获了以下事件。您可以使用 [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)API 返回任务事件。


| 联系记录中的姓名 |  DescribeContact API 返回的名称 | 
| --- | --- | 
| TotalPauseDurationInSeconds |  TOTAL\$1PAUSED\$1TIME  | 
| TotalPauseCount |  TOTAL\$1NUMBER\$1OF\$1PAUSES  | 
| LastPausedTimestamp |  LAST\$1PAUSED\$1TIMESTAMP  | 
| LastResumedTimestamp |  LAST\$1RESUMED\$1TIMESTAMP  | 

当您使用 [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)API 或查看正在进行的联系人的 “**联系人详情**” 页面时，可以近乎实时地看到以下值。
+ TotalPauseCount
+ LastPausedTimestamp
+ LastResumedTimestamp

已完成的联系具有 TotalPauseDurationInSeconds。

## 指标
<a name="metrics-pause-and-resume-tasks"></a>

以下指标显示活动时间、暂停时间和恢复时间。


| 实时指标 | 说明 | 
| --- | --- | 
|  **[用户界面]** Agent/Routing Profiles/Queue → 性能 → **平均活动时间**  |  SUM(active\$1time)/联系数  | 
|  **[UI]** Agent/Routing Profiles/Queue → 性能 → **代理平均暂停时间**  |  SUM(agent\$1pause\$1time)/已暂停的联系数  | 
|  **[UI]** 座席 → 联系 → **联系状态**  |  任务联系的暂停状态  | 


| 历史指标 | 说明 | 
| --- | --- | 
|  **[UI]** 座席 → 座席活动审计 → 支持“已暂停”状态  |  当座席的联系处于“已暂停”状态时，显示暂停状态  | 
|  **[[GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html)]** 查询配置文件/任务的 AGENT\$1PAUSE\$1TIME 的平均值 queue/routing   |  所有已暂停的联系人的总和（total\$1agent\$1pause\$1time） queue/routing profile/TaskAVG = SUM(total\$1agent\$1pause\$1time)/number of paused contacts for queue/RP/Tasks  | 
|  **[[GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html)]** 查询配置文件的 ACTIVE\$1TIME 的平均值 queue/routing   |  个人资料/任务的所有联系人的总和（total\$1handle\$1time-time-total\$1agent\$1pause\$1time） queue/routing  AVG = SUM（total\$1handle\$1time-time-total\$1agent\$1pause\$1time）/个人资料/任务的联系人总数 queue/routing   | 


| 联系详细信息页面 | 说明 | 
| --- | --- | 
|  **[UI]** 联系搜索 → 联系详细信息 → 联系摘要 → 上次暂停时间  |  上次暂停时间  | 
|  **[UI]** 联系搜索 → 联系详细信息 → 联系摘要 → 上次恢复时间  |  上次恢复时间  | 
|  **[UI]** 联系搜索 → 联系详细信息 → 联系摘要 → 暂停次数  |  暂停的总次数，包括联系未连接时的暂停次数。  | 
|  **[UI]** 联系搜索 → 联系详细信息 → 联系摘要 → 总暂停时长  |  总暂停时长包括座席连接之前和之后的时间。  | 

### 实时指标页面
<a name="rtm-tasks-ui"></a>

下图的**实时指标**页面将任务联系状态显示为**已暂停**。

![\[实时指标页面，任务处于已暂停联系状态。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-paused-rtm.png)


下图的**实时指标**页面显示了**平均活动时间**、**AHT** 和**平均座席暂停时间**。

![\[实时指标页面，任务处于已暂停联系状态。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-rtm-2.png)


### 座席活动审计报告
<a name="agent-audit-tasks-ui"></a>

下图的**座席活动审计报告**显示了座席暂停联系时的“已暂停”状态。

![\[座席活动审计报告，已暂停状态。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-agent-activity-report.png)


# 在 Amazon Connect 中创建任务模板
<a name="task-templates"></a>

任务模板使座席可以轻松捕获正确的信息，以创建和完成[任务](tasks.md)。为他们提供了创建特定类型任务所需的所有字段。

## 在创建第一个模板之前需要了解的重要事项
<a name="important-info-task-templates"></a>
+ 当您发布第一个模板时，系统会提示座席在创建新任务时选择模板。座席必须选择已发布的模板之一。
+ 如果您想返回标准任务体验并且不要求座席选择模板，请在**任务模板**页面上，使用**禁用/启用**开关禁用您发布的所有模板。
+ 验证您的 Amazon Connect 账户是否[有权创建任务模板](task-template-permissions.md)。
+ 查看任务模板的限额列表，例如**每个实例的任务模板**和**每个实例的任务模板自定义字段**。请参阅[Amazon Connect 服务配额](amazon-connect-service-limits.md)。
+ 您可以将任务模板配置为允许座席为自己分配任务。座席需要安全配置文件权限**联系人控制面板 – 允许自行分配联系人**，并且必须禁用**限制任务创建**权限。然后，当座席从 CCP 创建任务并将其分配给自己时，他们将能够勾选一个复选框。

## 如何创建任务模板
<a name="build-task-templates"></a>

### 第 1 步：为模板命名
<a name="name-template"></a>

1. 使用**管理员**账户或分配给[有权创建任务模板](task-template-permissions.md)的安全配置文件的账户登录 Amazon Connect 控制台。

1. 在左侧导航菜单中，选择**渠道**、**任务模板**。

1. 在**任务模板页面**上，选择 **\$1 新模板**。

1. 在**创建新模板**页面的**模板名称**框中，输入要显示给座席的名称。

1. 在**描述**框中，描述模板的用途。此信息不会向座席显示；仅供您自己使用。

### 第 2 步：添加字段、任务分配、日程安排和到期时间
<a name="add-template-fields"></a>

1. 在**字段**部分，选择**添加字段**下拉列表，然后选择要添加到模板中的字段类型。  
![\[“创建新模板”页面，“字段”部分，“添加字段”下拉列表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-field-type.png)

1. 根据需要使用上下箭头来更改字段在模板上的显示顺序。

1. 在**验证和权限**部分，选择是要求座席在创建任务时填充字段，还是添加默认值以便在座席打开模板时预先填充该字段。

   下图显示了此部分类型为**电子邮件**字段的样子。  
![\[电子邮件字段的“验证和权限”部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-field-permissions.png)
**注意**  
无法在“任务模板”页面中使用属性。

1. 在**任务分配**部分：

   1. **分配至**：选择**是**以允许座席在创建任务时查看和编辑任务分配。或者，分配默认值，如下图所示。选择在座席选择**创建**以创建任务后要运行的已发布流程。座席在 CCP 上看不到流的名称。
**注意**  
**默认值**下拉列表中仅列出已发布的流。  
![\[“任务分配”部分，“默认值”下拉列表。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-task-assigment.png)

   1. **自行分配**：选择**是**以允许座席在 CCP 上为自己分配任务。对于**默认状态**，如果您想在 CCP 中默认选中自行分配复选框，请选择 **True**。  
![\[“自行分配”复选框部分，“默认状态”选项设置为 True。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-task-selfassigment.png)

1. 在**任务计划**部分，选择是否希望座席能够为任务安排未来的开始日期和时间。

1. 在**到期时间**部分，指定任务在到期之前应存在多长时间。默认值为 7 天。最多可以将其配置为 90 天（129600 分钟）  
![\[模板列表的“任务持续时间”部分。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-expiry-duration.png)

### 第 3 步：发布
<a name="task-template-publish"></a>

配置模板后，选择**发布**以创建模板并使其对您的座席可见。

**重要**  
如果这是您的第一个模板，则当您选择**发布**时，系统会自动要求座席在创建任务时选择任务模板。  
如果您想在没有可选模板的情况下保持标准任务体验，请禁用所有模板。

## 座席体验
<a name="agent-experience-task-template"></a>

发布模板后，座席需要选择模板来创建任务。

例如，下图显示了两个已发布的模板：**客户电子邮件模板**和**账单争议**。

![\[“任务模板”页面，每个模板的禁用或启用开关。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-published.png)


在联系人控制面板中，当座席选择**创建任务**时，他们必须选择其中一个模板：**账单争议**或**客户电子邮件模板**。

![\[CCP 上的“创建任务”按钮，这是座席可以选择的两个模板。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-agent-experience.png)


假设座席选择了**客户电子邮件模板**。下图显示了座席在创建任务时必须填写的字段。请注意，座席没有将任务分配给其他人的选项；此模板已将**任务分配**设置为默认值。但是，座席可以选择将任务分配给自己。

![\[CCP 无法选择将任务分配给其他人，但座席可以将任务分配给自己。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-create-task-ccp.png)


## “分配”下拉列表中的“无数据”消息
<a name="no-data-message-task-template"></a>

假设在**任务分配**部分，您选择允许座席将任务分配给其他座席。要针对这种情况进行设置，您必须为目标座席创建快速连接，使其显示在选项下拉列表中，如下图所示。有关为座席创建快速连接的说明，请参阅[测试任务](chat-testing.md#test-tasks)。

![\[CCP，“创建任务”页面，“分配”字段设置为“John Doe 的快速连接”。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-choose-agent-quick-connect.png)


如果不存在快速连接，则在选择**分配至**下拉菜单时会出现**无数据**消息，如下图所示。

![\[CCP，“创建任务”页面，“分配”空白，页面底部的“无数据”消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-templates-no-data.png)


# 授予用户在 Amazon Connect 中创建任务模板的权限
<a name="task-template-permissions"></a>

分配**路由**、**任务模板**权限，使用户能够创建任务模板。

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

默认情况下，**管理员**安全配置文件已具有执行所有任务活动的权限。

# 阻止座席在 Amazon Connect 联系人控制面板 (CCP) 中创建任务
<a name="task-permissions"></a>

要阻止座席创建任务，请分配**联系人控制面板 (CCP)**、**限制任务创建**权限。默认情况下，此权限处于未选中状态，这意味着所有座席都可以创建任务。

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

默认情况下，**管理员**安全配置文件已具有执行所有任务活动的权限。

# 设置应用程序集成，以在 Amazon Connect 中创建任务
<a name="integrate-external-apps-tasks"></a>

设置应用程序集成以创建任务，无需编写代码。

**提示**  
如果您的组织使用自定义 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 策略来管理对 Amazon Connect 控制台的访问权限，请确保用户拥有相应的权限来设置任务创建应用程序。有关所需权限的列表，请参阅 [“任务”页面](security-iam-amazon-connect-permissions.md#tasks-page)。  
如果您的实例是在 2018 年 10 月之前创建的，有关如何配置服务相关角色 (SLR) 的信息，请参阅 [适用于 2018 年 10 月之前创建的实例](connect-slr.md#migrate-slr)。

**Topics**
+ [使用亚马逊为 Salesforce 设置应用程序集成 AppFlow](integrate-salesforce-tasks.md)
+ [使用亚马逊为 Zendesk 设置应用程序集成 EventBridge](integrate-zendesk-tasks.md)
+ [监控 Amazon Connect 中的任务创建](monitor-task-creation.md)
+ [断开 Amazon Connect 与第三方连接的连接](disassociate-connection.md)

# 使用亚马逊为 Salesforce 设置应用程序集成 AppFlow
<a name="integrate-salesforce-tasks"></a>

如果您与 Salesforce 集成以创建活动，Amazon Connect 还会使用亚马逊 AppFlow 将数据放入 EventBridge。这是因为Salesforce如何通过亚马逊 AppFlow APIs发送事件。要详细了解 Amazon Connect 如何使用 EventBridge 亚马逊 AppFlow 资源来支持 Salesforce 集成，请参阅此博客文章：[构建 Salesforce 与亚马逊和亚马逊 EventBridge ](https://aws.amazon.com/blogs/compute/building-salesforce-integrations-with-amazon-eventbridge/)的集成。 AppFlow

**注意**  
如果您使用自定义 AWS Identity and Access Management (IAM) 策略，有关设置 Amazon Connect 任务所需的 IAM 权限列表，请参阅[“任务”页面](security-iam-amazon-connect-permissions.md#tasks-page)。

**集成 Salesforce 以创建任务**

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. 选择**任务**，然后选择**添加应用程序**。  
![\[“任务”页面，“添加应用程序”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-add-an-application-button.png)

1. 在**选择应用程序**页面，选择 **Salesforce**。

1. 查看**选择应用程序**页面上列出的应用程序要求。

   下图显示了 Salesforce 的要求。  
![\[“选择应用程序”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-choose-an-app-salesforce.png)

   1. 例如，要验证 Salesforce 是否与亚马逊兼容 AppFlow，请登录 Salesforce。 https://[instance\$1name].my.salesforce.com
**重要**  
确认您已在 Salesforce 中启用**更改数据捕获**。下图显示了 Salesforce 中的**更改数据捕获**页面示例，您可以在其中选择案例实体：  

![\[“更改数据捕获”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-verify-app-salesforce.png)


1. 验证 Salesforce 要求后，在**选择应用程序**页面，选择**下一步**。

1. 在**建立连接**页面上，选择以下选项之一：
   + **使用现有连接**。这样，您就可以重复使用与您可能在 AWS 账户中创建的 Amazon AppFlow 流程相关联的现有 EventBridge 资源。
   + **创建新连接**：输入外部应用程序所需的信息。

     1. 输入您的应用程序实例 URL。此 URL 用于深度链接到在外部应用程序中创建的任务。

     1. 为您的连接提供一个易记的名称，例如 **Salesforce - 测试实例**。稍后，当您[添加规则](add-rules-task-creation.md)时，您会引用这个易记的名称。

     1. 指定这是生产环境还是沙盒环境。  
![\[建立连接页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection.png)

1. 选择**登录 Salesforce**。

1. 在 Salesforce 中，选择允许访问 Amazon Connect 嵌入式登录应用程序 [区域]。  
![\[Salesforce 登录页面，允许访问提示。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-allow-access-salesforce.png)

1. 在 Amazon Connect 成功连接到 Salesforce 后，请前往 Salesforce 并验证 Amazon Connect 嵌入式登录应用程序的刷新令牌策略是否设置为**刷新令牌在撤销之前依然有效**。这使亚马逊无需重新进行 AppFlow身份验证即可从您的 Salesforce 账户提取数据。

1. 在**建立连接**页面，选中下图所示的复选框，然后选择**下一步**。  
![\[建立连接页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-successful.png)

1. 在**查看和集成**页面，检查**连接状态**是否显示为**已连接**，然后选择**完成集成**。  
![\[“查看和集成”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-review-and-integrate.png)

1. 在**任务**页面，将列出新连接。  
![\[“任务”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-final.png)

完成了！接下来，添加规则，告诉 Amazon Connect 何时创建任务以及如何路由任务。有关说明，请参阅[为 Amazon Connect 中的第三方集成生成任务创建规则](add-rules-task-creation.md)。

## 连接未成功建立时该怎么办
<a name="fix-connection-not-established-salesforce"></a>

如果您没有按照复选框旁边的说明验证Salesforce是否与亚马逊 AppFlow兼容，则可能无法建立连接。

一个常见的错误是没有在**更改数据捕获**设置中设置**案例**实体来捕获这些事件。修复方法：

1. 登录 Salesforce，转到**更改数据捕获**，然后选择案例实体。  
![\[“更改数据捕获”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-verify-app-salesforce.png)

1. 打开亚马逊 AppFlow 控制台（位于 [https://console.aws.amazon.com/appflow）](https://console.aws.amazon.com/appflow)，选择刚刚创建的流程，然后选择 “**激活**流程”。  
![\[Amazon AppFlow 控制台中的流程。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-integration-activate-flow.png)

或者，您可能需要删除亚马逊 AppFlow Salesforce 的连接和流程，然后重新开始。

# 使用亚马逊为 Zendesk 设置应用程序集成 EventBridge
<a name="integrate-zendesk-tasks"></a>

## 第 1 步：为 Amazon 启用事件连接器 EventBridge
<a name="enable-zendesk-in-eventbridge"></a>

如果您尚未启用 Zendesk 的 EventBridge 连接器，则需要先对其进行设置。否则，请转到[第 2 步：将 Zendesk 与 Amazon Connect 集成以创建任务](#steps-integrate-zendesk)。

1. 复制您的 AWS 账号：

   1. 在 Amazon EventBridge 控制台中，前往**合作伙伴事件源**。

   1. 搜索或滚动到 **Zendesk**，然后选择**设置**。

   1. 选择 “**复制**” 以复制您的 AWS 账户信息。

1. 前往 Zendesk 帮助 EventBridge中的 [“为亚马逊设置事件连接器](https://support.zendesk.com/hc/en-us/articles/360043496933-Setting-up-the-events-connector-for-Amazon-EventBridge)”，然后按照说明进行操作。

## 第 2 步：将 Zendesk 与 Amazon Connect 集成以创建任务
<a name="steps-integrate-zendesk"></a>

**注意**  
如果您使用自定义 AWS Identity and Access Management (IAM) 策略，有关设置 Amazon Connect 任务所需的 IAM 权限列表，请参阅[“任务”页面](security-iam-amazon-connect-permissions.md#tasks-page)。

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. 选择**任务**，然后选择**添加应用程序**。  
![\[“任务”页面，“添加应用程序”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-add-an-application-button.png)

1. 在**选择应用程序**页面，选择 **Zendesk**。

1. 在您选择与 Zendesk 集成后，页面上会列出应用程序要求。

   下图显示了 Zendesk 的要求。在此过程中，我们将引导您完成在 Zendesk 中选择“支持工单”事件类型的步骤。确认步骤并选择**下一步**。  
![\[“选择应用程序”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-choose-an-app-zendesk.png)

1. 在**建立连接**页面上，选择以下选项之一：
   + **使用现有连接**。这使您可以重复使用您可能在 AWS 账户中创建的现有 EventBridge 资源。
   + **创建新连接**：输入外部应用程序所需的信息。

     1. 输入您的应用程序实例 URL。此 URL 用于深度链接到在外部应用程序中创建的任务。

     1. 为您的连接提供一个易记的名称，例如 **Zendesk - 测试实例**。稍后，当您[添加规则](add-rules-task-creation.md)时，您会引用这个易记的名称。  
![\[建立连接页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-zendesk.png)

1. 选择 “**复制**” 以复制您的 AWS 账户 ID，然后选择 “**登录到 Zendesk**”。这会暂时将您从**建立连接**页面移开，但您很快就会返回该页面。

1. 登录 Zendesk 后，选择 **Connect** 以连接适用于亚马逊 EventBridge的事件连接器。  
![\[Zendesk 中的集成页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-connect-zendesk-eventbridge.png)

1. 在 Zendesk 中，在 **Amazon Web Services** 页面上，粘贴您的 Amazon Web Services 账户 ID，选择您所在的区域，选择**支持工单**，确认使用条款，然后选择**连接**。Zendesk 在亚马逊 EventBridge上创建了一个资源。  
![\[Zendesk 中的“Amazon Web Services”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-connect-zendesk-support-ticket.png)

1. 返回 Amazon Connect 中的**建立连接**页面，选择**下一步**。

1. 在**建立连接**页面，您会看到一条消息，提示 Amazon Connect 已成功连接到 Zendesk。选择**下一步**。  
![\[建立连接页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-final-zendesk.png)

1. 在**查看和集成**页面，检查**连接状态**是否显示为**已连接**，然后选择**完成集成**。

   这将创建一个连接，将 Zendesk 的 EventBridge 资源关联到 Amazon Connect。  
![\[“查看和集成”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-review-and-integrate-zendesk.png)

1. 在**任务**页面，将列出新的 Zendesk 连接，如下图所示。  
![\[任务页面显示新的 Zendesk 连接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-establish-connection-final2-zendesk.png)

完成了！接下来，添加规则，告诉 Amazon Connect 何时创建任务以及如何路由任务。有关说明，请参阅[为 Amazon Connect 中的第三方集成生成任务创建规则](add-rules-task-creation.md)。

## 连接未成功建立时该怎么办
<a name="fix-connection-not-established-zendesk"></a>

如果您在 Zendesk 中设置连接时未正确选择**支持工单**事件类型，在流中提示您这样做之后，连接可能无法创建任务。要修复此问题，请登录 Zendesk，然后更新该设置，如下图所示。

![\[“Amazon Web Services”页面，“支持工单”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/zendesk-support-ticket.png)


还有一种情况是，您在设置时可能没有选择 Amazon Connect 实例所在的正确 AWS 区域 EventBridge。修复方法：

1. 转到 EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 断开 EventBridge 连接。

1. 在 Amazon Connect 控制台中，重启流。

# 监控 Amazon Connect 中的任务创建
<a name="monitor-task-creation"></a>

建立连接后，如果连接停止运行，请在 Amazon Connect 中解除连接，然后重新建立连接。如果这不能解决问题，请执行以下操作。

**Zendesk**

1. 转到 EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 检查事件源连接的状态以查看其是否处于活动状态。

**Salesforce**

1. 前往亚马逊 AppFlow 控制台，网址为 [https://console.aws.amazon.com/appflow](https://console.aws.amazon.com/appflow)）。

1. 监控为已设置的账户创建的流。

下图显示了 Salesforce 的亚马逊 AppFlow 控制台中的流程是什么样子。它包含了有关连接状态以及上次运行时间的信息。

![\[适用于 Salesforce 的亚马逊 AppFlow 控制台。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/salesforce-appflow-flow.png)


对于 Zendesk 和 Salesforce，您可以前往 EventBridge 控制台查看您的连接状态，并查看连接状态是处于活动状态、待处理状态还是已删除。[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)

下图显示了一个示例 EventBridge 控制台。

![\[EventBridge 控制台示例。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/eventbridge-zendesk-salesforce-connection-health.png)


# 断开 Amazon Connect 与第三方连接的连接
<a name="disassociate-connection"></a>

您可以随时解除连接，并停止根据来自外部应用程序的事件自动生成任务。

**停止自动生成任务**

1. 选择应用程序，然后选择**删除连接**。  
![\[与 Salesforce 页面解除连接。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-disconnect-connection.png)

1. 键入**删除**，然后选择**删除**。

   如果你需要调试，你仍然可以去亚马逊 AppFlow (Salesforce) 或 EventBridge。  
![\[亚马逊 AppFlow上的 “断开与 Salesforce 的连接” 选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-disconnect-2.png)

**从 Zendesk 中完全删除连接**

1. 登录 Zendesk，然后导航到**https://[subdomain].zendesk.com/admin/平台** /集成。

1. 断开 EventBridge 连接。

**从 Salesforce 中完全删除连接**
+ 在 [https://console.aws.amazon.com/appflow 上](https://console.aws.amazon.com/appflow)打开亚马逊 AppFlow 控制台，然后删除在 Amazon Connect 中创建的 Salesforce 连接和流程。

  流程是使用 amazon-connect-salesforce-to-eventbridge-[子域] 的名称模式创建的。

  使用命名模式创建连接 amazon-connect-salesforce-[子域]

要重新启用自动生成任务，请重复设置步骤。

# 在 Amazon Connect 中创建自动执行任务的规则
<a name="connect-rules"></a>

规则是 Amazon Connect 根据您指定的条件自动执行的操作。联络中心经理、主管和 QA 分析师可以从 Amazon Connect 控制台快速创建规则。无需编码。

## 更多信息
<a name="rules-more-information"></a>
+ 要以编程方式创建和管理规则，请参阅《Amazon Connect API 参考指南》**中的[规则操作](https://docs.aws.amazon.com/connect/latest/APIReference/rules-api.html)和 [Amazon Connect 规则功能语言](https://docs.aws.amazon.com/connect/latest/APIReference/connect-rules-language.html)。
+ [根据通话中的关键字和短语在 Contact Lens 中为主管添加实时提醒](add-rules-for-alerts.md)
+ [通过将对话与自然语言陈述或特定字词和短语进行匹配，自动对联系进行分类](rules.md)
+ [创建生成任务的规则](contact-lens-rules-create-task.md)
+ [创建生成 EventBridge 事件的规则](contact-lens-rules-eventbridge-event.md)
+ [创建用于发送电子邮件通知的 规则](contact-lens-rules-email.md)
+ [将绩效评估通知主管和座席](create-evaluation-rules.md)
+ [在 Amazon Connect 中创建实时指标提醒](rule-real-time-metrics.md)
+ [为 Amazon Connect 中的第三方集成生成任务创建规则](add-rules-task-creation.md)

# 为 Amazon Connect 中的第三方集成生成任务创建规则
<a name="add-rules-task-creation"></a>

将外部应用程序设置为自动生成任务后，您需要构建规则，告知 Amazon Connect 何时创建任务以及如何路由任务。

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

1. 在 Amazon Connect 的导航菜单上，选择**规则**。

1. 在**规则**页面，使用**创建规则**下拉列表选择**外部应用程序**。

1. 在**触发器和条件**页面上，为规则指定名称。规则名称中不允许使用空格。  
![\[“新规则”页面，规则名称中不允许使用空格。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-lens-add-category-rules.png)

1. 选择将生成任务的事件，以及必须发生该事件的外部应用程序的实例。例如，下图显示了在 Zendesk 中创建新工单时触发器。必须满足的条件是类型等于问题。然后就会生成一个任务。  
![\[“时间”和“类型”下拉菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/tasks-add-rule-for-zendesk.png)

   1. 为外部应用程序选择实例。

   1. 选择生成任务必须满足的条件。

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

1. 在**操作**页面，指定满足规则时要生成的任务，如下图所示  
![\[“操作”页面，满足规则时要生成的任务。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/task-rule-action-to-take.png)

   1. 任务描述显示在座席的联系人控制面板 (CCP) 中。

   1. 任务引用名称将作为指向指定 URL 的链接显示给座席。

1. 选择**保存**。

## 测试规则
<a name="test-rules-task-creation"></a>

1. 转到外部应用程序并创建启动操作的事件。例如，在 Zendesk 中，创建一个类型为**问题**的工单。

1. 前往**分析和优化**、**联系搜索**。

1. 在**频道**下，选择**任务**，然后选择**搜索**。

1. 验证任务是否已创建。

# 在 Amazon Connect 中设置电子邮件
<a name="setup-email-channel"></a>

下面概述了为联络中心设置电子邮件渠道的步骤。
+ [为您的 Amazon Connect 实例启用电子邮件](enable-email1.md)。在此过程中，您将获得一个自动生成的电子邮件地址。您还可以选择添加五个自定义地址。
+ [创建电子邮件地址](create-email-address1.md).
+ [创建或更新电子邮件队列](create-queue.md)：在 “出**站电子邮件配置**” 部分：
  + **默认电子邮件地址**：指定代理在回复或发起电子邮件时预先选择的出站电子邮件地址。
    + 这必须是 Amazon Connect 中经过验证的电子邮件地址（在 Amazon Connect 中使用经亚马逊 SES 验证的域名创建的电子邮件地址）。
    + 这应该是该队列中最常用的电子邮件地址。
    + 对于代理发起的出站电子邮件，代理可以使用其路由配置文件中配置的默认出站队列中的默认电子邮件地址发送电子邮件。座席还可以从队列中配置**的其他电子邮件地址**中进行选择，这样您就可以根据其角色或团队灵活地控制代理可以使用哪些电子邮件地址。
    + 此模型与出站语音联系类似，您可以在其中指定出站呼叫者 ID 和每个队列的流量，而座席则使用其路由配置文件中的默认出站队列。
  + **出站电子邮件流**：为从该队列发送的出站电子邮件选择要执行的流程。您可以选择类型为 “出站” 的流[Amazon Connect 中的默认出站流：“此次通话未录音”](default-outbound.md)或其他流。
    + 您在此处配置的出站电子邮件流适用于代理对该队列中收到的入站电子邮件联系人的回复，以及当该队列被选为座席路由配置文件中的默认出站队列时，代理发起的出站电子邮件。
    + 如果您未指定出站电子邮件流，[Amazon Connect 中的默认出站流：“此次通话未录音”](default-outbound.md)则会自动用于该队列中的所有出站电子邮件。
    + 与出站语音联系人类似，为每个队列配置不同的出站电子邮件流可以让你灵活地根据队列执行不同的联系人流。这使您可以为不同的团队、品牌或业务部门自定义出站电子邮件体验。

  在 “**其他电子邮件地址**” 部分：
  + **搜索电子邮件地址**：最多选择 49 个其他电子邮件地址，工程师可以在回复或发起电子邮件时使用这些电子邮件地址。工程师可以使用其工作区中的下拉列表从所有已配置的电子邮件地址（默认地址加上其他）中进行选择（请参阅[选择 “发件人” 电子邮件地址](agent-select-from-email.md)）。每个队列最多可以配置 50 个电子邮件地址（默认 1 个 \$1 额外 49 个）。

  可用电子邮件地址列表尊重[基于标签的访问控制 (TBA](https://docs.aws.amazon.com/connect/latest/adminguide/tag-based-access-control.html) C)。代理只能根据分配的标签查看他们有权使用的电子邮件地址。
+  [创建或更新路由配置文件](routing-profiles.md)以指定座席可以处理电子邮件联系。
**重要**  
在路由配置文件中：  
**默认出站队列**定义了代理发起的任何出站电子邮件时可用的电子邮件地址列表。代理可以从在此队列上配置的电子邮件地址中进行选择。
**每个座席的最大联系数**定义座席可以接收的电子邮件数量，而该数值的两倍则是座席可以发起的出站电子邮件数量。例如，如果您将**每个座席的最大联系数**设置为 5，则座席最多可以接收 5 封电子邮件并创建最多 10 封由座席发起的出站电子邮件。
+  [创建消息模板](create-message-templates1.md)。电子邮件模板可以为座席定义电子邮件的结构，例如，签名或免责声明，或者完整的回复。
+ 使用[发送消息](send-message.md)数据块配置流。使用此数据块，根据模板或自定义消息向您的客户发送消息。此外，您还可以指定：
  + 收件人和发件人电子邮件地址和显示名称。您可以通过使用[系统属性](connect-attrib-list.md#attribs-system-table)来手动或动态指定它们，例如：
    + **客户端点地址**：这是发起联系的客户的电子邮件地址。
    + **系统电子邮件地址**：这是客户将电子邮件发送到的电子邮件地址。
    + **客户显示名称**：从客户发送给您的电子邮件中捕获该名称。
    + **系统显示名称**：发送给客户的电子邮件的显示名称。
    + **抄送电子邮件地址列表**：客户电子邮件的抄送栏中的电子邮件地址完整列表。
    + **收件人电子邮件地址列表**：客户电子邮件的收件人栏中的电子邮件地址完整列表。

    例如，要在客户向您发送电子邮件时自动回复，请将**电子邮件地址**动态设置为**客户端点地址**，将**显示名称**动态设置为**客户显示名称**。
  + **消息**：指定一个模板或输入纯文本。
    + 您可以使用**分段属性** - **电子邮件主题**来动态指定**主题**。
    + 您可以通过选择**用户定义的**属性来动态指定**消息**。
  + **联系链接**：选择是否要将入站联系电子邮件链接到出站联系电子邮件。您可能不想为自动回复电子邮件选择此选项。
+ 使用[检查联系属性](check-contact-attributes.md)数据块中的属性检查联系渠道。如果是电子邮件，您可以使用以下[分段属性](connect-attrib-list.md#attribs-segment-attributes)来检查：
  + **电子邮件主题**：例如，您可以检查主题中是否有某些关键字。
  + **Amazon SES Spam Verdict** 和 **Amazon SES Virus Verdict**：当客户的电子邮件进入时，Amazon SES 会扫描它，以查找垃圾邮件和病毒。例如，如果条件等于“失败”（即，电子邮件未通过检查），则您可以断开联系，或将电子邮件发送到特殊队列，让管理人员来审查。
+ 向需要发起出站电子邮件的座席分配以下安全配置文件权限。
  + **联系人控制面板（CCP）**- **发起电子邮件对话**

# Amazon Connect 电子邮件的工作原理
<a name="email-capabilities"></a>

Amazon Connect 电子邮件提供许多内置功能，让您能轻松对客户服务电子邮件进行优先级排序、分配和自动化解决，从而提高客户满意度和座席的工作效率。您可以接收和回复客户发送到您[配置的电子邮件地址的电子邮件](create-email-address1.md)，或者使用 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html)API 在您的网站或移动应用程序上使用网络表单提交的电子邮件。

Amazon Connect 电子邮件与 [Amazon Simple Email Service（SES）](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html)集成，可收发电子邮件，监控[标记为垃圾邮件或包含病毒的内容](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-concepts.html#receiving-email-auth-and-scan)、[送达成功率](https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html)和[发件人信誉结果](https://docs.aws.amazon.com/ses/latest/dg/monitor-sender-reputation.html)。

 本主题阐述 Amazon Connect 电子邮件与 Amazon SES 如何协同工作来提供无缝的客户体验。

**Topics**
+ [接收电子邮件](#email-capabilities-howreceived)
+ [电子邮件联系](#email-capabilities-howtranslated)
+ [每个电子邮件消息就是一个唯一的电子邮件联系](#email-capabilities-howmanaged)
+ [电子邮件线程](#email-capabilities-howthreadsmanaged)
+ [发送电子邮件](#email-capabilities-howemailssent)

## 接收电子邮件
<a name="email-capabilities-howreceived"></a>

Amazon Connect 可以通过三种主要方式接收电子邮件：
+ **方法 1**：使用 Amazon Connect 中定义的[电子邮件地址](create-email-address1.md)（例如 suppor *customer-domain* t@ .com）使用[来自亚马逊 SE *instance-alias* S 的经过验证](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)的电子邮件域，例如与 Amazon Connect 实例一起提供的电子邮件域（例如 @ .email.connect.aws）或您拥有或由公司提供的经过验证的自定义域名（例如，@ .com）。*customer-domain*有关引入自定义电子邮件域的详细信息，请参阅[为您的实例启用电子邮件](enable-email1.md)中的[步骤 3：使用您自己的自定义电子邮件域](enable-email1.md#use-custom-email)。
+ **方法 2**：使用电子邮件服务器上的路由规则（例如 [Microsoft 365](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/set-up-connectors-to-route-mail) Connectors、[Google Workspace 邮件路由](https://support.google.com/a/answer/2614757?hl=en&ref_topic=2921034&sjid=9077065025577504786-NC)），使用已登录到[亚马逊 SES 的经过验证的电子邮件域（例如，@ *customer-domain* .com）将传入的电子邮件发送到 Amazon SES 的其中一个 SMTP 终端节点](https://docs.aws.amazon.com/general/latest/gr/ses.html)。
+ **方法 3**：使用 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html)API 在您的网站或移动应用程序中使用网络表单开始电子邮件联系。这会启动入站电子邮件联系，类似于客户向您的电子邮件地址发送电子邮件。

下图说明了 Amazon Connect 如何使用上述每种方法[StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html)的 API 接收客户发送的电子邮件。

![\[显示消息如何以 Web 表单或电子邮件形式发送到 StartEmailContact API 的示意图。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-ses-diagram.png)


要集成方法 1 或 2，您需要先在 Amazon SES 上一个验证电子邮件域，然后才能在 Amazon Connect 中使用该电子邮件域。有关说明，请参阅[与您的 DNS 提供商一起验证 DKIM 域身份](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)。

要集成方法 3，请使用 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html)API。这是入站电子邮件联系的所有集成方法的主要 API。它的功能类似于[StartTaskContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html)。它需要您执行以下步骤之一：
+ 在入站电子邮件联系的“收件人”或“抄送”属性中，至少包含一个来自 Amazon Connect 实例的电子邮件地址。

- 或者 -
+ 从您的 Amazon Connect 实例定义一个入站流以路由所创建的入站电子邮件联系。

如果两者都定义了，则默认行为是优先采用来自您的 Amazon Connect 实例的入站流处理所创建的入站电子邮件联系。如果“收件人”或“抄送”电子邮件地址属性中包含来自您的 Amazon Connect 实例的多个电子邮件地址，将在您的 Amazon Connect 实例中创建多个入站电子邮件联系。

## 电子邮件消息如何变成电子邮件联系
<a name="email-capabilities-howtranslated"></a>

对于在 Amazon Connect 中接收的一般电子邮件，包括基于 Web 表单的电子邮件，[StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html)API 会公开请求对象上的基本电子邮件字段。此对象用于填充电子邮件信息并在 Amazon Connect 中发起电子邮件联系。包括以下字段：
+ “发件人”电子邮件地址
+ “收件人”电子邮件地址
+  “抄送”电子邮件地址
+ 主题
+ 纯文本或 HTML 消息正文
+ 附件

有关如何将电子邮件联系信息填充到电子邮件联系中的更多信息，请参阅“Amazon Connect 电子邮件联系数据模型”。

在 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html)API 执行请求参数验证并确保 Amazon Connect 实例中至少有一个收件人或抄送电子邮件地址有效且存在于 Amazon Connect 实例之后，会发生以下情况：

1. 生成一个联系 ID 并作为 API 响应正文的一部分返回。

1. 触发异步工作流来执行额外的电子邮件消息处理。

1. 流启动。这是与在 Amazon Connect 实例中找到的电子邮件地址关联的流。

作为此过程的一部分，您需要为 Amazon Connect 实例设置电子邮件消息和附件存储。
+ 电子邮件消息和附件都在您自己的 Amazon SES S3 存储桶中被存储和访问。
+ 其余的电子邮件联系属性（例如“收件人”、“抄送”、“主题”和其他属性）则存储在电子邮件联系中；请参阅 [Amazon Connect 联系记录的数据模型](ctr-data-model.md)。

下图展示电子邮件消息先从客户流向 Amazon SES，然后流向 Amazon Connect。它展示了电子邮件消息内容被存储在您的 S3 存储桶中，然后再从该存储桶中获取数据显示给座席。

![\[示图显示电子邮件消息内容存储在您的 S3 存储桶中。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-concepts-translated.png)


## 每个电子邮件消息就是一个唯一的电子邮件联系
<a name="email-capabilities-howmanaged"></a>

Amazon Connect 电子邮件与语音、聊天和任务不同。
+ 每个电子邮件消息，无论是入站 Amazon Connect 还是从中出站，都是其自己的唯一电子邮件联系。
+ 每个电子邮件联系人都包含该电子邮件的特定详细信息，例如发件人地址、收件人地址、抄送地址、主题 relatedContactId、电子邮件正文和附件存储位置的链接，以及与个人电子邮件联系人相关的其他详细信息。

 但是，与 Amazon Connect 中的其他渠道一样，电子邮件联系也有类似的发起方法，例如 `INBOUND`、`OUTBOUND`、`TRANSFER`、`API`、`QUEUE_TRANSFER` 和 `END/DISCONNECT`。它也有类似的状态，例如 `CREATED`、`QUEUED`、`CONNECTING`、`CONNECTED`、`MISSED`、`TRANSFERRED`、`ERROR`、`ENDED/DISCONNECTED`、`REJECTED`。

有关如何将电子邮件联系信息填充到电子邮件联系中的更多信息，请参阅 [Amazon Connect 联系记录的数据模型](ctr-data-model.md)。

## 电子邮件线程
<a name="email-capabilities-howthreadsmanaged"></a>

电子邮件线程功能可确保与同一个客户咨询相关的出站电子邮件和入站回复按照时间顺序整齐地彼此关联在一起。

为了保持整个电子邮件对话，Amazon Connect 使用电子邮件联系人上的几个字段（例如 relatedContactId 和遵循传统电子邮件客户端标准（RFC 5256）的电子邮件标题列表，将电子邮件联系人链接在一起。

大多数电子邮件客户端（例如 Gmail、Apple Mail 和 Outlook）都支持电子邮件线程。但是，请记住，也有一些电子邮件客户端不支持它。

当客户回复线程中的最新一封电子邮件消息时，线程会遵循一个直接的模式，如下图所示。

![\[直接模式的电子邮件线程。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-threading.png)


当客户回复电子邮件线程中一个较早的消息时，会形成一个电子邮件线程树，电子邮件线程模式看起来像下图中的示例这样：

![\[树模式的电子邮件线程。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-threading-tree.png)


在这两种情况下，Amazon Connect 都会为每一个与同一线程相关的电子邮件消息保存一份记录。每个电子邮件消息都可以被它之后的电子邮件访问。

## 发送电子邮件
<a name="email-capabilities-howemailssent"></a>

所有来自 Amazon Connect 的电子邮件消息都是从 Amazon SES 直接发送给您的客户。无论您使用的是随您的 Amazon Connect 实例提供的电子邮件域（例如 @ *instance-alias* .email.connect.aws）还是自定义的经过验证的域名（例如 @ .com）*customer*，Amazon SES 都通过验证域名身份获得授权，可以直接向您的客户发送电子邮件。

下图显示了 [StartOutboundEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundEmailContact.html)API 向亚马逊 SES 发送电子邮件，Amazon SES 将其发送给您的客户。

![\[该图显示了从 StartOutboundEmailContact API 通过 SES 发送给客户的电子邮件流。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-concepts-sent.png)


[StartOutboundEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundEmailContact.html)API 是所有出站电子邮件联系人集成方法的主要 API，包括代理回复入站联系人和代理发起的出站电子邮件联系人。
+ 它的功能与 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html)API 类似，但是它是相反的，因为它是出站的。
+  它要求在“收件人”或“抄送”电子邮件地址属性中至少有一个电子邮件地址，并且需要一个出站提示流来处理出站联系。

# 为您的 Amazon Connect 实例启用电子邮件
<a name="enable-email1"></a>

本主题面向有权访问 Amazon Connect 控制台的管理员。它说明了如何使用 Amazon Connect 管理网站为您的实例启用电子邮件。有关以编程方式启用电子邮件的 APIs 列表，请参阅[APIs 启用电子邮件](#apis-email-setup2)。

启用电子邮件后，您将获得一个自动生成的电子邮件域。您还可以选择使用自定义域。
+ **Amazon Connect 电子邮件域**。电子邮件域名为. **instance-alias*email.connect.aws。*
  +  您可以使用此域进行测试。
  + 或者，您可以使用此电子邮件域与 Amazon Connect 集成，然后开始在 Amazon Connect 中接收电子邮件。例如，如果您有像 *support@example.com* 这样的电子邮件地址，可以使用 *support@example.email.connect.aws* 将电子邮件转发到 Amazon Connect。
+ **自定义域** 您最多可以指定 5 个已[引入 Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc) 的自定义域。

## 步骤 1：将 Amazon SES 移至生产模式
<a name="move-ses-production"></a>

Amazon Connect 使用 Amazon SES 来发送和接收电子邮件。如果您有新的 Amazon SES 实例，则需要将其移出沙盒模式。有关说明，请参阅《Amazon SES 开发人员指南》**中的[请求生产环境访问权限（移出 Amazon SES 沙盒）](https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html)。

将 Amazon SES 移至生产模式后，如果您在创建 Amazon Connect 实例时已经启用了电子邮件，请跳至以下主题：
+ [（可选）步骤 3：使用您自己的自定义电子邮件域](#use-custom-email)
+ [步骤 5：在附件存储桶上配置 CORS 策略](#config-email-attachments-cors1)

## 步骤 2：获取默认的 Amazon Connect 电子邮件域
<a name="get-email-domain"></a>

只有在您已经创建了 Amazon Connect 实例但未启用电子邮件的情况下，这些步骤才适用。完成以下步骤，从 Amazon Connect 获取默认电子邮件域。

1. 在 Amazon Connect 控制台的左侧导航菜单中，选择**电子邮件**，然后选择**创建服务角色**。您只需为您的账户创建一次该角色。它允许 Amazon SES 将电子邮件路由到 Amazon Connect。

1.  选择**添加域**，如下图所示。  
![\[“管理电子邮件”页面，“添加域”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-aws-console1.png)

1. 在**添加电子邮件域**框中，选择 **Amazon Connect 电子邮件域**，如下图所示。当您选择此选项时，将自动生成域名：**instance-alias*.email.connect.aws。*您不能更改此电子邮件地址。  
![\[“添加电子邮件域”框，Amazon Connect 电子邮件域选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-add-email-domain.png)

## （可选）步骤 3：使用您自己的自定义电子邮件域
<a name="use-custom-email"></a>

您最多可以导入 5 个已[引入 Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc) 的自定义域。

1. 在 Amazon Connect 控制台的左侧导航菜单中，选择**电子邮件**，然后选择**添加域**，如下图所示。  
![\[Amazon Connect 控制台上的电子邮件渠道。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-aws-console.png)

1. 选择**使用自定义电子邮件域**。使用下拉框选择已[通过 Amazon SES 验证](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)的自定义域。  
![\[“使用自定义电子邮件域”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-add-custom-domain.png)

## 步骤 4：启用电子邮件并创建 Amazon S3 存储桶以存储电子邮件和附件
<a name="enable-email-buckets"></a>

只有在您已经创建了 Amazon Connect 实例但未启用电子邮件的情况下，这些步骤才适用。

您需要更新**数据存储**设置以启用电子邮件渠道，并指定用于存储电子邮件和附件的 Amazon S3 存储桶。电子邮件需要两个 Amazon S3 存储桶指针。它们可以位于同一个 Amazon S3 存储桶或两个不同的存储桶。

**重要**  
如果您为实例选择**启用附件共享**，则必须创建一个 Amazon S3 存储桶，并[在附件存储桶上配置 CORS 策略](#config-email-attachments-cors1)，如本主题所述。如果您不这样做，则**电子邮件渠道在您的实例中将无法工作**。

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. 在左侧导航菜单上，选择**数据存储**、**电子邮件消息**、**编辑**、**启用将电子邮件消息导出到 S3**，然后选择**保存**。

1. 完成**电子邮件消息**页面以创建或选择存储电子邮件消息的 S3 存储桶。下图显示了一个已完成页面的示例。  
![\[“数据存储”菜单选项，“电子邮件消息”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-messages-export-to-s3.png)

1.  如果要允许电子邮件附件，请同时选择**附件**。下图显示了这些选项。

下图中的**数据存储**页面显示用于电子邮件消息和附件的 Amazon S3 存储桶。

![\[用于存储电子邮件和附件的 Amazon S3 存储桶。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-s3-bucket.png)


## 步骤 5：在附件存储桶上配置 CORS 策略
<a name="config-email-attachments-cors1"></a>

要允许客户和座席上传和下载文件，请更新您的跨源资源共享 (CORS) 策略，以允许 `PUT` 和 `GET` 请求您用于附件的 Amazon S3 存储桶。这比 read/write 在您的 Amazon S3 存储桶上启用公共存储更安全，我们不建议这样做。

**要在附件存储桶上配置 CORS**

1. 查找用于存储附件的 Amazon S3 存储桶的名称：

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

   1. 在 Amazon Connect 控制台中，选择**数据存储**，然后找到 Amazon S3 存储桶的名称。

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

1. 在 Amazon S3 控制台中，选择您的 Amazon S3 存储桶。

1. 选择**权限**选项卡，然后向下滚动到**跨源资源共享（CORS）**部分。

1. 在附件存储桶上添加具有以下规则之一的 CORS 策略。有关 CORS 策略示例，请参阅《Amazon S3 开发人员指南》**中的[跨源资源共享：用例场景](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html#example-scenarios-cors)。
   + 选项 1：列出发送和接收附件的端点，例如您企业网站的名称。此规则允许来自您网站的跨源 PUT 和 GET 请求（例如 http://www.example1.com）。

     您的 CORS 策略应如下例所示：

     ```
     [
         {
             "AllowedHeaders": [
                 "*"
             ],
             "AllowedMethods": [
                 "PUT",
                 "GET"
             ],
             "AllowedOrigins": [
                 "*.my.connect.aws",
                 "*.awsapps.com"
             ],
             "ExposeHeaders": []
         }
     ]
     ```
   + 选项 2：将 `*` 通配符添加到 `AllowedOrigin`。此规则允许所有来源的跨源 PUT 和 GET 请求，因此您不必列出您的端点。

     您的 CORS 策略应如下例所示：

     ```
     [
         {                               
             "AllowedMethods": [
                 "PUT",
                 "GET"            
             ],
             "AllowedOrigins": [   
                 "*" 
                 ],
            "AllowedHeaders": [
                 "*"
                 ]
         }    
     ]
     ```

## 后续步骤
<a name="next-steps-email-setup3"></a>
+ [在 Amazon Connect 中设置附件扫描](setup-attachment-scanning.md)：本主题适用于熟悉 Lambda 的开发人员。您可以将 Amazon Connect 配置为使用首选的扫描应用程序扫描电子邮件附件。

## APIs 启用电子邮件
<a name="apis-email-setup2"></a>

使用以下命令 APIs 以编程方式启用电子邮件：
+ [CreateIntegrationAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html)
+ [AssociateInstanceStorageConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_AssociateInstanceStorageConfig.html)
+ [DescribeInstanceStorageConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeInstanceStorageConfig.html)

# 创建电子邮件地址
<a name="create-email-address1"></a>

本主题介绍如何使用 Amazon Connect 管理网站创建电子邮件地址。您可以创建客户可以回复的电子邮件地址，也可以创建仅限出站（“请勿回复”）的电子邮件地址。

有关 APIs 用于以编程方式创建和管理电子邮件地址的列表，请参阅[APIs 创建和管理电子邮件地址](#apis-manage-email-addresses1)。

您最多可以创建 100 个电子邮件地址。

**创建电子邮件地址**

1. 登录 Amazon Connect 管理员网站 https://*instance name*.my.connect.aws/。使用管理员账户，或者在其安全配置文件中具有**通道和流** - **电子邮件地址** - **创建**权限的账户。

1. 在导航菜单上，选择**渠道**、**电子邮件地址**。

1. 从下拉列表中选择一个域。该列表包含您在为实例启用电子邮件渠道时创建的自动生成的域。如果您添加了自定义域，列表中也可能最多显示五个。

1. 在**其他信息**下，您可以添加以下内容：
   + **友好的发件人名称**
   + **描述**：这是供您使用的，而不是面向客户的。
   + **流**：选择一个用于发送电子邮件的已发布流。将此字段留空，让该电子邮件地址仅用于出站通信。客户将无法回复该电子邮件。
**提示**  
要创建**请勿回复**电子邮件地址，即仅用于出站邮件而无法接受回复的地址，请不要选择要用于该电子邮件地址的流。

1. 在**标签**下，可以选择添加[标签](tagging.md)来管理谁可以在 Amazon Connect 和座席工作区中查看和访问电子邮件地址。

1. 选择**创建**。

## APIs 创建和管理电子邮件地址
<a name="apis-manage-email-addresses1"></a>

有关所有电子邮件地址的列表 APIs，请参阅 *Amazon Connect API 参考指南*中的[电子邮件操作](https://docs.aws.amazon.com/connect/latest/APIReference/email-api.html)。

使用以下命令 APIs 以编程方式创建地址：
+ [CreateEmailAddress](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateEmailAddress.html)
+ [DescribeEmailAddress](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeEmailAddress.html)
+ [UpdateEmailAddressMetadata](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateEmailAddressMetadata.html)

# 创建消息模板
<a name="create-message-templates1"></a>

如果您经常设计和发送特定类型的邮件（例如，每周电子邮件或约会提醒），则可创建该邮件并将它另存为消息模板。然后，您可以在每次需要发送该类型的消息时使用模板作为起点，而不是重新设计和编写消息。

本主题适用于想要使用管理网站创建消息模板的 Amazon Connect 管理员和联络中心经理。

**提示**  
尽管消息模板使用 Connect AI 代理 APIs，但消息模板不会产生额外的账单。您只需支付聊天消息价格或电子邮件价格。有关更多信息，请参阅 [Amazon Connect 定价](https://aws.amazon.com/connect/pricing/)。

## 什么是消息模板？
<a name="what-message-templates"></a>

*消息模板*是您可以在发送的消息中创建、保存然后重复使用的内容和设置集。在某些企业中，它们被称为*电子邮件模板*和*短信模板*。创建消息模板时，您可以在基于该模板的消息的各个组成部分中指定要重复使用的内容。

创建消息时，您可以选择用于消息的模板。如果选择模板，则 Amazon Connect 将使用模板中的内容和设置填充消息。

您可以在 Amazon Connect 中设计以下类型的消息模板：
+ **电子邮件模板**，用于回复客户发送给您的电子邮件消息，或可供座席用来应对常见问题的电子邮件消息。电子邮件模板可以为座席定义电子邮件的结构，例如签名，或者完整的回复。
+ **短信模板**，用于您在活动中发送的短信文本消息或者作为直接消息或测试消息发送给有限受众的短信文本消息。
+ **WhatsApp 模板**，用于您从活动中发送的 WhatsApp 消息，或者作为直接消息或测试消息发送给有限受众的消息。

您可以创建具有以下功能的模板：
+ 富文本格式（粗体、斜体、下划线、删除线、上标、下标）、富文本字体样式（颜色、突出显示、大小、标题、系列、块报价、代码块）、特殊字符、表情符号、列表（项目符号、编号）、对齐和缩进、表格、超链接和嵌入图像
+ 电子邮件模板中的属性，用于定义个性化详细信息，例如客户名称、客户电子邮件、客户账号、客户电话号码、客户地址和座席姓名。
+ 附件最大可达 1 MB。有关受支持的附件类型的列表，请参阅[Amazon Connect 功能规格](feature-limits.md)。

在创建基于模板的电子邮件消息时，Amazon Connect 将使用您在模板中定义的内容和设置填充消息。

## 如何创建消息模板
<a name="howto-message-templates"></a>

1. 使用 Amazon Connect 管理员帐户或在其安全配置文件中具有 “**内容管理**-**消息模板**-**创建**” 的用户帐户登录管理网站。

1. 在导航窗格中，选择**消息模板**。

1. 如果这是您第一次创建模板，则系统会提示您创建知识库，这是存储模板的位置。

   您的企业可以有多个知识库，但其中只有一个可以与模板相关联。

1. 选择**创建模板**。

1. 在 “**频道**” 下，选择一个频道。

1. 对于**名称**，输入模板的名称。名称必须以字母或数字开头。它最多可以包含 128 个字符。

1. 对于**描述 – *可选***，输入模板的简要描述。描述最多可包含 255 个字符。

1. 对于**路由配置文 – *可选***，输入座席的路由配置文件，以便能够从座席工作区使用此模板。

1. 根据您创建的是**电子邮件**、**短信**还是**WhatsApp**模板，请执行以下任一操作：

   对于电子邮件模板：

   1. 在**电子邮件详细信息**下，通过以下选项为使用模板的邮件指定内容：
      + 对于**主题**，输入要在邮件主题行中显示的文本。
      + 对于**正文**，输入要在消息正文中显示的内容。
        + **编辑器**：使用富文本编辑器输入内容。使用格式工具栏应用格式设置，将链接和其他内容添加到消息。要添加附件，您的 IT 管理员需要为此选项启用附件功能。
        + **代码**：手动输入 HTML 内容，包括格式、链接以及要包含在消息中的其他功能。

        您还可以通过使用属性在模板的主题和正文中包含个性化内容。为此，添加引用您或 Amazon Connect 创建的特定属性的消息变量，例如，存储用户的名字的属性。通过使用消息变量，可以为使用模板的消息的每个接收人显示不同的内容。

        要使用消息变量，请从**属性查找器**中选择现有属性的名称。Amazon Connect 会将其放入您的消息中。您可以将其复制并粘贴到所需位置。有关更多信息，请参阅 [向消息模板添加个性化内容](personalize-templates.md)。  
![\[“消息模板”页面上的属性查找器。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/message-template-attribute-finder.png)

   1. 在**标头 – *可选***下，您可以在电子邮件中添加两个静态标头。例如，要向促销电子邮件添加一键取消订阅链接，请添加以下两个标头：
      + **列表-取消订阅**：设置为贵组织的取消订阅链接。该链接必须支持 HTTP POST 请求，才能处理收件人的取消订阅请求。
      + **列表-取消订阅-发布**：设置为 `List-Unsubscribe=One-Click`。

      在电子邮件中包含取消订阅链接是一项最佳实践，并且在一些国家/地区是法律所要求的。如果您的模板包含具有此属性的链接，则您必须有一个系统来处理选择退出请求。

   1. 在输入完模板的内容和设置后，选择**保存**。

   1. 在向用户提供模板之前，建议您发送一封测试电子邮件消息，以确保模板可按预期正常工作。

   1. 当您准备好在流、活动中以及通过座席工作区向座席提供该模板时，请完成相应步骤将其[激活](#create-message-templates1)。

**对于短信模板：**

1. 在**正文**的**短信详细信息**下编写消息。按照上述说明，通过根据需要添加属性，来对消息进行个性化设置。

1. 在输入完模板的内容和设置后，选择**创建**。

1. 在向用户提供模板之前，建议您发送一封测试消息，以确保模板可按预期正常工作。

1. 当您准备好让短信模板在**发送消息**数据块中可用，或者让电子邮件模板可用于电子邮件活动时，请完成相应步骤将其[激活](#create-message-templates1)。

**对于 WhatsApp 模板：**

1. 在**WhatsApp 详细信息**下，从下拉列表中选择模板。请注意，只有经过 Meta 批准的模板才能用于创建消息模板。继续操作之前，请确保您导入的模板已在 Meta 业务 WhatsApp 管理器中获得批准。

1. 为模板定义名称并根据需要添加描述。

1. 选择 Meta 批准的模板后，您将看到以**正**文和**模板元数据 (JSON)** 格式显示的详细信息。

1. **属性映射：**要在 Amazon Connect 中启用个性化消息传送，您需要将导入的元属性映射到自定义文本。通过将现有的 Connect 属性与纯文本相结合，您可以为客户创建自定义消息。例如，你可能会在**正**文中看到 Hello \$1\$11\$1\$1，你可以`Attributes.Customer.FirstName`从 Connect 属性列表中选择进行匹配。

1. 可以将多种按钮类型添加到内容模板中。如果您选择的模板包含按钮，例如包含属性的网站 URL，则可以选择 Connect 属性进行映射，也可以输入静态文本。

1. 完成属性映射后，选择**保存**。

1. 在向用户提供模板之前，建议您发送一封测试消息，以确保模板可按预期正常工作。

# 激活消息模板
<a name="activate-message-templates"></a>

为了帮助您管理各个消息模板的开发和使用，Amazon Connect 支持所有类型的消息模板的版本控制。版本控制为您提供了一种创建模板更改历史记录的方法—每个版本都是模板在特定时间点的快照。版本控制还提供了一种控制使用模板的消息的内容和设置的方法。

您只能激活已**另存为新版本**的消息模板。这是为了防止意外激活草稿模板。

当模板版本**已激活**时，可以将其添加到 [Amazon Connect 流数据块：发送消息](send-message.md)，并可能通过座席工作区提供给座席使用。

**激活消息收发模板**

使用 Amazon Connect 管理员帐户或在其安全配置文件中具有 “**内容管理**-**消息模板**-**创建**” 的用户帐户登录管理网站。

1. 在左侧导航菜单中，选择**消息模板**。

1. 在**消息模板**页面上，使用**另存为新版本**选项保存模板。

1. 在**消息收发模板**页面上，重新打开刚刚保存的模板。

1. 使用下拉菜单选择要激活的模板版本。  
![\[模板的版本号。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/message-template-version.png)

1. 选择**激活**。  
![\[消息模板页面上的“激活”按钮。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/message-template-version-activate.png)

# 关于版本控制消息模板
<a name="about-version-message-templates"></a>

每次更改模板时，您都可以指定是要将更改另存为模板的新草稿，还是另存为模板的最新现有草稿的更新。在设计、开发和优化模板时，这些版本中的每个版本都将用作快照，这可帮助您跟踪模板的进度和状态。也就是说，在模板随着时间的推移而更改时，您可以使用版本控制来存储、跟踪和管理模板。你可以：
+ 跟踪模板的历史记录 – 对于每个模板，Amazon Connect 提供了该模板的版本列表。此列表显示每个版本的名称。此列表按时间顺序降序排列，首先列出最新版本。
+ 查看和比较模板的版本 – 通过使用版本列表，您可以浏览一个模板的以前版本。如果从列表中选择一个版本，则 Amazon Connect 将显示存储在该版本中的内容和设置。
+ 还原模板的以前版本 – 如果您在一个模板的最新版本中发现了问题，则可以还原不包含问题的以前版本。然后，您可以将该以前版本另存为模板的新版本。然后，新版本将成为模板的最新版本。

您还可以使用版本控制来控制可在消息中使用的模板版本。您可以通过将特定版本指定为模板的活动版本 来实现此目的。活动版本通常是最近审核并批准在消息中使用的版本，具体取决于您的组织开发和管理模板的工作流程。

将某个版本指定为活动版本时，允许在消息中使用该版本。在模板随着时间的推移而更改时，您可以将其他版本指定为活动版本，并且您可以多次更改该指定。

# 向消息模板添加个性化内容
<a name="personalize-templates"></a>

要使用模板在消息中提供动态的个性化内容，请将*消息变量* 添加到消息模板。*消息变量*是一个占位符，它引用您或 Amazon Connect 创建的用于存储用户相关信息的特定属性。每个属性通常对应于某位用户的一个特征，例如用户的名字或居住的城市。通过将消息变量添加到模板中，您可以使用这些属性将自定义内容提供给使用模板的消息的每位收件人。

如果模板包含消息变量，则 Amazon Connect 会将每个变量替换为每个收件人当前对应的属性值。在每次发送使用模板的消息时，都会执行此操作。这意味着您可以向每位收件人发送个性化内容，而无需创建多个自定义版本的消息或消息模板。您还可确保消息中使用了您拥有的收件人的最新信息。

例如，如果您的项目是适用于跑步者的健身应用程序，其中包含每个用户的名字、偏好的活动和个人成绩记录属性，则可以在模板中使用以下文本和消息变量：

`Hi {{Attributes.Customer.FirstName}}, attached is information about the insurance plans we discussed.`

当您发送使用该模板的消息时，Amazon Connect 会将变量替换为每个收件人的每个属性的当前值。以下示例演示此操作。

**示例 1**  
`Hi Sofia, attached is information about the insurance plans we discussed.`

**示例 2**  
`Hi Alejandro, attached is information about the insurance plans we discussed.`

## 添加消息变量
<a name="message-templates-add-variables"></a>

您可以在创建的新模板或现有模板中添加消息属性。如果您将变量添加到现有模板，则 Amazon Connect 不一定会将更改应用于使用该模板并且尚未发送的消息。这取决于您将变量添加到的模板版本以及之前如何配置使用该模板的消息。

**将消息变量添加到消息模板**

1. 在导航窗格中，选择**消息模板**。

1. 在**消息模板**页面上，执行以下操作之一：
   + 要创建新模板并向其中添加消息变量，请选择**创建模板**。然后，在模板页面上，输入模板的名称和（可选）模板的描述。
   + 要将消息变量添加到现有模板，请选择要将变量添加到的模板。然后，在模板页面上，选择**编辑**。在**模板详细信息**下面，使用版本选择器选择要作为起点的模板版本。如果您选择最新的版本，您可以将更改直接保存到该模板版本中。否则，您可以将更改另存为模板的新版本。

1. 在消息详细信息部分，确定添加消息变量的位置。对于电子邮件模板，您可以向邮件主题或正文添加变量。对于短信模板，您可以向正文中添加变量。

1. 将光标放在您希望在消息中插入属性的位置。单击或点击**属性查找器**，然后滚动到您想要为其添加消息变量的属性类型。  
![\[“消息模板”页面上的属性查找器。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/message-template-attribute-finder.png)

   您可以从以下类型的属性中进行选择：
   + **系统属性**：
     + **CustomerEndpointAddress**：发起联系的客户电子邮件地址。
     + **SystemEmailAddress**：客户向其发送电子邮件的电子邮件地址。
     + **名称**：客户发送给您的联络中心的电子邮件中的显示名称。
   + **座席属性**：
     + **FirstName**
     + **LastName**
   + **客户配置文件属性**。有关完整列表和描述，请参阅[“客户配置文件”属性](connect-attrib-list.md#customer-profiles-attributes)。
     + **推荐属性**：在出站营销活动中使用 Predictive Insights 时，您可以在消息模板中加入个性化的产品推荐。当您在事件触发的活动中配置推荐时，这些属性可用。

       使用索引访问每个建议，`{{Attributes.Customer.Recommendations.[0].CatalogItem.Name}}`例如第一个建议、`{{Attributes.Customer.Recommendations.[1].CatalogItem.Name}}`第二个建议，依此类推。  
![\[电子邮件模板编辑器在属性查找器中显示推荐属性，在邮件正文中显示个性化产品推荐。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/RecommendationAttributesInTemplate.png)

       有关在活动中配置推荐的更多信息，请参阅[使用事件触发器创建出站活动](how-to-create-campaigns-using-event-triggers.md)。

1. 当您在属性查找器中单击某个属性时，该属性会自动放置在您的消息中。您可以将属性复制和粘贴到其他位置。

   粘贴属性后，Amazon Connect 会将其显示在两组大括号中，例如 `{{Attributes.Agent.FirstName}}`。下图显示了一封包含三个属性的电子邮件：客户的名字和姓氏以及座席的名字。  
![\[带有消息属性的电子邮件消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/message-template-email-attributes.png)

1. 完成后，请执行以下操作之一：
   + 如果您已将消息变量添加到新模板，请选择**保存**。
   + 如果您将消息变量添加到现有模板并希望将更改另存为模板的新版本，请选择**另存为新版本**。
   + 如果您已将消息变量添加到现有模板并希望将更改另存为模板最新草稿的更新，请选择**保存**。如果要更新草稿并根据草稿创建新版本，请选择**另存为新版本**。

# 使用消息模板助手
<a name="message-template-helpers"></a>

通过 Amazon Connect 消息模板，客户可以基于 Handlebars.js 语言创建可重复使用的消息模板。助手提供各种功能，例如，将价格格式化为特定地区的货币，或者添加基于时区的地点，等等。助手可以使用特定的字符串或整数作为值，也可以使用特定的 Amazon Connect 消息变量。

这些是助手的类别，将在以下部分中进行介绍。

## 默认帮助程序
<a name="defaulthelpers"></a>

本部分介绍 Handlebars 提供的**内置**助手。

**重要**  
不支持由 Handlebars 提供的内置 `with` 助手。但是，完全支持所有其他 Handlebars 助手。有关完整列表，请参阅 [handlebarsjs.com](https://handlebarsjs.com) 上的[内置助手](https://handlebarsjs.com/guide/builtin-helpers.html)。

 有以下内置助手：
+ `each` – 迭代列表。
**注意**  
最大列表大小为 15 个项目。
+ `if` – 评估语句。

*each*  
迭代列表。此助手仅使用一个块语句。您可以选择：  
+ 在请求中传递 `@index` 以引用当前循环索引。
+ 使用 `this` 助手引用被迭代的当前元素。
+ 使用 `<li>` 标签以列表形式返回助手响应。
**用法**  
`{{#each value}}`  
位置 `{{@index}}` 的值为 `{{this}}`。  
`{{else}}`  
条件为假。  
`{{/each}}`  
`each` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/each}}` 结束。  
**示例**  
在此示例中，`each` 用于返回用户喜爱的颜色列表。对于 `false`，返回 `else` 语句。如果请求是这样：  
`{{#each User.UserAttributes.FavoriteColors}}`  
`<li>{{this}}</li>`  
`{{else}}`  
*You have no favorite colors.*  
`{{/each}}` 返回  
+ *red*
+ *blue*
+ *yellow*
对于真语句。

*if*  
评估某件事是否为真，并基于评估结果返回响应。  
**用法**  
`{{#if value}}`  
值未定义  
`{{else}}`  
值未定义  
`{{/if}}`  
`if` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/if}}` 结束。  
**示例**  
在此示例中，`if` 助手用于评估是否有用户的名字。如果找到名字，则返回在响应中传递用户名字的问候语。否则，`else` 语句返回备选问候语。  
`{{#if User.UserAttributes.FirstName.[0]}}`  
`Hello {{User.UserAttributes.FirstName.[0]}},`  
`{{else}}`  
*Hello,*  
`{{/if}}`  
*Hello, Jane*如果`if`助手为真，则返回。

## 条件帮助程序
<a name="conditionhelpers"></a>

本部分介绍**条件**助手。

条件助手既可以在单行上使用，也可以在块语句中使用。无论您使用哪种助手方法，都可以自定义响应。您可以在单行语句和块语句中传递额外的条件助手。以下条件助手首先显示单行的用法，然后显示使用可选 `else` 子句的块语句的用法。有以下条件助手：
+ `and` – 比较所有传递的元素是否相等。
+ `eq` – 测试两个元素是否相等。
+ `gt` – 测试一个元素是否大于另一个元素。
+ `gte` – 测试一个元素是否大于或等于另一个元素。
+ `if` – 评估某件事是否为真。
+ `lt` – 测试一个元素是否小于另一个元素。
+ `lte` – 测试一个元素是否小于或等于另一个元素。
+ `neq` – 评估两个元素是否不相等。
+ `not` – 反转布尔运算的响应。
+ `or` – 比较自变量中的任何元素是否相等。

*and*  
比较参数中传递的*所有* 元素是否相等，然后根据结果返回响应。此助手可用于非布尔值。您必须为条件传递至少两个元素。  
**用法**  
+ `{{and valuea valueb valuec valued yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#and valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/and}}`

  `and` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/and}}` 结束。
**示例**  
在此示例中，`eq` 用在 `and` 块语句中，以确定为 `Location.City ` 和 `Location.Country` 属性传递的两个字符串是否为真。如果两个条件相等，则返回一个真语句。如果其中任何一个属性为假，则返回 `else` 语句。  
`{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}`  
*You live in Los Angeles and the US.*  
`{{else}}`  
*You don’t live in Los Angeles and the US.*  
`{{/and}}`

*eq*  
测试两个元素是否相等，或者一个元素的值是否等于传递的字符串。  
**用法**  
+ `{{eq valuea valueb yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#eq valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/eq}}`

  `eq` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/eq}}` 结束。
**示例**  
在此示例中`eq`，用于评估的值是否`User.UserAttributes.FavoriteColors.[0]`为*Red*。如果响应为 `true`，则返回一个真语句。如果响应为 `false`，则返回一个 `else` 语句。  
`{{#eq User.UserAttributes.FavoriteColors.[0] "red"}}`  
*Your favorite color is red.*  
`{{else}}`  
*You don't like red.*  
`{{/eq}}`

*gt*  
测试一个元素的值是否大于另一个元素的值。  
**用法**  
+ `{{gt valuea valueb yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#gt valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/gt}}`

  `gt` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/gt}}` 结束。
**示例**  
在此示例中，帮助程序将`User.UserAttributes.UserAge.[0]`属性的值与字符串进行比较*17*，以验证用户的年龄是否大于 17 岁。如果响应为 `true`，则返回一个真语句。如果响应为 `false`，则返回一个 `else` 语句。  
`{{#gt User.UserAttributes.UserAge.[0] "17"}}`  
*You are old enough to rent a car.*  
`{{else}}`  
*You are not old enough to rent a car.*  
`{{/gt}}`

*gte*  
测试一个元素的值是否大于或等于另一个元素。  
`Usage`  
+ `{{gte valuea valueb yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#gte valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/gte}}`

  `get` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/gte}}` 结束。
**示例**  
在此示例中，帮助程序将`User.UserAttributes.UserAge.[0]`属性与字符串进行比较*18*，以验证用户的年龄是否大于或等于 18 岁。如果响应为 `true`，则返回一个真语句。如果响应为 `false`，则返回一个 `else` 语句。  
`{{#gte User.UserAttributes.UserAge.[0] "18"}}`  
*You are old enough to rent a car.*  
`{{else}}`  
*You are not old enough to rent a car.*  
`{{/gte}}`

*if*  
评估某件事是否为真，并基于评估结果返回响应。  
**用法**  
+ `{{#if value}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#if value}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/if}}`

  `if` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/if}}` 结束。
**示例**  
在此示例中， 助手用于评估是否有用户的名字。如果找到名字，则返回在响应中传递用户名字的问候语。否则，else 语句返回备选问候语。  
`{{#if User.UserAttributes.FirstName.[0]}}`  
*Hello* `{{User.UserAttributes.FirstName.[0]}}`*,*  
`{{else}}`  
*Hello,*  
`{{/if}}`  
*Hello Jane,*如果助手为真，则返回。

*lt*  
测试一个元素的值是否小于另一个元素的值。  
**用法**  
+ `{{lt valuea valueb yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#lt valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/lt}}`

  `lt` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/lt}}` 结束。
**示例**  
在此示例中，帮助程序将`User.UserAttributes.UserAge.[0]`属性与字符串进行比较*18*，以验证用户的年龄是否小于 18 岁。如果响应为 `true`，则返回一个真语句。如果响应为 `false`，则返回一个 `else` 语句。  
`{{#lt User.UserAttributes.UserAge.[0] "18"}}`  
*You are not old enough to rent a car.*  
`{{else}}`  
*You are old enough to rent a car.*  
`{{/lt}}`

*lte*  
测试一个元素的值是否小于或等于另一个元素的值。  
**用法**  
+ `{{lte valuea valueb yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#lte valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/lte}}`

  `lte` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/lte}}` 结束。
**示例**  
在此区块语句中，助手将`User.UserAttributes.UserAge.[0]`属性与字符串进行比较*17*，以验证用户的年龄是否等于 17 岁或更小。如果响应为 `true`，则返回一个真语句。如果响应为 `false`，则返回一个 `else` 语句。  
`{{#lte User.UserAttributes.Age.[0] "17"}}`  
*You are not old enough to rent a car.*  
`{{else}}`  
*You are old enough to rent a car.*  
`{{/lte}}`

*neq*  
测试两个元素是否*不* 相等。  
**用法**  
+ `{{neq valuea valueb yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#neq valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/neq}}`

  `neq` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/neq}}` 结束。
**示例**  
在此块语句中，对照字符串 `Red` 检查 `User.UserAttributes.FavoriteColors.[0]` 属性。如果响应为 `true`，则返回一个真语句。如果响应为 `false`，则返回一个 `else` 语句。  
`{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}`  
*You do not like red.*  
`{{else}}`  
*You like red.*  
`{{/neq}}`

*not*  
反转布尔运算的响应，这样，如果 `not` 是正向比较，则返回一个 `true` 语句。如果响应为假，则返回一个 else 语句。  
**用法**  
+ `{{not value yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。
+ `{{#not value}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/not}}`

  `not` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/not}}` 结束。
**示例**  
在此块语句中*red*，使用`eq`帮助程序对照字符串检查`User.UerAttributes.FavoriteColors.[0]`属性。然后，`not` 助手返回 `eq` 助手的相反值。如果响应返回除之外的任何颜色*red*，则返回`true`一条语句。如果响应返回*red*，则返回一条表示错误`else`语句的语句。  
`{{#not (eq User.UserAttributes.Favorite.Colors.[0] "red")}}`  
*You do not like red.*  
`{{else}}`  
*You like red.*  
`{{/not}}`  
**示例**  
在本示例中，  
`{{not (eq User.UserAttributes.FavoriteColors.[0] "red")}}`  
如果`User.UserAttributes.FavoriteColors.[0]`是，则返回 false *red*。

*或者*  
比较参数中是否有*任何* 元素相等，然后根据结果返回响应。此助手可用于非布尔值。  
**用法**  
+ `{{or valuea valueb valuec valued yes='y' no='n'}}`

  根据条件，可以将*y*和*n*替换为其他值*no*，例如*yes*和，或任何其他要返回的字符串。您必须为条件传递至少两个元素。
+ `{{#or valuea valueb}}`

  条件为真。

  `{{else}}`

  条件为假。

  `{{/or}}`

  `or` 的前面必须加上英镑符号 (`#`)，并且块语句以结束语句 `{{/or}}` 结束。
**示例**  
在此 `or` 块语句中，还使用 `eq` 助手比较了 `Location.City` 属性的两个字符串。如果其中任何一个属性为 `true`，则返回真语句。如果有一个或多个响应为 `false`，则返回一个 `else` 语句。  
`{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}`  
*You live on the West Coast of the United States.*  
`{{else}}`  
*You do not live on the West Coast of the United States.*  
`{{/or}}`

## 字符串助手
<a name="stringhelpers"></a>

本部分介绍以下**字符串**助手：
+ `abbreviate` – 截断一个值。
+ `capitalize` – 将空格之间的每个单词都大写。
+ `capitalizeFirst` – 将值的第一个字符大写。
+ `center` – 将值居中。
+ `cut` – 剪切一个值。
+ `dateFormat` – 设置日期样式。
+ `inflect` – 根据计数返回单数或复数字符串。
+ `join` – 连接数组、迭代器或可迭代对象。
+ `ljust` – 将值对齐到左边距。
+ `lower` – 将值转换为小写。
+ `now` – 显示当前日期。
+ `ordinalize` – 对数字值进行排序。
+ `replace` – 将一个字符串替换为另一个字符串。
+ `rjust` – 将值对齐到右边距。
+ `slugify` – 将值转换为小写并删除非单词字符，将空格转换为连字符，并删除尾随的空格。
+ `stripTags` – 从值中删除 [X] 个 HTML 标签。
+ `substring` – 返回一个新字符串作为传递值的子字符串。
+ `upper` – 将传递的值转换为大写。
+ `yesno` – 将 true、false 和 no 替换为 Yes、No 和 Maybe。

*abbreviate*  
如果值超过指定长度，则截断该值。长度计数中包含空格。响应中显示省略号以表示被截断的值。省略号计入响应中被截断的值。如果您的表格很大但空间很小，那么这种类型的助手非常有用。截断单元格中的值可以使表格的外观更加统一。  
**用法**  
 `{{abbreviate value X}}`，*X*替换为表示要保留的字符数的数值。不支持负数。  
**示例**  
在此示例中，`abbreviate` 用于将 `User.UserAttributes.LastName.[0]` 截断为六 (6) 个字符。响应包括省略号，这些点计入六个字符的总数中。  
`{{abbreviate User.UserAttributes.LastName.[0] 6}}` 返回  
*Ale...**Alejandro*if 是的值`[0]`。

*capitalize*  
将空格之间的每个单词都大写。  
**用法**  
 `{{capitalize value}}`  
**示例**  
在此示例中，将首字母大小应用于 `Attributes.description.[0]` 条目的每个单词。  
`{{capitalize Attributes.description.[0]}}`  
如果 `Attributes.description.[0]` 返回   
 *My First Post*，如果的值`Attributes.description.[0]`为*my first post*。

*capitalizeFirst*  
将值中的第一个字符大写。  
**用法**  
`{{capitalizeFirst value}}`  
**示例**  
在此示例中，将大写应用于 `Attributes.description.[0]` 条目的第一个单词的第一个字符。  
`{{capitalizeFirst Attributes.description.[0]}}` 返回  
 *My first post*，如果的值`Attributes.description.[0]`为*my first post*。  
**示例**

*center*  
在给定宽度（通过指定数值）的字段中将值居中。您可以选择传递字符来填充，也可以留空。如果未传递任何字符，则使用空格。  
**用法**  
 `{{center value size=X [pad=" "}}`，*X*替换为数值。  
如果保留 `pad` 为空白，则在响应中使用空格作为填充。如果您传递一个字符，则该字符将显示在填充的每个空格中。不支持负数。  
**示例**  
在此示例中，的`Location.City `值居中，大小为*19*。  
`{{center Location.City size=19}}` 返回   
*"    Los Angeles    "*如果`Location.City`是*Los Angeles*。请注意，示例输出中显示的引号仅为了强调。

*cut*  
从字符串中删除指定值。  
**用法**  
 `{{cut value [" "]}}`，将引号参数中的空格替换为要剪切的值。如果未传递任何参数值，则使用空格。  
**示例**  
此示例*e*从`Location.City`属性中删除字母。  
`{{cut Location.City "e"}}` 返回  
*Los Angls*如果`[Location.City`是*Los Angeles*。

*dateFormat*  
为任何响应中的日期设置默认日期样式。有关时区的列表 IDs，请参阅[https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)。  
**用法**  
`{{dateFormat date [inputFormat="format1"] [outputFormat="format2"] [tz=timeZoneId] [locale=localeID]}}`  
`format` 参数必须为以下之一：  
+ “`full`”：完整日期格式。例如：*Tuesday, September 19, 2020*
+ “`long`”：长日期格式。例如：*September 19, 2020*
+ “`medium`”：中等日期格式。例如：*Sept 19, 2020*
+ “`short`”：短日期格式。例如：*9/19/20*
+ “`pattern`”：使用自定义日期模式格式。有关日期模式的更多信息，请访问 [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)。
“`locale`”：使用基于给定区域的日期格式。有关区域的更多信息，请访问 [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-)。  
如果未传递某种格式，则默认使用 `medium`。  
**示例**  
在此示例中`[0]`，将使用基于*America/Los\$1Angeles*时区的`full`日期格式向用户发送一条消息。`User.UserAttributes.StartDate.[0]` **09/19/2020**  
`We can meet with you any time on ``{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.` 返回  
*We can meet with you any time on Tuesday, September 19, 2020.*

*inflect*  
根据计数值返回单数或复数字符串。  
**用法**  
 `{{inflect count singular plural [includeCount=false]}}`  
+ 输入要在参数中传递的字符串的单数和复数形式。
+ 如果 `includeCount` 设置为 `false`，则响应中不返回计数。如果设置为 `true`，则响应中包括 `count`。
**示例**  
以下示例显示了在有和没有 `includeCount` 的情况下，针对购买苹果的表述变化。  
`Thank you for your purchase of {{inflect 3 apple apples includeCount=false}}.` 返回：  
*Thank you for your purchase of apples.*  
如果 `includeCount` 设置为 `true`，则响应为  
*Thank you for your purchase of 3 apples.*

*join*  
连接数组、迭代器或可迭代对象。响应会返回一个列表，列表中的每个值都由您在 `join` 中传递的字符连接在一起。例如，您可能使用逗号 (`,`) 分隔值。此助手中的值必须是没有属性位置索引的列表。例如，这可能是 `Attributes.custom_attribute`。  
**用法**  
`{{join value " // " [prefix=""] [suffix=""]}}`  
**示例**  
在此示例中，返回一个颜色列表，列表由逗号和空格 (`", "`) 分隔：  
`{{join Attributes.favorite_colors ", "}}` 返回   
*blue, red, green*`Attributes.favorite_colors`if 是清单*blue,red,green*。

*ljust*  
将值对齐到左边距，并在右侧添加空格，使值的长度匹配数值。不支持负数。  
您可以选择传递要为 `pad` 显示的字符，也可以留空。如果将 `pad` 值留空，则默认值为空格。  
**用法**  
`{{ljust value size=X [pad=" "]}}`，其中*X*是该值的总长度，包括空格。  
**示例**  
在此示例中，将左对齐值应用*15 *于 Location.City。  
`{{ljust Location.City size=15}}` 返回  
*"Los Angeles    "*如果的值`Location.City`为*Los Angeles*。请注意，示例输出中显示的引号仅为了强调。

*lower*  
将一个值全部转换为小写。  
**用法**  
`{{lower value}}`  
**示例**  
在此示例中，`User.UserAttributes.LastName.[0]` 的 `[0]` 条目更改为小写。  
`{{lower User.UserAttributes.LastName.[0]}}` 返回  
*santos**Santos*if 是的值`[0]`。

*now*  
根据传递的时区 ID 显示当前日期。有关时区的列表 IDs，请参阅[https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)。  
**用法**  
`{{now ["format"] [tz=timeZoneId] [locale=localeID]}}`  
`format` 参数必须为以下之一：  
+ “`full`”：完整日期格式。例如：*Tuesday, September 19, 2020*
+ “`long`”：长日期格式。例如：*September 19, 2020*
+ “`medium`”：中等日期格式。例如：Sept 19, 2020
+ “`short`”：短日期格式。例如：9/19/20。
+ “`pattern`”：日期模式。有关日期模式的更多信息，请访问 [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)。
“`locale`”：使用基于给定区域的日期格式。有关区域的更多信息，请访问 [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-)。  
如果未传递某种格式，则默认使用 `medium`。  
**示例**  
在此示例中，Los Angeles 的当前日期以 `medium` 格式返回。  
`{{now "medium" tz=America/Los_Angeles}}` 返回   
*Sept 19, 2020*.

*ordinalize*  
将参数中传递的数值序数词化。例如，按*1*顺序排序为*1st**2*。*2nd*仅支持数值。  
**用法**  
`{{ordinalize [number]}} `  
**示例**  
在此示例中，对 `User.UserAttributes.UserAge` 的 `[0]` 条目序数词化并返回，同时伴随一条消息。  
`Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!`返回*22*按顺序排序为。*22nd*  
*Congratulations on your 22nd birthday\$1*

*替换*  
将一个字符串替换为另一个字符串。字符串或数值必须是文字。不支持通配符。  
**用法**  
`{{replace stringToReplace replacementValue}}`  
**示例**  
在此示例中，下划线 (\$1) 取代了空格。  
`{{replace Location.City " " "_"}}` 返回  
*Los\$1Angeles*如果`Location.City `是*Los Angeles*。

*rjust*  
将值对齐到右边距，并在左侧添加空格，使值的长度匹配数值。不支持负数。  
您可以选择传递要为 `pad` 显示的字符，也可以留空。如果将 `pad` 值留空，则默认值为空格。  
**用法**  
`{{rjust value size=X [pad=" "]}}`，其中*X*是该值的总长度，包括空格。  
**示例**  
在此示例中，将右对齐*15*值应用于该`Location.City`属性。  
`{{rjust Location.City size=15}}` 返回  
*"    Los Angeles" *. 如果`Location.City`是*Los Angeles*。请注意，输出中显示的引号仅为了强调。

*slugify*  
将传递的值转换为小写，删除非单词字符（字母数字和下划线），将空格转换为连字符，并删除所有前导或尾随空格。  
**用法**  
`{{slugify value}}`  
**示例**  
在此示例中，对 `Location.City` 属性执行 slugify。  
`{{slugify Location.City}}` 返回  
*los-angeles*如果`Location.City`是*Los Angeles*。

*stripTags*  
从一个值中除去 [X]HTML 标签。  
**用法**  
 `{{stripTags value}}`  
**示例**  
在此示例中，用户的 HTML 标记。 UserAttributes.interest. [0] 已删除。  
`{{stripTags User.UserAttributes.interests.[0]}}` 返回  
*Art*，如果`User.UserAttributes.interests.[0]`是`<h1>Art</h1>`。

*substring*  
返回一个新字符串作为传递值的子字符串。长度和位置由 `startOffset` 和 `endOffset` 参数决定，这两个参数必须为整数。不支持负数。如果未传递 `endOffset`，则子字符串使用字符串的原始结尾值。  
**用法**  
`{{substring value startOffset [endOffset]}}`  
**示例**  
在此示例中，offset 为 4，endOffset 为 9，应用于 Location.City 属性。  
`{{substring Location.City 4 9}} ` 返回  
`Angel`如果洛杉矶是的价值`Location.City`是*Los Angeles*。

*upper*  
将传递的值转换为大写。  
**用法**  
`{{upper value}}`  
**示例**  
在此示例中，`User.UserAttributes.LastName` 属性的 `[0] ` 条目全部转换为大写字母。  
`{{upper User.UserAttributes.LastName.[0]}}` 返回  
*ROE*如果`User.UserAttributes.LastName.[0]`值是*Roe*。

*yesno*  
将 `true`、`false` 和 `NULL` 替换为 `Yes`、`No` 和 `Maybe`。  
**用法**  
`{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}`  
**示例**  
在此示例中，`IsUserSubscribed` 属性返回用户是否订阅了特定列表。  
`{{yesno Attributes.IsUserSubscribed}}` 返回   
*yes*如果`Attributes.IsUserSubscribed`是*true*。

## 数学和编码助手
<a name="mathhelpers"></a>

本部分介绍**数学和编码**助手。
+ `add` – 返回两个数的和。
+ `ceiling` – 将小数向上取到最近的整数。
+ `decode64` – 将 Base64 编码的值解码为字符串。
+ `divide` – 返回两个数的商。
+ `encode64` – 使用 Base64 对字符串进行编码。
+ `floor` – 将小数向下取到最近的整数。
+ `md5`— 使用 MD5算法对传递的字符串进行哈希处理。
+ `modulo` – 返回两个浮点数取模的余数。
+ `multiply` – 返回两个数的乘积。
+ `round` – 将小数舍入为最接近的整数。
+ `sha256` – 使用 SHA-256 对传递的字符串进行哈希处理。
+ `sha512` – 使用 SHA-512 对传递的字符串进行哈希处理。
+ `subtract` – 返回两个数的差。
+ `uuid` – 随机生成一个 128 位格式的 UUID。

*add*  
返回两个浮点数的和。  
**用法**  
`{{add arg1 arg2}}`  
**示例**  
`{{add 5 2.3}} ` 返回  
*7.3*

*ceiling*  
将小数向上取到最接近传递值的最大整数。  
**用法**  
`{{ceiling value}}`  
**示例**  
`{{ceiling 5.23}}` 返回  
*6*

*decode64*  
将 Base64 编码的值解码为字符串。  
**用法**  
`{{decode64 "string"}}`  
**示例**  
`{{decode64 "SGVsbG8gd29ybGQ="}}` 返回  
*Hello World*

*divide*  
返回两个数的商，包括浮点。  
**用法**  
 `{{divide arg1 arg2}}`  
**示例**  
`{{divide 5 2.3}}` 返回  
*2.17391304*

*encode64*  
使用 Base64 对参数中传递的字符串进行编码。  
**用法**  
`{{encode64 "string"}}`  
**示例**  
`{{encode64 "Hello World"}}`  
*SGVsbG8gd29ybGQ=*

*floor*  
将小数向下取到最接近传递值的最小整数。  
**用法**  
`{{floor value}}`  
**示例**  
`{{floor 5.23}}` 返回  
*5*

*md5*  
使用 MD5 算法对传递的字符串进行哈希处理。  
**用法**  
`{{md5 "string"}}`  
**示例**  
`{{md5 "Hello World"}}`  
*3e25960a79dbc69b674cd4ec67a72c62*

*modulo*  
返回两个浮点数取模的余数。  
**用法**  
`{{modulo arg1 arg2}}`  
**示例**  
`{{modulo 7 2}}` 返回  
*1*

*multiply*  
返回两个可带浮点的数的乘积。  
**用法**  
`{{multiply arg1 arg2}}`  
**示例**  
`{{multiply 5 2.3}}` 返回  
*11.5*

*round*  
将小数位向上或向下舍入为最接近的整数。  
**用法**  
`{{round value}}`  
**示例**  
`You spent an average of {{round 19.21}} minutes on our website each day.` 返回：  
*You spent an average of 19 minutes on our website each day.*

*sha256*  
使用 SHA-256 加密安全性对传递的字符串进行哈希处理。  
**用法**  
`{{sha256 "string"}}`  
**示例**  
`{{sha256 "Hello World"}}` 返回  
*a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e*

*sha512*  
使用 SHA-512 加密安全性对传递的字符串进行哈希处理。  
**用法**  
`{{sha512 "string"}}`  
**示例**  
`{{sha512 "Hello World"}}` 返回  
*2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b*

*subtract*  
返回两个可带浮点的数的差。  
**用法**  
`{{subtract arg1 arg2}}`  
**示例**  
`{{subtract 5 2.3}} ` 返回  
*2.7*

*uuid*  
随机生成一个标准 128 位格式的 UUID。无需在参数中传递任何值。  
**用法**  
`{{uuid}}`  
**示例**  
`{{uuid}} ` 返回  
**95f36680-152c-4052-99ec-cc3cdf7ca594**

## Inline partial
<a name="inlinepartials"></a>

虽然从技术上说 inline partial 不是助手，但它们是 Handlebars 简化包含重复字符串的模板的方法，这更便于重复使用。有关更多信息，请参阅 [handlebarsjs.com](https://handlebarsjs.com) 上的 [Inline partial](https://handlebarsjs.com/guide/partials.html#inline-partials)。

**用法**

`{{#* inline "inlineName"}}Content to reuse{{/inline}}`

要在其他地方引用 inline partial 的内容，请使用：

` {{> inlineName}}`

**示例**

下面的示例通过将以下代码添加到模板的开头，来创建一个 inline partial，其中包括收件人的名字和姓氏（如果可用）：

`{{#* inline "fullName"}}`

`{{User.UserAttributes.FirstName.[0]}} {{#if User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}`

`{{/inline}}`

创建 `fullName` partial 后，您可以通过在 partial 的名称前加上一个 `>`（大于号），后面跟一个空格，将其包含在模板中的任何位置，如下例所示：`{{> fullName}}`。

*` Hello {{> fullName}}`*

如果为 true，则返回用户的名字和姓氏，例如*Hello Jane Doe*。否则，如果找不到姓氏，*Hello Jane*则返回。

除了这里介绍的特征以外，Handlebars 还包含许多其他特征。有关更多信息，请访问 [handlebarsjs.com](https://handlebarsjs.com/)。

## 将变量与消息模板助手结合使用
<a name="template-helpers-variables"></a>

Amazon Connect 自定义属性名称支持空格。要具有名为 `"Last Name"` 的自定义属性，您必须将该属性的格式设置为 `Attributes.[Last Name]`。

## 使用嵌套助手
<a name="template-helpers-nesting"></a>

 您可以将多个消息模板助手嵌套在一起。以下示例说明如何格式化两个助手：`{{ first helper (second helper)}}`。首先处理第二个助手，然后处理第一个助手。请记住，第一个助手始终决定输出。后续的助手必须嵌套在前一个助手中，如下所示：`{{ first helper (second helper (third helper) )}}`。

以下示例显示了如何嵌套两个助手以将 **JANE** 改为 **Jane**：`{{capitalizeFirst (lower "JANE")}}`。`lower` 首先将 **JANE** 转换为 **jane**，然后 `capitalizeFirst` 将 **jane** 转换为 **Jane**。

# 安全配置文件不影响座席查看电子邮件线程的授权
<a name="email-security-profiles1"></a>

任何在其安全配置文件中具有以下权限的用户都可以阅读他们处理的电子邮件或他们参与的线程的电子邮件：**联系人控制面板（CCP）** - **访问联系人控制面板** - **访问**。

![\[“安全配置文件”页面上的“访问联系人控制面板”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/access-ccp-perm.png)


默认启用该授权行为。它不需要设置任何额外的权限或配置。

此行为由以下上下文密钥驱动：

1. `connect:UserArn`：表示有权访问一个联系的用户。

1. `connect:ContactAssociationId`：表示用户有权访问的联系关联。对于电子邮件渠道，联系关联始终表示电子邮件线程。

1. `connect:Channel`：表示用户有权访问的联系渠道。对于电子邮件渠道，这个 contextKey 始终是 `EMAIL`。

我们不建议在同一个策略中同时使用 `connect:ContactAssociationId` 和 `connect:UserArn`，因为这可能导致策略失效。由于 `connect:UserArn` 条件键的限制性更强，对于所有不是由相应用户处理的联系，它都会 `Deny` 访问，不顾座席对电子邮件线程所拥有的访问权限。

您可以单独使用 `connect:Channel` 以限制对特定渠道的访问。接受的值有：`VOICE`、`CHAT`、`TASK` 或 `EMAIL`。请参阅[联系](https://docs.aws.amazon.com/connect/latest/APIReference/API_Contact.html) API。

以下是支持这些上下文密钥 APIs 的联系人相关内容：

1. [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)

1. [UpdateContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContact.html)

1. [ListContactReferences](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListContactReferences.html)

1. [TagContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_TagContact.html)

1. [UntagContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_UntagContact.html)

1. [UpdateContactRoutingData](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContactRoutingData.html)

1. [GetContactAttributes](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetContactAttributes.html) 

1. [UpdateContactAttributes](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContactAttributes.html) 

1.  [StopContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContact.html) 

1. [StartContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactRecording.html) 

1.  [StopContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContactRecording.html) 

1. [ResumeContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_ResumeContactRecording.html) 

1. [SuspendContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_SuspendContactRecording.html) 

1. [UpdateContactSchedule](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContactSchedule.html) 

1. [TransferContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_TransferContact.html) 

1. [StartScreenSharing](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartScreenSharing.html) 

# 创建供 Amazon Connect 中的聊天和电子邮件联系人使用的快速响应
<a name="create-quick-responses"></a>

快速响应为联络中心座席提供了使用英语预先撰写好的回复，供他们在聊天和电子邮件联系中使用。快速响应对于回答常见的客户询问特别有用。它们有助于提高座席的工作效率、缩短处理时间并提高客户满意度得分。快速响应仅以英文提供。

您可以使用 Amazon Connect 管理网站或 [Connect AI 代理操作](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_Operations.html)来创建快速响应。您可以添加单个快速响应，也可以同时导入许多响应。您还可以使用[用户定义的属性](add-attributes.md)对响应进行个性化设置。此外，您可以为快速响应分配快捷键，并将其与[路由配置文件](https://docs.aws.amazon.com/connect/latest/adminguide/about-routing.html)相关联，以便座席可以快速访问相关内容。

默认情况下，CCP 允许座席搜索快速响应。定制构建者可以使用 [Amazon Connect Streams](https://github.com/aws/amazon-connect-streams) 在他们的 CCP 实现中以编程方式实施快速响应搜索。

有关座席如何搜索快速响应的信息，请参阅[在联系人控制面板 (CCP) 中搜索对客户的快速回复](search-qr-ccp.md)。

**提示**  
尽管快速响应使用 Connect AI 代理 APIs，但快速响应不会导致额外的账单。您只需支付聊天消息价格或电子邮件价格。有关更多信息，请参阅 [Amazon Connect 定价](https://aws.amazon.com/connect/pricing/)。

**Topics**
+ [分配安全配置文件权限](quick-response-permissions.md)
+ [设置 Amazon Connect 知识库](setup-knowledgebase.md)
+ [添加供聊天和电子邮件联系人使用的快速响应](quick-responses.md)
+ [添加用于个性化快速响应的属性](add-attributes.md)
+ [编辑快速响应](edit-quick-responses.md)
+ [在 Amazon Connect 中删除快速响应](delete-qr.md)
+ [导入快速响应](add-data.md)
+ [查看快速响应的导入历史记录](view-import-history.md)
+ [在自定义 CCP 中启用快速响应](enable-qr-search.md)

# 分配权限以管理 Amazon Connect 中的快速回复
<a name="quick-response-permissions"></a>

要在管理网站中创建和管理快速响应，用户需要内容管理安全配置文件权限。 Amazon Connect 下图在**安全配置文件**页面上显示了这些权限。

![\[各种快速响应权限，均带有绿色复选标记。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/content-mgmt-qr.png)


以下是对内容管理权限的描述。
+ **所有**：启用所有权限，但您必须具有自定义视图才能启用**访问**权限。
+ **访问**：授予用户访问自定义视图的权限。在您创建自定义视图之前，此复选框将不可用。
+ **创建**-使用户能够在 Amazon Connect 管理网站上创建 Connect AI 代理知识库和快速响应。此设置还允许用户进行查看和编辑，但不授予删除快速响应的权限。
+ **查看**：允许用户在 Amazon Connect 管理员网站中查看快速响应。
+ **编辑**：允许用户在 Amazon Connect 管理员网站中编辑快速响应。
+ **删除**：允许用户在 Amazon Connect 管理员网站中删除快速响应。

如果您希望相同的用户为快速响应添加个性化属性，他们还需要**渠道和流**、**流 - 发布**权限。

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

# 设置 Amazon Connect 知识库以存储快速回复
<a name="setup-knowledgebase"></a>

您必须创建 A [mazon Connect 知识库](connect-ai-agent.md)才能存储快速回复。您只需单击一下即可使用 Amazon Connect 管理网站创建知识库。该网站 AWS 拥有的密钥 用于加密数据。

**注意**  
您可以通过在 [CreateKnowledgeBase](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_CreateKnowledgeBase.html)API 调用[ ServerSideEncryptionConfiguration](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_ServerSideEncryptionConfiguration.html#wisdom-Type-ServerSideEncryptionConfiguration-kmsKeyId)中提供自定义密钥来创建自己的密钥。有关更多信息，请参阅本指南中的[AI 代理的初始设置](ai-agent-initial-setup.md)。

以下步骤说明了如何使用 Amazon Connect 管理网站创建 Amazon Connect 知识库。

**创建知识库**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用管理员账户，或者使用在安全配置文件中具有**内容管理 - 快速响应 - 创建**权限的账户。

1. 在导航栏上，选择**内容管理**，然后选择**快速响应**。

1. 在**快速响应**页面上，选择**开始使用**。
**注意**  
如果**开始使用**按钮不可用，请使用具有管理员安全配置文件的账户登录，或者向其他管理员寻求帮助。

1. 留在该页面上，直到该过程结束。在该过程结束之前，请勿刷新页面。有一个指示器显示状态。  
![\[绿色水平状态栏。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/agent-application-3.png)

完成的知识库提供了两个快速响应示例。
+ 如果您的 Amazon Connect 实例中存在[基本路由配置文件](https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing.html)，响应示例会与这个配置文件相关联。
+ 响应示例设置为**非活动**，意味着座席无法查看或搜索它们。激活快速响应示例后，分配给基本路由配置文件的座席便可查看和搜索该快速响应。
+  如果您的 Amazon Connect 实例中不存在基本路由配置文件，则快速响应示例将与**所有**路由配置文件相关联。激活快速响应示例后，所有座席都可以查看和搜索该响应，无论给座席分配了何种路由配置文件。

**注意**  
快速响应仅在**聊天**和**电子邮件**通道中可用。

# 添加供 Amazon Connect 中的聊天和电子邮件联系人使用的快速响应
<a name="quick-responses"></a>

本主题介绍如何使用 Amazon Connect 管理网站添加快速回复。有关 APIs 用于以编程方式创建和管理快速响应的，请参阅[APIs 创建和管理快速回复](#apis-quick-responses)。

**添加响应**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用**管理员**账户或为其分配了安全配置文件且具有**内容管理 - 快速响应 - 创建**权限的账户。

1. 在导航栏上，选择**内容管理**，然后选择**快速响应**。  
![\[显示“内容管理”和“快速响应”的菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/agent-application-1.png)

1. 在**快速响应**页面上，选择**添加响应**。
**注意**  
如果**添加响应**按钮不可用，请使用具有管理员安全配置文件的账户登录，或者向其他管理员寻求帮助。

1. 在**添加响应**页面上，选择响应是用于聊天、电子邮件还是同时用于这两个通道。

1. 在**添加响应**页面上，输入快速响应的名称、描述和快捷键。您必须输入唯一的名称和快捷键，因为座席将搜索这些值。

1. 打开**路由配置文件**列表并选择一个或多个配置文件。您最多可以选择 20 个配置文件，或者选择**全部**。只有分配了指定配置文件的座席才能看到与该配置文件相关的快速响应。

1. （可选）如果您希望座席能够查看并搜索响应，可选择**激活：使此响应对座席可见**。

1. 在**内容**部分，输入响应，然后选择**保存**。

**注意**  
如果您在流数据块中配置了用户定义的属性，则当[座席在 CCP 中搜索响应](search-qr-ccp.md)时，将显示这些属性（例如客户名称）。有关更多信息，请参阅 [设置联系属性](set-contact-attributes.md)。

## APIs 创建和管理快速回复
<a name="apis-quick-responses"></a>

使用以下内容 APIs 以编程方式创建和管理快速响应：
+ [CreateQuickResponse](https://docs.aws.amazon.com/connect/latest/APIReference/API_amazon-q-connect_CreateQuickResponse.html)
+ [UpdateQuickResponse](https://docs.aws.amazon.com/connect/latest/APIReference/API_amazon-q-connect_UpdateQuickResponse.html)
+ [DeleteQuickResponse](https://docs.aws.amazon.com/connect/latest/APIReference/API_amazon-q-connect_DeleteQuickResponse.html)
+ [GetQuickResponse](https://docs.aws.amazon.com/connect/latest/APIReference/API_amazon-q-connect_GetQuickResponse.html)
+ [ListQuickResponses](https://docs.aws.amazon.com/connect/latest/APIReference/API_amazon-q-connect_ListQuickResponses.html)
+ [SearchQuickResponses](https://docs.aws.amazon.com/connect/latest/APIReference/API_amazon-q-connect_SearchQuickResponses.html)
+ [UpdateQuickResponse](https://docs.aws.amazon.com/connect/latest/APIReference/API_amazon-q-connect_UpdateQuickResponse.html)

# 在 Amazon Connect 中添加个性化快速响应的属性
<a name="add-attributes"></a>

您可以通过添加用户定义的属性来对快速响应进行个性化设置。为此，您可以使用 Amazon Connect 管理员网站创建包含 [Amazon Connect 联系属性](https://docs.aws.amazon.com/connect/latest/adminguide/connect-contact-attributes.html)的响应。您还可以使用[设置联系属性](set-contact-attributes.md)数据块在流中创建用户定义的属性。

当快速响应包含用户定义的属性，并且当[座席在 CCP 中搜索响应](search-qr-ccp.md)时，将显示这些属性的值（例如客户名称）。

以下步骤说明了如何为快速响应添加用户定义的属性。您首先需要创建一个 set-contact 属性，然后将该属性添加到快速响应中。

**创建 set-contact 属性**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用**管理员**账户或为其分配了安全配置文件且具有**流 - 编辑或创建**权限的账户。

1. 在导航菜单，选择**路由**、**流**。  
![\[显示“路由”和“流”的菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/routing-flows.png)

1. 在**流**页面上，**类型**列中列出了每种类型的流。选择要向其中添加属性的流。

1. 按照[创建“设置联系属性”数据块](set-contact-attributes.md)中的步骤操作。
**注意**  
在联系属性配置中，选择**用户定义**命名空间，然后保存并发布该流。

1. 结束后，请完成下一组步骤。

创建或更新快速响应时，您可以按照以下步骤操作。

**向快速响应添加属性**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用**管理员**账户或为其分配了安全配置文件且具有**内容管理 - 快速响应 - 创建或编辑**权限的账户。

1. 在左侧导航栏上，选择**内容管理**，然后选择**快速响应**。  
![\[显示“内容管理”和“快速响应”的菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/agent-application-1.png)

1. 要创建响应，请选择**添加响应**。

   —或者—

   选中要进行个性化的快速响应旁边的复选框，然后选择**编辑**。

1. 选择内容部分，输入快速响应内容，然后使用 Handlebar 语法输入用户定义的属性。确保包含 `Attributes` 命名空间前缀。例如 **\$1\$1Attributes.Customer\$1\$1**。

   下图显示了对电子邮件的快速响应。  
![\[带有客户名称属性的快速响应。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/email-quick-response-attributes.png)

1. 选择**保存**。

以下步骤说明了如何在 CCP 中测试属性。

**测试属性**

1. 登录 Amazon Connect 管理员网站聊天测试页面，网址为 https://*实例名称* .my.connect.aws/test-chat。

1. 选择具有用户定义属性的流。

1. 开始聊天并输入 **/\$1*searchText***，其中 *searchText* 是分配的快捷键。

**注意**  
有关更多信息，请参阅 [在 Amazon Connect 中测试语音、聊天和任务体验](chat-testing.md)。

# 在 Amazon Connect 中编辑快速响应
<a name="edit-quick-responses"></a>

本主题介绍如何使用 Amazon Connect 管理网站编辑快速回复。要以编程方式编辑快速响应，请参阅 *Connect AI 代理 API 参考[UpdateQuickResponse](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_UpdateQuickResponse.html)*中的。

**编辑响应**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用**管理员**账户或所分配的安全配置文件具有**内容管理 - 快速响应 - 编辑**权限的账户。

1. 在导航栏上，选择**内容管理**，然后选择**快速响应**。  
![\[显示“内容管理”和“快速响应”的菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/agent-application-1.png)

1. 在**快速响应**页面中，选择要编辑的快速响应的名称。您也可以选中响应旁边的复选框，然后选择**编辑**。

1. 根据需要更改以下字段：
   + **名称**
   + **描述**
   + **快捷键**
   + **路由配置文件**
   + **激活/停用快速响应**
   + **内容**
   + **Channel**

1. 选择**保存**。

# 在 Amazon Connect 中删除快速响应
<a name="delete-qr"></a>

本主题介绍如何使用 Amazon Connect 管理网站删除快速回复。要以编程方式删除快速响应，请参阅 *Connect AI 代理 API 参考指南[DeleteQuickResponse](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_DeleteQuickResponse.html)*中的。

**重要**  
您不能撤消删除。
座席无法查看或使用已删除的快速响应。

**删除响应**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用**管理员**账户或所分配的安全配置文件具有**内容管理 - 快速响应 - 删除**权限的账户。

1. 在导航栏上，选择**内容管理**，然后选择**快速响应**。  
![\[显示“内容管理”和“快速响应”的菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/agent-application-1.png)

1. 在**快速响应**页面中，选中要删除的响应旁边的复选框。您最多可以选择 20 个响应。

1. 选择**删除**。

   将显示一条成功消息：  
![\[一个绿色勾号，和“已成功删除选定快速响应”字样。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/deletion-success-message.png)

**注意**  
如果**删除**按钮处于非活动状态，请登录具有所需安全配置文件的 Amazon Connect 账户，或者向其他管理员寻求帮助。
留在该页面上，直到删除操作完成。

# 将快速响应导入 Amazon Connect
<a name="add-data"></a>

您一次最多可以从 .csv 文件导入 100 个快速响应。本主题介绍如何使用 Amazon Connect 管理网站导入快速回复。要以编程方式导入快速响应，请参阅 *Connect AI 代理 API 参考[StartImportJob](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_StartImportJob.html)*中的。

**导入响应**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用**管理员**账户或为其分配了安全配置文件且具有**内容管理 - 快速响应 - 创建**权限的账户。

1. 在导航栏上，选择**内容管理**，然后选择**快速响应**。  
![\[显示“内容管理”和“快速响应”的菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/agent-application-1.png)

1. 在**快速响应**页面上，选择**导入**。

1. 在**导入**对话框中，选择**响应导入模板.csv** 链接，然后将生成的**响应导入模板.csv** 文件保存到桌面。该文件将在 Microsoft Excel 或类似的电子表格程序中打开。

1. 在 .csv 文件中，在每列中输入值。请记住以下事项：
   + 在 Amazon Connect 实例的所有快速响应中，**名称**和**快捷键**值必须是唯一的。
   + **路由配置文件**列中的值区分大小写，并且必须与您的路由配置文件的名称完全匹配。
   + 请勿重命名或更改 .csv 文件第一行中的值。这些标头密钥已保留，用于为 [CreateQuickResponse](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_CreateQuickResponse.html)API 生成有效负载。
   + 从 .csv 文件中删除出现的所有 **<\$1必填字段>**。它们仅作为提示信息。

1. 保存.csv 文件，返回 Amazon Connect 管理网站，然后在 “**导入**” 对话框中选择 “**上传文件**”。

1. 找到并打开 .csv 文件，然后选择**导入**。

   导入操作完成后，将显示成功或失败消息。如果操作失败，请选择消息中的**下载已失败的导入**链接。检查 .csv 文件中是否有前导或尾随空格，以及是否有任何关于此错误的消息。

在导入任务完成之前，您可以离开**快速响应**页面。选择位于响应列表下方的**查看导入历史记录**链接，以查看导入任务的状态。

# 查看 Amazon Connect 快速响应的导入历史记录
<a name="view-import-history"></a>

Amazon Connect 会在您的知识库的整个生命周期内保留导入历史记录。要删除该历史记录，必须使用[DeleteKnowledgeBase](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_DeleteKnowledgeBase.html)操作删除知识库。

本主题介绍如何使用 Amazon Connect 管理网站查看导入历史记录。要以编程方式查看导入历史记录，请参阅 Conn *ect AI 代理 API* 参考[ListImportJobs](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_ListImportJobs.html)中的。

**查看导入历史记录**

1. 登录 Amazon Connect 管理员网站，网址为 https:// *实例名称* .my.connect.aws/。使用**管理员**账户或所分配的安全配置文件具有**内容管理 - 快速响应 - 查看**权限的账户。

1. 在左侧导航栏上，选择**内容管理**，然后选择**快速响应**。  
![\[显示“内容管理”和“快速响应”的菜单。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/agent-application-1.png)

1. 在**快速响应**页面上，选择**查看导入历史记录**链接。

# 在自定义联系人控制面板（CCP）中启用 Amazon Connect 快速响应
<a name="enable-qr-search"></a>

要使您的代理能够对嵌入式或自定义 CCP 使用快速响应，您可以使用 [Amazon Connect Streams 库](https://github.com/amazon-connect/amazon-connect-streams)调用 [SearchQuickResponse](https://docs.aws.amazon.com/amazon-q-connect/latest/APIReference/API_SearchQuickResponses.html)API 并将快速响应搜索结果列表返回给 CCP。 GitHub 有关更多信息，请参阅 GitHub 上的 [Amazon Connect Streams 文档](https://github.com/amazon-connect/amazon-connect-streams/blob/master/Documentation.md#quick-responses-apis)。

**注意**  
为了防止滥用 API 搜索，我们为以下请求参数实现了默认值：  
`debounceTime` - 后续 `SearchQuickResponse` API 调用之间间隔 250 毫秒
`maxSearchResults` – 25
搜索优先顺序：  
`shortcut key`
`name`
`content`
`description`

有关座席使用快速响应的体验的信息，请参阅[搜索对客户的快速回复](search-qr-ccp.md)。