如何在Amazon Connect中将Amazon Lex返回的slot值设置为联系人属性
问题描述
我正尝试将Amazon Lex返回的槽位(slot)值设置为Amazon Connect联系人属性。
为了验证配置是否生效,我调用Lambda函数打印完整的联系流事件,Lambda代码如下:
def lambda_handler(event, context): print(event) # TODO implement return {}
但查看CloudWatch日志时发现,dob和ssn两个联系人属性的取值均为空字符串,日志示例如下:
{ "Details": { "ContactData": { "Attributes": { "dob": "", "ssn": "" }, "Channel": "VOICE", "ContactId": "419229f1-44fd-49c5-b382-37229b7a4bc2", "CustomerEndpoint": { "Address": "+1XXXXXXXXX", "Type": "TELEPHONE_NUMBER" }, "CustomerId": null, "Description": null, "InitialContactId": "419229f1-44fd-49c5-b382-37229b7a4bc2", "InitiationMethod": "INBOUND", "InstanceARN": "arn:aws:connect:ap-southeast-1:XXXXXXXX:instance/XXXXXXX", "LanguageCode": "en-US", "MediaStreams": { "Customer": { "Audio": null } }, "Name": null, "PreviousContactId": "419229f1-44fd-49c5-b382-37229b7a4bc2", "Queue": null, "References": {}, "SystemEndpoint": { "Address": "+1XXXXXXXX", "Type": "TELEPHONE_NUMBER" } }, "Parameters": {} }, "Name": "ContactFlowEvent" }
补充说明:联系流的提示音组件直接回放槽位值时,可以听到正确的取值,证明Lex已经成功识别到了槽位内容。
解决方案
该问题是由于设置联系人属性时,Lex槽位值的引用路径错误导致的:
Amazon Connect的提示音组件支持{槽位名}的简化格式读取最近调用的Lex返回的槽位值,所以回放正常。但设置联系人属性的组件不支持该简化写法,必须指定完整的对象引用路径。
修改联系人属性的取值配置即可解决:
dob属性的取值填写:$.Lex.CurrentIntent.Slots.dobssn属性的取值填写:$.Lex.CurrentIntent.Slots.ssn
如果你的联系流中调用了多个Lex意图,需要指定特定意图的槽位,把路径中的CurrentIntent替换为对应的Lex意图名称即可。修改完成后重新测试,CloudWatch日志中就能看到正确的属性取值。
内容的提问来源于stack exchange,提问作者Amandeep Singh
相关产品推荐
相关产品推荐

