Customer Service 全渠道提供了一套功能,扩展了 Dynamics 365 Customer Service Enterprise 的能力,使组织能够通过数字消息传递渠道与客户即时联系和互动。 访问 Customer Service 全渠道需要额外的许可证。 有关详细信息,请参见 Dynamics 365 Customer Service 定价概述和 Dynamics 365 Customer Service 定价计划页面。
根据路由规则检索队列的代理可用性。 全渠道开发人员可以使用此 API 来确定是否应对客户可见开始对话选项,以及显示等待时间和队列中的位置等信息。
注释
- 在调用实时聊天 SDK 方法之前,侦听实时聊天引发的 lcw:ready 事件。 引发 lcw:ready 事件后,可以调用实时聊天方法。 您可以通过在窗口对象上添加自己的事件侦听器来监听此事件。
- 当客户输入发生变化时,可以从客户端多次调用此方法。 客户端缓存每 2 分钟刷新一次,或者在客户上下文参数更改时刷新一次。
- 每个组织每分钟只能调用此方法100次。 如果超过限制,则会看到 http 429 响应状态代码,指示您在指定的时间内发送了过多的请求。
Syntax
Microsoft.Omnichannel.LiveChatWidget.SDK.getAgentAvailability();
参数
None
返回值
| Name | 类型 | Description |
|---|---|---|
queueId |
String | 根据路由规则配置和输入数据(提供作为路由规则一部分的实体值和上下文)路由请求的目标队列。 |
isQueueAvailable |
布尔 | 显示: - 如果队列在工作时间内,则为 TRUE。 - 如果队列在营业时间之外,则为 FALSE。 |
StartTimeOfNextOperatingHour |
日期和时间 | 队列的营业时间的开始时间 (UTC)(如果排队在营业时间之外)。 在工作时间内,将返回值 01-01-0001。 |
EndTimeOfNextOperatingHour |
日期和时间 | 如果队列在工作时间之外,则队列的营业时间结束的时间 (UTC)。 在工作时间内,将返回值 01-01-0001。 |
nexttransitiontime |
日期和时间 | 如果队列在工作时间之外再次运行的时间 (UTC)。 队列不运行的时间在工作时间内显示。 |
positionInQueue |
编号 | 在同一队列中等待的客户在队列中的位置。 |
isAgentAvailable |
布尔 | 显示: - 如果队列中的代理当前可以根据为工作流配置的路由和分配规则接受请求,则为 TRUE。 如果机器人附加到工作流或队列,API 还返回 true。 建议在存在机器人时不要使用此 API。 - 如果代理无法接受请求,则为 FALSE。 |
averageWaitTime |
编号 | 基于过去 48 小时数据的目标队列中客户的平均等待时间(以分钟为单位)。 |
Example
window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
// Gets the agent availability
Microsoft.Omnichannel.LiveChatWidget.SDK.getAgentAvailability();
});
传递函数的自定义上下文值,以确保收到上下文
此方法执行对 setContextProvider 函数的内部调用,然后同步调用 getAgentAvailability,以确保在继续之前设置了上下文。 由于单独使用函数时函数的异步性质,当咨询代理可用时,上下文可能尚未准备就绪。
注释
在调用 getAgentAvailability 之前,无需调用 setContextProvider 方法。
下面是一个示例代码,演示如何使用该 setContextProvider 方法。
// To set the custom context, pass the custom context object as input parameter to agent availability
// provider as part of the logic, so there is no need to set custom context before this call.
Microsoft.Omnichannel.LiveChatWidget.SDK.getAgentAvailability({
customContext : {
'jwtToken': {'value':'token','isDisplayable':true},
'Email': {'value':'test@test.com','isDisplayable':true},
'client': {'value':'true','isDisplayable':true},
'Emailing': {'value':'true','isDisplayable':true}
}
}
);