如何获取MS Teams呼叫队列中来电被坐席接听前的等待时长?
嘿,针对你问的MS Teams呼叫队列里来电被坐席接听前的等待时长获取问题,我给你整理了几个实用的方案,都是实际项目里验证过的:
获取MS Teams呼叫队列来电等待时长的方法
一、Teams内置呼叫分析报告(最省心的官方途径)
这是最不需要技术开发的方式,适合看整体队列的等待趋势:
- 登录Teams管理员中心,找到Analytics & reports > Usage reports
- 选择「Call queue analytics」报告,设置好时间范围和目标呼叫队列
- 报告里会直接展示Average time in queue(队列平均等待时长)、Maximum time in queue(单来电最长等待时长)这类聚合指标,还能导出CSV文件做更细致的分析
- 注意:这个报告是延迟聚合数据(一般延迟几小时),适合做复盘统计,要是需要单通来电的精确时长,得用下面的方法
二、Microsoft Graph API获取单来电精确数据
如果需要做自定义系统集成,或者拿到每一通电话的具体等待时长,Graph API是最佳选择:
- 核心用
callRecords相关接口,比如GET /communications/callRecords/{callRecordId} - 每条呼叫记录的
queueInfo字段里的timeInQueue属性,就是从来电进入队列到被坐席接听的精确时长(格式是ISO 8601持续时间,比如PT30S代表30秒,PT1M23S代表1分23秒) - 示例请求(简化版):
GET https://graph.microsoft.com/v1.0/communications/callRecords/{callRecordId} - 响应里的关键片段:
{ "queueInfo": { "id": "your-queue-guid", "timeInQueue": "PT1M23S" } } - 权限说明:需要配置
CallRecords.Read.All应用权限或者CallRecords.Read委托权限,得先在Azure AD里完成应用注册和权限授予
三、自定义解决方案(应对特殊需求)
如果上面的方法满足不了你的场景(比如实时获取等待时长、触发自定义通知),可以考虑:
- 用Power Automate结合Teams的呼叫队列触发器:当来电进入队列时触发流并记录时间戳,当来电被接听时再记录一次时间,两者相减就能得到等待时长
- 基于Teams SDK开发自定义机器人/应用,监听呼叫状态变更事件,实时计算并存储等待时长
额外提醒
- 内置报告的数据存在延迟,若需要实时数据,只能通过Graph API或自定义方案实现
- 所有操作都需要对应权限:比如查看管理员报告需要全局管理员/Teams服务管理员权限,调用Graph API需要对应的应用/委托权限
内容的提问来源于stack exchange,提问作者Ranr
相关产品推荐
相关产品推荐

