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

如何在Node.js中通过客户手机号获取contact_id及通话详情?

通过Node.js获取Amazon Connect中客户手机号对应的contact_id及通话详情

方法1:调用Amazon Connect官方ListContacts API

这是最直接的官方解决方案,通过指定phoneNumber参数过滤目标手机号的所有联系人记录,可直接获取contactId、通话起始时间等核心字段。

在Node.js中借助AWS SDK v3实现:

import { ConnectClient, ListContactsCommand } from "@aws-sdk/client-connect";

// 初始化Connect客户端
const connectClient = new ConnectClient({ region: "你的AWS区域" });

// 构建查询参数
const queryParams = {
  InstanceId: "你的Connect实例ID",
  PhoneNumber: "+1234567890", // 需严格遵循E.164格式的客户手机号
  MaxResults: 50, // 单次返回的最大结果数,可按需调整
  // 可选:添加时间范围过滤,缩小查询范围
  StartTimeRange: {
    StartTime: new Date("2024-01-01T00:00:00Z"),
    EndTime: new Date()
  }
};

// 执行查询
try {
  const command = new ListContactsCommand(queryParams);
  const response = await connectClient.send(command);
  
  // 提取并处理目标数据
  response.Contacts.forEach(contact => {
    console.log(`contact_id: ${contact.ContactId}, 通话时间: ${contact.InitiationTimestamp}`);
  });
  
  // 处理分页:如果结果超过MaxResults,使用NextToken继续查询
  if (response.NextToken) {
    // 此处可循环调用API,传入NextToken获取剩余数据
  }
} catch (error) {
  console.error("查询失败:", error);
}

注意:需要确保执行代码的IAM角色拥有connect:ListContacts权限,手机号格式必须符合E.164标准,否则API会返回空结果。

方法2:结合Contact Lens获取详细通话分析数据

如果需要展示类似Contact Lens的通话详情(如通话时长、转译文本),可先通过ListContacts拿到contact_id,再调用ListContactAnalyticsCommands API获取对应的分析数据:

import { ConnectClient, ListContactAnalyticsCommand } from "@aws-sdk/client-connect";

const fetchContactAnalytics = async (instanceId, contactId) => {
  const client = new ConnectClient({ region: "你的AWS区域" });
  const params = {
    InstanceId: instanceId,
    ContactId: contactId
  };
  const command = new ListContactAnalyticsCommand(params);
  const response = await client.send(command);
  return response.AnalyticsData;
};

方法3:预存数据到自建数据库优化查询

如果需要高频查询同一手机号的历史记录,建议定期通过上述API同步数据到自建数据库(如DynamoDB、PostgreSQL),建立手机号到contact_id的索引。后续查询直接从数据库读取,可避免频繁调用AWS API带来的延迟和成本问题。

实用技巧

  • 强制使用E.164格式的手机号,否则API无法匹配到对应记录。
  • 利用StartTimeRange和EndTimeRange缩小查询范围,减少返回数据量,提升查询效率。
  • 处理分页逻辑:当返回结果超过MaxResults时,使用NextToken参数循环调用API获取完整数据。
  • 确保IAM权限配置正确:若使用Contact Lens功能,需额外添加connect:ListContactAnalytics权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:03:23