

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

# Amazon Connect 流数据块：设置联系人属性
<a name="set-contact-attributes"></a>

本主题定义了将键值对存储为联系人属性的流数据块，然后设置稍后在流中引用的值。

## 说明
<a name="set-contact-attributes-description"></a>

将键值对存储为联系属性。您设置了一个稍后在流中引用的值。

例如，基于客户账户类型，为路由到队列的客户创建个性化的问候语。也可以为公司名或业务线定义一个属性，以包括在说给客户听的“文本到语音转换”字符串中。

**设置联系人属性**数据块非常有用，例如，可用于将从外部源检索的属性复制到用户定义的属性。

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

## 支持的渠道
<a name="set-contact-attributes-channels"></a>

下表列出了此数据块如何路由正在使用指定渠道的联系人。


| 频道 | 是否支持？ | 
| --- | --- | 
| 语音 | 是 | 
| Chat | 是 | 
| 任务 | 是 | 
| 电子邮件 | 是 | 

## 流类型
<a name="set-contact-attributes-types"></a>

您可以在以下[流类型](create-contact-flow.md#contact-flow-types)中使用此数据块：
+ 所有流

## Properties
<a name="set-contact-attributes-properties"></a>

下图显示了**设置联系人属性**数据块的**属性**页面。它被配置为在**当前联系人**上设置用户定义的属性，密钥为 **greetingPlayed**，值为 **true**。

![\[“设置联系人属性”数据块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/set-contact-attributes-properties.png)


您可以选择设置以下属性：
+ **当前联系人**：属性是在运行此流的联系人上设置的。Amazon Connect 的其他区域均可访问这些属性，例如其他流程、模块、Lambda、联系人记录和 GetMetricData V2 API。
+ **相关联系人**：这些属性与包含原始联系人属性副本的新联系人相关联。

  在联系人记录中，这是**RelatedContactId**。
+ **流**：这些属性仅限于配置这些属性的流。

  如果您不想在整个联系过程中保留数据，例如需要使用敏感信息（例如客户的信用卡号）来进行 Lambda 数据提取时，流属性会非常有用。
  + 流属性是存储在本地的临时变量，仅在流中使用。它们在流之外的任何地方都不可见，即使联系人转移到另一个流时也是如此。
  + 它们最大可以为 32 KB（联系记录属性部分的最大大小）。
  + 除非将它们明确配置为参数（在**调用 AWS Lambda 函数**数据块中，选择**添加参数**），否则它们不会被传递给 Lambda 
  + 它们不会传递给模块。您可以在模块内设置流属性，但它不会被传递出模块。
  + 它们不会显示在联系记录中。
  + CCP 中的座席不会看到它们。
  + `GetContactAttributes` API 无法公开它们。
  + 如果您在流上启用了日志记录，密钥和值将显示在 Cloudwatch 日志中。

## 如何引用属性
<a name="set-contact-attributes-how-to-reference"></a>
+ 有关每个属性的 JSON 语法，请参阅[Amazon Connect 中可用的联系人属性列表及其 JSONPath 参考文献](connect-attrib-list.md)。
+ 要引用名称中包含特殊字符（例如空格）的属性，请在属性名称前后加上方括号和单引号。例如：` $.Attributes.['user attribute name']`。
+ 要引用同一命名空间中的属性（如系统属性），可以使用属性名称或您指定为**目标键**的名称。
+ 要引用其他命名空间中的值，例如引用外部属性，请指定该属性的 JSONPath 语法。
+ 要使用联系属性访问其他资源，可在您的流中设置用户定义的属性，并将您希望访问的资源的 Amazon 资源名称（ARN）作为属性值。

### Lambda 示例
<a name="set-contact-attributes-lambda-examples"></a>
+ 要从 Lambda 函数查询中引用客户名称，请使用 \$1.External。 AttributeKey， AttributeKey 替换为 Lambda 函数返回的属性的密钥（或名称）。
+ 要在 Lambda 函数中使用 Amazon Connect 提示，可将一个用户定义的属性设置为该提示的 ARN，然后从 Lambda 函数访问该属性。

### Amazon Lex 示例
<a name="set-contact-attributes-lex-examples"></a>
+ 要引用 Amazon Lex 机器人的属性，请使用 \$1.Lex. 格式，然后加入要引用的亚马逊 Lex 机器人部分，例如 \$1.Lex。 IntentName。
+ 要对 Amazon Lex 自动程序槽引用客户输入，可使用 \$1.Lex.Slots.*slotName*，用自动程序中的槽名称替换 *slotName*。

## 当属性超过 32 KB 时会发生什么情况
<a name="set-contact-attributes-space"></a>

属性的最大可以为 32 KB（联系记录属性部分的最大大小）。当联系人的属性超过 32 KB 时，此联系人将被路由到**错误**分支。作为缓解措施，可以考虑以下选项：
+ 将不必要的属性值设置为空，从而删除这些属性。
+ 如果这些属性只在一个流中使用，且无需在此流之外引用（例如，由 Lambda 或另一个流引用），则使用流属性。这样，您就不需要将 32 KB 的信息从一个流保存到另一个流。

## 配置提示
<a name="set-contact-attributes-tips"></a>
+ 使用用户定义的目标密钥时，您可以随心所欲地命名它，但不能包含 **\$1** 和 **.**（句点）字符。不允许使用它们，因为它们都用于定义中的属性路径 JSONPath。
+ 您可以使用**设置联系人属性**数据块来设置 Amazon Lex V2 自动程序所需的语言属性。（您在 Amazon Connect 中的语言属性必须与构建 Amazon Lex V2 自动程序时使用的语言模型相匹配。） 下图显示了设置为西班牙语的语言属性。  
![\[“设置联系人属性”的属性页面，值设置为“西班牙语”。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/set-contact-attributes-language.png)

  或者，您可以使用[设置语音](set-voice.md)数据块来设置 Amazon Lex V2 自动程序所需的语言。

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

## 已配置的数据块
<a name="set-contact-attributes-configured"></a>

下图显示了该数据块已配置好的样子。它有两个分支：**成功**和**错误**。

![\[已配置的“设置联系人属性”数据块。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/set-contact-attributes-configured.png)


## 流示例
<a name="set-contact-attributes-samples"></a>

Amazon Connect 包含一组流示例。有关如何在流设计器中访问流示例的说明，请参阅[Amazon Connect 中的流示例](contact-flow-samples.md)。以下主题介绍了包含该数据块的流示例。
+ [Amazon Connect 中的入站流示例，提供首次联系体验](sample-inbound-flow.md)

## 场景
<a name="set-contact-attributes-scenarios"></a>

有关使用此数据块的场景，请参阅以下主题：
+ [如何在 Amazon Connect 中引用联系属性](how-to-reference-attributes.md)