You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS SDK for JavaScript获取Amazon Connect联系人属性返回空问题

关于Amazon Connect getContactAttributes返回空属性的解答

1. { Attributes: {} }的含义

这个返回结果说明getContactAttributes接口调用完全成功,既不是传参错误也不是console输出问题,只是你查询的这个联系ID名下没有存储任何自定义的联系人属性。

2. 常见原因及排查方案

  • 未主动设置联系人属性:Amazon Connect不会自动生成联系人属性,所有属性都需要你在联系流中通过「设置联系人属性」节点手动配置存储,若你的联系流没有做过相关配置,返回空对象属于正常情况。
  • Lambda权限配置缺失:确认你的Lambda执行角色已添加connect:GetContactAttributes权限,且权限的资源范围包含你对应的Amazon Connect实例ARN,部分权限受限场景下接口会正常返回200状态但属性集合为空。
  • 联系ID对应关系异常:如果通话流程中使用了转接、咨询、转移坐席等操作,会生成多个子联系ID,你从S3元数据获取的contact-id为录音对应的初始联系ID,若你在子联系流程中设置的属性不会同步到初始联系ID下,也会导致查询为空。
  • 属性超过存储时效:Amazon Connect的联系人属性默认仅保留24个月,若你查询的是超期的历史录音对应的联系ID,属性会被系统自动清理,返回结果为空。

3. 实现方案可行性说明

通过S3录音文件元数据的contact-id和organization-id调用接口获取联系人属性是官方认可的可行方案,不存在方法本身不可用的问题。

4. 代码优化提示

你当前的代码在遍历event.Records时,固定取event.Records[0]的参数,若一次触发多条S3事件会重复处理第一条记录,建议修改对应代码:

// 原代码
const bucket = event.Records[0].s3.bucket.name;
const key = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));
// 修改为
const bucket = record.s3.bucket.name;
const key = decodeURIComponent(record.s3.object.key.replace(/\+/g, ' '));

内容的提问来源于stack exchange,提问作者hagiohagi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:09:00