聊天开始时,将联系人属性传递给联系人控制面板 (CCP) 中的代理 - Amazon Connect

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

聊天开始时,将联系人属性传递给联系人控制面板 (CCP) 中的代理

您可以使用联系人属性获取正在使用通信小部件的联系人的相关信息。然后,您可以通过联系人控制面板 (CCP) 向代理显示该信息,或者在流程中的其他地方使用这些信息。

例如,您可以自定义流,在欢迎消息中写上客户的名称。或者,您可以使用特定于您的业务的属性,例如账户/会员IDs、客户标识符(如姓名和电子邮件)或与联系人关联的其他元数据。

如何将联系人属性传递到通信小部件

  1. 向由 Amazon Connect 托管的网站添加聊天用户界面所述,在通信小部件中启用安全保护(如果尚未启用):

    1. 在第 2 步中,在为聊天小部件添加安全保护下,选择

    2. 在步骤 3 中,使用安全密钥生成 JSON Web 令牌。

  2. 将联系人属性JWT作为attributes索赔添加到您的有效载荷中。

    以下是如何在 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键值对。如果在任何一个属性中传递了字符串以外的任何内容,聊天将无法启动。

    联系人属性必须遵守以下设置的限制 StartChatConnectAPI:

    • 密钥的最小长度必须为 1

    • 值的最小长度可以为 0

或者,您可以将 segmentAttributes 字符串添加到有效载荷中的SegmentAttributeValue对象映射中。这些属性是标准 Amazon Connect 属性。它们可以按流程进行访问。联系人属性必须遵守设定的限制StartChatConnectAPI。

替代方法:直接从代码片段中传递联系人属性

注意
  • 代码片段位于它传递的所有联系人属性键的前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/>

在流程中使用属性

检查联系人属性流程块使用用户定义的命名空间提供对这些属性的访问,如下图所示。你可以使用 flow 模块来添加分支逻辑。完整路径是$.Attributes.HostedWidget-attributeName

该图显示了流块分支到 “有效” 和 “无效” 提示。

您需要了解的内容

  • 通信小部件对整个编码令牌长度的限制为 6144 个字节。由于 JavaScript 使用 UTF -16 编码,因此每个字符使用 2 个字节,因此最大大小encoded_token应为 3000 个字符左右。

  • 应将 encoded_token 传递给 callback(data)authenticate 片段不需要任何其他更改。例如:

    amazon_connect('authenticate', function(callback) { window.fetch('/token').then(res => { res.json().then(data => { callback(data.data); }); }); });
  • 使用JWT传递联系人属性可确保数据的完整性。如果您能保护共享密钥并遵循适当的安全措施,就可以帮助确保数据不被不法分子篡改。

  • 联系人属性仅在中进行编码JWT,而不是加密,因此可以解码和读取这些属性。

  • 如果您想使用模拟聊天体验来测试聊天体验并包含联系人属性,请务必用引号将键和值都括起来,如下图所示。

    “测试设置”页面,引号中的联系人属性键,引号中的值。