Amazon Connect CCP ウィンドウを閉じたときに、エージェントのステータスを [Offline] に自動的に設定する方法を教えてください。

最終更新日: 2019 年 11 月 21 日

Amazon Connect コンタクトセンターのエージェントが Contact Control Panel (CCP) ウィンドウを閉じると、そのステータスを自動的に Offline に設定します。どうすればよいですか?

簡単な説明

デフォルトの Amazon Connect CCP を使用する場合、閉じてもエージェントのステータスが Available から Offline に変更されることはありません。エージェントはステータスを手動で変更する必要があります。

CCP が終了したときにエージェントのステータスを自動的に変更するには、カスタム CCP を作成する必要があります。

解決方法

Amazon Connect Streams APIエージェント API を使用して、コンタクトセンターのカスタム CCP を作成します。カスタム CCP セットアップの例については、Amazon Connect で外部画面ポップを実行する を参照してください。

注: これらの手順では、基本的な例とリソースのみを示しています。Streams API の実装方法を決定し、独自のユースケースとコンタクトセンターの要件に合わせて JavaScript クライアントコードを開発する必要があります。

Streams API のセットアップ

手順については、 Amazon Connect Streams のドキュメントを参照してください。

アプリケーションコードを更新する

以下の 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」警告メッセージをポップできます。