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

使用AWS Connect describeContact API无法获取完整联系人详情,求替代API

问题:AWS Connect获取指定ContactId的完整联系人详情

我正尝试通过AWS SDK(Amazon Connect)获取指定ContactId的完整联系人详情,目前用的describeContact API返回的信息不全,想知道有没有其他可用的API?

当前使用的JavaScript代码如下:

AWS.config.update({
  region: region,
  accessKeyId: accessKeyId,
  secretAccessKey: secretAccessKey
});

const connect = new AWS.Connect();
const params = {
  InstanceId: InstanceId,
  ContactId: ContactId
};

const getContactSearchHistory = async () => {
  try {
    const response = await connect.describeContact(params).promise();
  }
}

我原本期望获取Contact ID、Channel、发起时间戳、系统手机号、队列、坐席、客户手机号、挂断时间戳、通话时长等完整信息,但当前API仅返回以下内容:

{
  "Contact" : {
    "Arn" : "**",
    "Id" : "***",
    "InitiationMethod" : "OUTBOUND",
    "Channel" : "VOICE",
    "AgentInfo" : {
      "Id" : "**",
      "ConnectedToAgentTimestamp" : "***"
    },
    "InitiationTimestamp" : "**",
    "DisconnectTimestamp" : "**",
    "LastUpdateTimestamp" : "**"
  }
}

解决方案

1. 使用searchContacts API

这个API支持自定义返回字段,能拿到你需要的队列、客户手机号、系统手机号等信息。你可以通过指定ContactId作为筛选条件,同时在Fields参数里列出需要的字段。示例代码:

const getFullContactDetails = async () => {
  try {
    const params = {
      InstanceId: InstanceId,
      SearchCriteria: {
        ContactId: {
          Equals: ContactId
        }
      },
      Fields: [
        "ContactId",
        "Channel",
        "InitiationTimestamp",
        "DisconnectTimestamp",
        "CustomerPhoneNumber",
        "SystemPhoneNumber",
        "Queue.Name",
        "Agent.Id",
        "Agent.ConnectedToAgentTimestamp"
      ]
    };
    const response = await connect.searchContacts(params).promise();
    // 处理返回的完整联系人数据
    console.log(response.Contacts);
  } catch (error) {
    console.error(error);
  }
};

2. 结合getContactAttributes API

如果还需要自定义属性或者更多元数据,可以用这个接口补充describeContact的结果:

const getContactExtraAttributes = async () => {
  try {
    const params = {
      InstanceId: InstanceId,
      ContactId: ContactId
    };
    const response = await connect.getContactAttributes(params).promise();
    // 这里包含自定义属性等额外信息
    console.log(response.Attributes);
  } catch (error) {
    console.error(error);
  }
};

3. 计算通话时长

通话时长不需要API返回,你可以用返回的DisconnectTimestamp减去InitiationTimestamp得到,比如:

const calculateDuration = (initTime, disconnectTime) => {
  const init = new Date(initTime);
  const disconnect = new Date(disconnectTime);
  return (disconnect - init) / 1000; // 转换为秒
};

补充说明

describeContact本身只返回最基础的核心联系人信息,更详细的字段需要通过searchContacts来获取,它支持更灵活的查询和字段筛选,能覆盖你提到的大部分需求。如果有自定义属性,再配合getContactAttributes即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:43:14