

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

# Amazon Connect 中的联系属性如何运作
<a name="what-is-a-contact-attribute"></a>

Amazon Connect 将与客户的每次交互视为一次**联系**。交互可以是电话呼叫（语音）、聊天或使用 Amazon Lex 机器人的自动交互。

每个联系人都可以有一些针对于特定交互的数据。这些数据可以作为联系属性访问。例如：
+ 客户名称
+ 座席名称
+ 联系人使用的渠道，例如电话或聊天

联系属性以键值对的形式表示这些数据。您可以把它看作是一个字段名和输入到该字段中的数据。

例如，以下是客户名称的几个键值对：


| 键 | 值 | 
| --- | --- | 
| 名字 | Jane | 
| 姓氏 | Doe | 

联系属性的优势在于，可以存储联系人的临时信息，以便在流中使用。

例如，在欢迎消息中，您可以说出他们的名字或感谢他们成为会员。为此，您需要一种方法来检索有关该特定客户的数据并在流中使用这些数据。

## 常见使用案例
<a name="contact-attribute-scenarios"></a>

以下是使用联系属性的一些常见用例：
+ 使用客户电话号码安排队列回拨。
+ 确定正在与客户互动的座席，以便将呼叫后调查与联系人相关联。
+ 确定队列中的联系人数量，以便决定是否应将联系人路由到其他队列。
+ 获取要存储在数据库中的相应媒体流 ARN。
+ 使用客户电话号码识别客户的状态（例如，他们是否是会员），或者他们的订单状态（已发货、延迟等），以便将他们路由到相应的队列。
+ 根据客户与自动程序的交互，确定流中要使用的槽值（例如，要订购的鲜花类型）。

## 联系属性的类型
<a name="types-of-contact-attributes"></a>

为了便于您更快地查找和选择要使用的属性，按**类型**对属性进行了分组。对于每个流数据块，我们只显示与之相关的属性类型。

考虑联系属性类型的另一种方法是根据值的来源对其进行分类。联系属性的值有以下来源：
+ Amazon Connect 会在联系人交互过程中提供该值，例如座席的姓名。这就是所谓的运行时提供值。
+ 外部流程（例如 Amazon Lex 或 AWS Lambda）提供了价值。
+ [用户定义](connect-attrib-list.md#user-defined-attributes)。
  + 联系属性：在流中，您可以在用户定义的命名空间下指定属性的值。
  + 联系人分段属性：在流中，您可以在分段属性命名空间下指定属性的值。您还必须首先预定义该属性，然后再将其分配为联系人分段属性。有关说明，请参阅[使用联系人分段属性](use-contact-segment-attributes.md)。

  [流属性](connect-attrib-list.md#flow-attributes)类似于用户定义的属性。但是，与用户定义的属性不同，流属性仅限于配置它们的流。

下图列出了可用的联系属性类型，并将它们映射到值的三个来源：Amazon Connect、外部流程（例如 Amazon Lex）和用户定义。

![可用的联系属性类型，其值的来源。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-attributes-types.png)


## 联系记录中的联系属性
<a name="attributes-in-ctr"></a>

在联系人记录中，联系人属性在所有联系人之间共享 InitialContactId。

例如，在执行转接时，转接流中更新的联系属性会更新两个联系记录（即入站和转接联系属性）的联系属性中的属性值。

## 联系记录中的联系人分段属性
<a name="segmentattributes-in-ctr"></a>

在联系记录中，联系人分段属性的值特定于单个 contactID。并非所有具有相同值的联系人共享这些值 InitialContactId。

例如，在执行转接时，转接流中更新的联系人分段属性会更新在新联系记录上的属性的值（即，它会更新转接联系人分段属性）。

## “$”是一个特殊字符
<a name="dollar-sign-special"></a>

Amazon Connect 将“$”字符视为特殊字符。设置属性时，不能在键中使用它。

 例如，假设你正在创建与的交互方块 text-to-speech。您可以设置一个如下所示的属性：

 ` {"$one":"please read this text"} ` 

当 Amazon Connect 读取此文本时，它将“美元符号一”当作是联系人，而不是“请阅读此文本”。此外，如果您要在键中包含 $ 并且尝试稍后使用 Amazon Connect 引用该值，则不会检索该值。

Amazon Connect 会记录完整的键:值对 `({"_$one":"please read this text"})` 并将其传递给集成，例如 Lambda。

## 如果属性不存在会发生什么
<a name="attribute-error"></a>

如果属性不存在并且联系人被路由到错误分支，请务必实施处理逻辑。

假设您在“存储客户输入”数据块中添加了一个属性。**命名空间**是**座席**，**密钥**是**用户名**，如下例所示。

![“存储客户输入”数据块。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/contact-attributes-errorbranch.png)


如果流运行并且座席用户名不可用，则联系人将被路由到错误分支。