流数据块:获取客户输入 - Amazon Connect

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

流数据块:获取客户输入

描述

捕获客户的互动和动态输入。它支持带有 DTMF 输入(来自手机的输入)和 Amazon Lex 机器人的可中断提示。

此区块的用例

此模块设计用于以下场景:

  • 创建交互式电话菜单,客户可以在其中使用按键键盘进行回复。例如,“按 1 转接销售部门,按 2 转接支持部门。”

  • 通过将此区块与 Amazon Lex 机器人配合使用来启用语音激活提示。客户可以通过说话打断提示。这为他们提供了更自然、反应更快的互动。

  • 以结构化的方式收集客户信息。例如,要求客户输入其账号、订单编号或其他相关详细信息。

  • 根据客户的输入将客户引导到流程中的特定路径。这有助于根据客户的需求将客户引导到相应的部门或服务部门。

  • 通过提供让客户表达满意或担忧的选项,收集他们的反馈。

  • 进行调查并对客户进行民意调查,以收集宝贵的反馈和见解。

  • 通过询问与客户问题相关的具体问题,指导客户完成故障排除流程。您可以根据他们的回复提供量身定制的解决方案。

联系人类型

下表显示了此区块如何路由每个频道的联系人。

频道 是否支持?

语音

聊天

是的,使用 Amazon Lex 时,否则会使用错误分支

任务

流类型

您可以在以下流类型中使用此数据块:

流量类型 是否支持?

入站流

客户队列流

客户等候流

客户私密消息流

出站私密消息流

座席等候流

座席私密消息流

转接座席流

转接到队列流

如何配置此模块

您可以使用 Amazon Connect 管理网站、Amazon Connect Flow 语言中的GetParticipantInput操作或比较操作来配置 “ConnectParticipantWithLexBot获取客户意见” 块。

选择一个提示

下图显示了获取客户输入数据块的属性页面。它被手动配置为播放 “欢迎来到 Example Corp.” 的音频提示

“获取客户输入” 区块的属性页面。

从以下选项中进行选择,以选择要向客户播放的提示:

  • 从提示库(音频)中选择:您可以从 Amazon Connect 附带的预先录制的提示中进行选择,也可以使用 Amazon Connect 管理网站录制和上传自己的提示音。

  • 指定 S3 存储桶中的音频文件:您可以手动或动态指定来自 S3 存储桶的音频文件。

  • T ext-to-speech 或聊天文本:您可以输入提示以纯文本或 SSML 格式播放。这些基于文本的提示作为音频提示播放给使用 Amazon Polly 的客户。SSML 增强型输入文本让您可以更好地控制 Amazon Connect 如何根据您提供的文本生成语音。您可以自定义和控制语音的各个方面,例如发音、音量和速度。

为 DTMF 输入进行配置

下图显示了 “属性” 页面的 DTMF 部分。添加了两个条件来确定适当的分支,具体取决于客户按下 1 还是 2。如果客户未输入任何内容,则会在 5 秒钟后超时。

属性页面的 DTMF 部分。

选择以下选项:

  • 设置超时:指定在用户决定如何响应提示时等待多长时间。必须至少指定 1 秒。此时间过后,会出现超时错误。对于语音频道,这是输入第一个 DTMF 数字之前的超时时间。必须静态定义,并且必须是大于零的有效整数。

  • 添加条件:与客户输入进行比较的数字。

使用 DTMF 时的流语言表示

以下代码示例显示了 Flow 语言中的GetParticipantInput操作如何表示 DTMF 配置。

{ "Parameters": { "StoreInput": "False", "InputTimeLimitSeconds": "5", "Text": "Welcome to Example Corp. Please press 1 for sales, press 2 for support" }, "Identifier": "Get Customer Input", "Type": "GetParticipantInput", "Transitions": { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Conditions": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Condition": { "Operator": "Equals", "Operands": [ "1" ] } }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Condition": { "Operator": "Equals", "Operands": [ "2" ] } } ], "Errors": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "InputTimeLimitExceeded" }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "NoMatchingCondition" }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "NoMatchingError" } ] } }

为 Amazon Lex 输入进行配置

  • 选择 Lex 机器人:创建 Amazon Lex 机器人后,从下拉列表中选择机器人的名称。下拉列表中仅显示已构建的自动程序。

  • 输入 ARN:指定 Amazon Lex 机器人的亚马逊资源名称。

  • 会话属性:指定仅适用于当前联系人会话的 Amazon Lex 会话属性。下图显示了为最大语音持续时间为 8000 毫秒(8 秒)而配置的会话属性。

    “获取客户输入”数据块的属性页面,“会话属性”部分。
  • 意图

    • 添加意图:选择输入要与之比较的 Amazon Lex 机器人的名称。

    • 使用情绪覆盖:在 Amazon Lex 意图之前,根据情绪分数进行分支。

      情绪分数基于客户的最后一句话。它不是以整个对话为基础的。

      例如,客户致电后有负面情绪,因为他们首选的预约时间不可用。您可以根据他们的负面情绪分数来分支流,例如,如果他们的负面情绪超过 80%。或者,如果客户致电时有超过 80% 的积极情绪,您就可以把他们分支到追加销售服务。

      下图显示了 Amazon Lex 选项卡的“意图”部分。它被配置为在负面情绪分数为 80% 时路由联系人。

      “获取客户输入”数据块的属性页面,“意图”部分。

      如果您同时添加负面和正面情绪分数,则始终会先评估负面分数。

      有关如何使用带有联系人属性的情绪分数、备用意图和情绪标签的信息,请参阅检查联系人属性

语音输入的可配置超时

要为语音联系人配置超时值,请在调用 Lex 自动程序的获取客户输入数据块中使用以下会话属性。使用这些属性,您可以指定在 Amazon Lex 收集呼叫方的语音输入(例如回答是/否问题或提供日期或信用卡号)之前,等待客户完成说话的时间。

Amazon Lex
  • 最大语音持续时间

    x-amz-lex:audio:max-length-ms:[intentName]:[slotToElicit]

    在截断输入并返回到 Amazon Connect 之前,客户说话的时间长度。您可以在预期需要输入大量内容,或者您希望为客户留出更多的时间来提供信息时,增加该时间。

    默认值 = 12000 毫秒(12 秒)。允许的最大值为 15000 毫秒。

    重要

    如果将最大语音持续时间设置为超过 15000 毫秒,则联系人将沿错误分支路由。

  • 开始静默阈值

    x-amz-lex:audio:start-timeout-ms:[intentName]:[slotToElicit]

    假设客户停止说话之前需要等待多长时间。如果您希望让客户在发言前有更多时间查找或回想信息,则可以增加分配的时间。例如,您可能希望为客户提供更多的时间,让他们取出信用卡,以便输入该信用卡号码。

    默认值 = 3000 毫秒(3 秒)。

  • 结束静默阈值

    x-amz-lex:audio:end-timeout-ms:[intentName]:[slotToElicit]

    在假定客户停止说话之后,等待多长时间让客户结束说话。如果预计在提供输入时会有一段静默时间,则可以增加分配的时间。

    默认值 = 600 毫秒(0.6 秒)

Amazon Lex (Classic)
  • 最大语音持续时间

    x-amz-lex:max-speech-duration-ms:[intentName]:[slotToElicit]

    在截断输入并返回到 Amazon Connect 之前,客户说话的时间长度。您可以在预期需要输入大量内容,或者您希望为客户留出更多的时间来提供信息时,增加该时间。

    默认值 = 12000 毫秒(12 秒)。允许的最大值为 15000 毫秒。

    重要

    如果将最大语音持续时间设置为超过 15000 毫秒,则联系人将沿错误分支路由。

  • 开始静默阈值

    x-amz-lex:start-silence-threshold-ms:[intentName]:[slotToElicit]

    假设客户停止说话之前需要等待多长时间。如果您希望让客户在发言前有更多时间查找或回想信息,则可以增加分配的时间。例如,您可能希望为客户提供更多的时间,让他们取出信用卡,以便输入该信用卡号码。

    默认值 = 3000 毫秒(3 秒)。

  • 结束静默阈值

    x-amz-lex:end-silence-threshold-ms:[intentName]:[slotToElicit]

    在假定客户停止说话之后,等待多长时间让客户结束说话。如果预计在提供输入时会有一段静默时间,则可以增加分配的时间。

    默认值 = 600 毫秒(0.6 秒)

Lex 互动期间可配置聊天输入的超时时间

使用意图下的聊天超时字段来配置聊天输入的超时时间。输入 Lex 交互中不活动客户的超时时间。

  • 最短:1 分钟

  • 最长:7 天

下图显示了聊天配置为在客户处于非活动状态 2 分钟时超时的获取客户输入数据块。

属性页面的“意图”部分,“聊天超时”选项。

有关在所有参与者均为真人时设置聊天超时的信息,请参阅为聊天参与者设置聊天超时

Amazon Lex 的插入配置和用法

您可以允许客户使用自己的声音中断 Amazon Lex 自动程序的句子,无需等待它说完话。例如,熟悉从选项菜单中选择的客户现在可以这样做,无需听取整个提示。

Amazon Lex
  • 插入

    插入在默认情况下全局启用。您可以在 Amazon Lex 控制台中将其禁用。有关更多信息,请参阅允许您的自动程序被用户打断。此外,您还可以使用 allow-interrupt 会话属性修改插入行为。例如,x-amz-lex:allow-interrupt:*:* 允许中断对所有意图和所有槽值。有关更多信息,请参阅《Amazon Lex V2 开发人员指南》中的配置捕获用户输入的超时时间

Amazon Lex (Classic)
  • 插入

    x-amz-lex:barge-in-enabled:[intentName]:[slotToElicit]

    默认情况下全局禁用插入。您必须在获取客户输入数据块中设置会话属性,该数据块会调用 Lex 自动程序,才能在全局、自动程序或槽值级别启用该属性。此属性仅控制 Amazon Lex 插入,不控制 DTMF 插入。有关更多信息,请参阅 流量块如何使用 Lex 会话属性

    下图显示了启用插入功能的会话属性部分。

    属性页面的“会话属性”部分,值设置为“true”。

DTMF 输入的可配置字段

使用以下会话属性来指定 Lex 自动程序如何响应 DTMF 输入。

  • 结尾字符

    x-amz-lex:dtmf:end-character:[IntentName]:[SlotName]

    结束话语的 DTMF 结尾字符。

    默认值 = #

  • 删除字符

    x-amz-lex:dtmf:deletion-character:[IntentName]:[SlotName]

    清除累积的 DTMF 位数并结束话语的 DTMF 字符。

    默认值 = *

  • 结束超时

    x-amz-lex:dtmf:end-timeout-ms:[IntentName]:[SlotName]

    DTMF 位数之间的空闲时间(以毫秒为单位),用于表示语音已结束。

    默认值 = 5000 毫秒(5 秒)。

  • 每句话允许的最大 DTMF 位数

    x-amz-lex:dtmf:max-length:[IntentName]:[SlotName]

    给定话语中允许的最大 DTMF 位数。无法增加此值。

    默认值 = 1024 个字符

有关更多信息,请参阅 流量块如何使用 Lex 会话属性

使用 Amazon Lex 时的 Flow 语言表示法

以下代码示例显示了 Flow 语言中的ConnectParticipantWithLexBot操作如何表示 Amazon Lex 配置:

{ "Parameters": { "Text": "Welcome to Example Corp. Please press 1 for sales, press 2 for support", "LexV2Bot": { "AliasArn": "arn:aws:lex:us-west-2:23XXXXXXXXXX:bot-alias/3HL7SXXXXX/TSTALXXXXX" }, "LexTimeoutSeconds": { "Text": "300" } }, "Identifier": "Get Customer Input", "Type": "ConnectParticipantWithLexBot", "Transitions": { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Errors": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "InputTimeLimitExceeded" }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "NoMatchingError" }, { "NextAction": "Get Customer Input-ygqIfPM1n2", "ErrorType": "NoMatchingCondition" } ] } }

分散的动作表现

以下代码示例代表了对话结束后从 Lex 机器人返回的 Amazon Lex 情绪分数的碎片比较操作。

{ "Parameters": { "ComparisonValue": "$.Lex.SentimentResponse.Scores.Negative" }, "Identifier": "Get Customer Input-ygqIfPM1n2", "Type": "Compare", "Transitions": { "NextAction": "Get Customer Input-xDRo1hbBRB", "Conditions": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Condition": { "Operator": "NumberGreaterOrEqualTo", "Operands": [ "0.08" ] } } ], "Errors": [ { "NextAction": "Get Customer Input-xDRo1hbBRB", "ErrorType": "NoMatchingCondition" } ] } }

流块分支

下图显示了该模块配置为 DTMF 输入时的样子示例。它显示了两个输入分支:按下 1 和 Presse d 2。它还显示了超时默认错误分支。

已配置的“获取客户输入”数据块。
  1. 时:当客户没有为 Amazon Lex 中指定的聊天超时时间或为 DTMF 指定的设置超时值提供任何输入时,该怎么办。

  2. 默认:如果客户输入的输入与 DTMF 中的任何条件都不匹配,或者在 Amazon Lex 机器人中执行的意图。如上图所示,如果联系人输入的值不是 1 或 2,则他们将沿着 Defa ult 分支向下传送。

  3. 错误:如果封锁已运行但导致 DTMF 出错,或者 Amazon Lex 机器人无法实现意图。

其他配置提示

  • 获取客户输入区块不支持在 Amazon Lex V2 中使用 S3 存储桶中的语音提示。

  • 有关从 Amazon Connect 库或 S3 存储桶中选择提示的信息,请参阅播放提示数据块。

  • 您可以将此数据块配置为接受 DTMF 输入或聊天响应。您也可以将其配置为与 Amazon Lex 配合使用,例如,可以根据联系人的话语路由联系人。

    • 可用于与 Amazon Lex 集成的会话属性。本主题介绍了与 Amazon Lex 集成时可用的部分会话属性。有关所有可用的 Amazon Lex 会话属性的列表,请参阅配置捕获用户输入的超时时间。当您使用文字聊天 text-to-speech 或聊天时,最多可以使用 3,000 个计费字符(总共 6,000 个字符)。

    • 在流中使用时,Amazon Lex 自动程序支持口语表达和键盘输入。

    • 对于语音和 DTMF,每个对话只能有一组会话属性。以下是优先顺序:

      1. Lambda 提供的会话属性:在客户 Lambda 调用期间覆盖会话属性。

      2. Amazon Connect 控制台提供的会话属性:在获取客户输入数据块中定义。

      3. 服务默认值:仅在未定义任何属性时才使用这些属性。

  • 您可以使用井号键 # 提示联系人结束输入,并使用星号 * 取消它。当您使用 Lex 自动程序时,如果您没有提示客户以 # 结束输入,客户最终将等待五秒钟,以便 Lex 停止等待其他按键动作。

  • 要控制超时功能,您可以在此数据块中使用 Lex 会话属性,或者可以在 Lex Lambda 函数中设置。如果您选择在 Lex Lambda 函数中设置属性,则将使用默认值,一直到调用 Lex 自动程序为止。有关更多信息,请参阅《Amazon Lex 开发人员指南》中的使用 Lambda 函数

  • 当您指定本文中描述的会话属性之一时,可以使用通配符。利用通配符,您可以为意图或自动程序设置多个时隙。

    下面是如何使用通配符的一些示例:

    • 要将所有插槽设置为特定目的(例如)到 2000 毫秒 PasswordReset,请执行以下操作:

      名称 = x-amz-lex:max-speech-duration-ms:PasswordReset:*

      值 = 2000

    • 要将所有自动程序的所有时隙设置为 4000 毫秒,请执行以下操作:

      名称 = x-amz-lex:max-speech-duration-ms:*:*

      值 = 4000

    通配符将跨自动程序应用,但不跨流中的数据块应用。

    例如,您有一个 Get_Account_Number 自动程序。在流中,您有两个获取客户输入数据块。第一个数据块使用通配符设置会话属性。第二个数据块不设置属性。在这种情况下,自动程序的行为更改仅应用于已设置了会话属性的第一个获取客户输入数据块。

  • 由于您可以指定会话属性应用于意图和时隙级别,因此可以指定仅在收集特定类型的输入时设置该属性。例如,您可以在收集账号时,指定相比收集日期时更长的开始静默阈值

  • 如果使用 Amazon Connect 向 Lex 自动程序提供 DTMF 输入,则客户输入将作为 Lex 请求属性提供。属性名称为 x-amz-lex:dtmf-transcript,值的最大长度为 1024 个字符。

    以下是不同的 DTMF 输入场景:

    客户输入 DTMF 记录

    [DEL]

    [DEL]

    [END]

    [END]

    123[DEL]

    [DEL]

    123[END]

    123

    其中:

    • [DEL] = 删除字符(默认为 *

    • [END] = 结束字符(默认为 #

此区块生成的数据

此区块不生成任何数据。

错误情形

假设你有以下场景,有两个流程,每个流程都捕获来自客户的 DTMF 输入:

  1. 一个流使用获取客户输入数据块向客户请求 DTMF 输入。

  2. 输入 DTMF 输入后,它会使用 “转移到流” 模块将联系人移至下一个流。

  3. 在下一个流中,有一个存储客户输入数据块,用于从客户那里获取更多 DTMF 输入。

第一个流和第二个流之间有设置时间。这意味着,如果客户在第二个流中非常快地进行 DTMF 输入,一些 DTMF 数字可能会丢失。

例如,客户需要按 5,然后等待第二个流的提示,然后键入 123。在这种情况下,123 毫无疑问会被捕获。但是,如果他们不等待提示就很快输入了 5123,那么存储客户输入数据块可能只能捕获 23 或 3。

为了确保第二流中的商店客户输入块可以捕获所有数字,客户需要等待播放提示音,然后输入他们的 DTMF 输入类型。

流示例

Amazon Connect 包含一组流示例。有关如何在流设计器中访问流示例的说明,请参阅流示例。以下主题介绍了包含该数据块的流示例。

更多资源

要了解有关 Amazon Lex 和添加提示的更多信息,请参阅以下主题。