どうやってエージェントが Amazon Connect CCP を閉じたときに、エージェントのステータスを自動的にオフラインに設定するんですか?

最終更新日: 2021 年 12 月 13 日

Amazon Connect コンタクトセンターのエージェントが Contact Connect コントロールパネル (CCP) ウィンドウを閉じたときに、ステータスを自動的に [オフライン] に変更しするのが欲しいです。設定するにはどうすればよいですか?

簡単な説明

Amazon Connect Streams API とエージェント API を使用して、CCP をコンタクトセンターのカスタムアプリケーションに統合します。

カスタム CCP セットアップの例については、Amazon Connect で外部画面ポップを実行する を参照してください。

注:デフォルトの Amazon Connect CCP を使用している場合、これを閉じてもエージェントのステータスが [利用可能] から [オフライン] に変更されることはありません。エージェントはステータスを手動で変更する必要があります。

解決方法

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

カスタムウェブアプリケーションで Amazon Connect インスタンスの CCP をセットアップする

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

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

以下の 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 呼び出しが再試行される間、ページのアンロードを遅らせることができます。または、ページがアンロードされる前に、モーダルダイアログボックスに「呼び出し失敗」という警告メッセージを入力することもできます。