如何在Amazon Connect中引用Lambda返回的JSON字段并实现转接?
解决Amazon Connect中引用Lambda返回JSON字段的问题
核心问题定位
你当前使用的属性路径$ContactData.Attributes.ChatGPTResponse.eligibilityDecision.Criteria1多了一层eligibilityDecision节点——你的Lambda直接返回的是顶层包含Criteria1和Criteria2的JSON结构,不存在嵌套的eligibilityDecision层级,这是导致无法正确取值的关键原因。
具体修复步骤
修正属性引用路径
若调用Lambda时设置的「Destination key」为ChatGPTResponse,正确的字段引用应为:- 引用Criteria1:
$ContactData.Attributes.ChatGPTResponse.Criteria1 - 引用Criteria2:
$ContactData.Attributes.ChatGPTResponse.Criteria2
直接去掉路径中的eligibilityDecision层级即可。
- 引用Criteria1:
验证属性值是否正确获取
在Set Contact Attributes块之后添加「Play Prompt」块,将变量IsEligibleValue的内容播放出来(比如设置提示文本为当前验证值:{IsEligibleValue}),确认是否能正确读取到Eligibility,以此快速排查路径是否配置正确。调整Check Contact Attributes的配置
- 判断条件选择「Equals」,检查值填写不带引号的
Eligibility(Connect会自动处理字符串匹配,无需额外添加引号)。 - 确保大小写完全匹配:Lambda返回的是首字母大写的
Eligibility,不要写成小写或其他格式。
- 判断条件选择「Equals」,检查值填写不带引号的
确认Lambda返回格式合规
- Lambda必须返回标准JSON字符串,且响应的Content-Type需设为
application/json。比如Python中需用json.dumps()将字典转为JSON字符串返回,不能直接返回字典对象。 - 查看Lambda的CloudWatch日志,确认返回的JSON结构和内容完全符合预期,没有多余的转义字符或层级错误。
- Lambda必须返回标准JSON字符串,且响应的Content-Type需设为
直接引用路径排查变量问题
如果设置变量后仍有问题,可以跳过Set Contact Attributes环节,直接在Check Contact Attributes块中引用路径$ContactData.Attributes.ChatGPTResponse.Criteria1进行判断,排除变量赋值环节的潜在问题。
内容的提问来源于stack exchange,提问作者Micah Goulart
相关产品推荐
相关产品推荐

