# 智能排队
Juphoon 提供的智能排队服务是纯软件解决方案,相较于传统的排队机,智能排队服务轻量化的纯软件灵活部署模式、完美兼容行方现有的集中作业平台、呼叫中心等系统。
智能排队服务是在座席管理后台里通过对业务组、技能组和座席进行灵活配置,将座席资源按照实际的业务所需进行分组,再通过智能调度中心按照不同调度策略结合当前座席资源使用情况,合理的将来自访客终端的呼叫请求分配至相应的座席。实现大流量访客的合理分流,降低排队流失,优化顾客体验。
# 1. 排队人数
通过实现 JRTCAgentCallback (opens new window) 中的 onCallQueueCount (opens new window) 接口上报:
/**
* 排队人数上报
*
* @param count 当前排队人数
*/
void onCallQueueCount(int count);
示例代码:
@Override
public void onCallQueueCount(int count) {
//count 当前人数
}
# 2. 处理加急
加急流程:
- 访客通过调用 JRTCGuest (opens new window) 的 requestUrgent (opens new window) 方法发起加急请求;
- 座席通过实现 JRTCAgentCallback (opens new window) 的 onUrgentRequest (opens new window) 接口接收访客的加急请求;
- 座席处理加急的结果通过实现 JRTCAgentCallback (opens new window) 的 onResponseUrgentResult (opens new window)获取;
- 座席通过调用 JRTCAgent (opens new window) 的 responseUrgent (opens new window) 方法处理是否同意加急请求;
- 访客通过实现 JRTCGuestCallback (opens new window) 的 onUrgentResultResponse (opens new window) 获取作息处理加急结果;
- 座席同意加急请求后,访客可以优先被分配座席进行通话;
注:只有管理员权限的座席才能收到加急请求,可以在业务管理平台上配置座席权限。
/**
* 收到加急请求回调
*
* 访客在排队过程中调用 {@link JRTCGuest#requestUrgent requestUrgent} 接口发起加急请求成功后,管理员权限的座席(业务管理平台配置)会收到此回调。<br>
* 座席收到回调后可调用 {@link JRTCAgent#responseUrgent responseUrgent} 接口对加急请求进行处理,接口的参数从此回调中获得。
* @param serialNumber 业务唯一标识
* @param callerNumber 发起加急请求的用户ID
*/
void onUrgentRequest(String serialNumber, String callerNumber);
/**
* 处理加急请求
*
* 请求加急流程: <br>
* 1. 访客在排队过程中调用 {@link JRTCGuest#requestUrgent requestUrgent} 接口发起加急请求 <br>
* 2. 管理员权限的座席(业务管理平台配置)收到 {@link JRTCAgentCallback#onUrgentRequest onUrgentRequest} 回调 <br>
* 3. 座席收到回调后调用此接口对加急请求进行处理 <br>
* 4. 座席处理后,访客会收到 {@link JRTCGuestCallback#onUrgentResultResponse onUrgentResult} 加急请求处理结果回调,如果座席同意加急请求,则将会插队到队列最前
* @param serialNumber 业务唯一标识,通过 {@link JRTCAgentCallback#onUrgentRequest onUrgentRequest} 回调获得
* @param callerNumber 发起加急请求的用户ID,通过 {@link JRTCAgentCallback#onUrgentRequest onUrgentRequest} 回调获得
* @param agree 同意或拒绝加急请求
* - true: 同意加急请求
* - false: 拒绝加急请求
* @return 操作id,对应 {@link JRTCAgentCallback#onResponseUrgentResult onResponseUrgentResult} 回调的 operationId 参数
*/
public abstract int responseUrgent(String serialNumber, String callerNumber, boolean agree);
/**
* 处理加急结果回调
*
* @param result 处理结果
* - true: 处理成功
* - false: 处理失败
* @param operationId 操作id,对应 {@link JRTCAgent#responseUrgent responseUrgent} 接口的返回值
*/
void onResponseUrgentResult(boolean result, int operationId);
示例代码:
int operationId;
//访客请求加急
guest.requestUrgent();
//座席收到访客加急请求
void onUrgentRequest(String serialNumber, String callerNumber) {
//座席同意方可加急请求
operationId = agent.responseUrgent("", "guest", true);
}
//座席收到处理加急结果
void onResponseUrgentResult(boolean result, int operationId) {
if (this.operationId == operationId && result) {
//座席处理加急结果成功
}
}
//访客接收到座席处理加急结果
void onUrgentResultResponse(boolean agree) {
if (agree) {
//座席同意加急请求
} else {
//座席不同意加急请求
}
}