如何设置代理状态,让它们在关闭 Amazon Connect CCP 窗口时自动离线?

上次更新时间:2019 年 11 月 21 日

当我的 Amazon Connect 联系中心的代理关闭联络控制面板 (CCP) 窗口时,我希望它们的状态会被自动设置为离线。该如何操作?

简短描述

在使用默认的 Amazon Connect CCP 时,将其关闭不会使代理的状态从空闲更改为离线。代理的状态必须手动更改。

您必须创建自定义 CCP,在 CCP 关闭时自动更改代理的状态。

解决方法

使用 Amazon Connect Streams API代理 API 为您的联系中心创建自定义 CCP。如需自定义 CCP 设置的示例,见使用 Amazon Connect 执行外部屏幕弹窗

注:这些说明仅提供基本的示例和资源。您必须确定如何为您自己的用例和联系中心要求实现 Streams API 并编写 JavaScript 客户端代码。

设置 Streams API

如需说明,见 Amazon Connect Streams 文档

更新您的应用程序代码

在您的 Web 应用程序中集成以下 Streams API 调用:

1.    使用 connect.agent() 来订阅代理事件与检索代理对象。

let mAgent;

connect.agent(function(agent) {
  mAgent = agent;
});

2.    在 onbeforeunload 事件处理程序中调用 agent.setState() 以更改代理状态。

window.addEventListener("beforeunload", function(event) {
  if (mAgent != null) {
    let states = mAgent.getAgentStates();
    // "states" is an array of changeable states. You can filter the desired state to change by name.
    let offlineState = states.filter(state => state.name === "Offline")[0];

    // Change agent state
    mAgent.setState(offlineState, {
      success: function() {
        console.log("SetState succeeded");
      },
      failure: function() {
        console.log("SetState failed");
      }
    });
  }
});

防范错误的设计

如果 API 调用在第一次执行时失败,联系人进入联络流的错误分支,那么代理状态有可能不会如预期更改。确保将此可能性的逻辑纳入考虑。例如,您可以在 API 调用再次尝试时延迟页面卸载。或者,您可以在模态对话中弹出 "Call failed" 警告消息,然后再卸载页面。