エージェント デスクトップの展開オプション

エージェント デスクトップの展開オプション

Zoom CX エージェント デスクトップの連携オプション

お客様から「Zoom Contact Center は当社で利用している [システム名] と連携できますか?」という質問をよくいただきます。多くの場合、この回答は単純に「はい」や「いいえ」と言い切れるものではありません。

「連携」という言葉は、人によって意味が異なります。ここでは、お客様の考える「連携」の例をいくつかご紹介します。

 

  • 人間のエージェントが別のアプリケーション内で操作できるようにしたい

  • 人間のエージェントが CRM の画面ポップとクリックで通話の機能を使えるようにしたい

  • 音声 IVR がシステムのデータベースを参照し、セルフサービスの情報を提供できるようにしたい

  • クレジット カードでの支払いを処理するために、バンキング システムと連携させたい

  • AI チャットボットに、自社のビジネスに関する具体的な詳細情報を理解してもらいたい

  • エージェントとお客様との会話時に、コンタクト センター システムが自動的に関連情報を表示するようにしてエージェントを支援してほしい

 
上記の例では、連携の捉え方がそれぞれ違います。先ほどの質問に答え、ビジネスに適したコンタクト センター設計を導き出すためには、ビジネス要件を理解することが重要です。
上記の例をご覧になって、貴社の「連携」に必要な機能はどれだと思いますか?
この記事では、上の例の最初の 2 項目について詳しく説明します。その他の項目については、今後の記事で取り上げる予定です。

エージェントの展開オプション

Zoom Workplace アプリ

Zoom のデフォルトのエージェント デスクトップは、Zoom Workplace アプリ内に構築された標準的なインターフェースで、Zoom ミーティングへの参加時や Zoom Phone の通話発信時に使用するものと同じ、使い慣れたアプリケーションです。Zoom Contact Center ライセンスをお持ちのエージェントは、[コンタクト センター] タブ(以下に表示)にアクセスし、Zoom Contact Center のエンゲージメントを処理できます。

ブラウザの画面ポップ

Zoom Workplace アプリに組み込まれている起動 URL 機能を使用すると、変数データに基づいた動的ウェブ URL を作成し、エージェントのコンピュータ上のシステム ブラウザにポップアップ表示できます。画面ポップの URL に含まれるデータには、発信者の電話番号などの標準的な変数だけでなく、フロー / IVR が収集したカスタムデータ(ケース番号やチケット番号など)も含めることができます。

Zoom Apps

お客様は、Zoom アプリ フレームワークを利用して、ウェブ アプリケーションを Zoom Contact Center エージェント デスクトップに連携することで、Zoom Workplace アプリの機能を強化できます。Zoom Apps は、各キューの管理者設定に応じてエージェントのエンゲージメント画面の右側に表示されます。これにより各キューでは、どの Zoom App をエージェントに表示するかを制御できます。
 
Zoom アプリ フレームワークは、公開アプリ(以下の PCI Pal アプリなど)と非公開アプリの両方をサポートしています。非公開アプリは通常、社内のユースケースを対象としており、アプリを作成した Zoom アカウントのみで利用できます。独自のウェブアプリ(HTML / CSS / JavaScript)を構築するためのリソースがある場合は、Zoom Workplace アプリにシームレスに連携できます。
 
 
Zoom Apps JavaScript SDK は、イベントと API の両方をサポートするため、アプリでエンゲージメントの最新情報を入手したり、データに投票したりできます。詳細については、Zoom デベロッパー向けサイトの Zoom Apps をご確認ください。

プログレッシブ ウェブアプリ(PWA)

ウェブクライアントは、Chromeなどのウェブブラウザを使用してZoom Contact Centerにログインすることをご希望のお客様にご利用いただけます。機能セットは、Zoom Workplaceアプリで利用できるものと同様です。
 

CRM 連携

エージェントが CRM 内の埋め込みツールから作業できるようにしたい場合は、ZCC CRM CTI コネクタを利用できます。サポート対象の CRM は、Salesforce、Zendesk、ServiceNow、HubSpot、Microsoft Dynamics 365 です。お客様がこれらの CRM 連携のいずれかを利用している場合、エージェントは埋め込みの Zoom Contact Center 連携を使用して、CRM 内のエンゲージメントを処理します。これらの連携では、画面ポップと通話ログ機能をすぐにご利用いただけます。
 
 
連携のデフォルトの動作は、発信者 ID に基づいた画面ポップ(音声 / SMS チャネル)またはメール(ウェブチャット / ビデオチャネル)ですが、フローで収集された追加データに基づいて、画面ポップに他の設定(ケース / チケット番号など)を追加できます。この設定について見ていきましょう。
 
 
注: [チャネル設定] 画面に表示されるオプションは、使用する CRM と ZCC チャネルによって異なります。

ZCC スマート埋め込み連携

Zoom Contact Center スマート埋め込み(CCSE)は、デベロッパーが HTML iFrame 設定を使用して、エージェントの画面を独自のウェブ アプリケーションにすばやく埋め込むことができる、柔軟なソリューションです。ウェブ デベロッパー チームは追加の JavaScript コードをウェブアプリに追加して、通話の呼び出し / 接続イベントを受信し、ウェブ アプリケーション内で画面ポップや通話ログをトリガーするために使用できます。
 
 
スマート埋め込みについての詳細については、デベロッパー向けドキュメントをご覧ください。
 

パートナー向けソリューション

 

上記のオプションでは対応できないエージェント ソリューションが必要な場合は、Zoom イノベーティブ ソリューション ベンダー(ISV)パートナーが提供するその他の連携をご利用いただけます。ISV パートナー プログラムには、銀行、信用組合、保険、医療機関などの組織向けに構築されたソリューションがあります。
 

サポートされている機能

以下の表は、各展開オプションでサポートしているチャネルの一覧です。

展開オプション

サポート対象の OS

サポート対象の ZCC チャネル

AI Companion

AI エキスパート アシスト

Zoom Workplace デスクトップ アプリ
Windows、Mac
音声、ビデオ、SMS、ウェブチャット、ソーシャル メッセージ、メール
すべてのライセンスで利用可能
エリートおよび AI エキスパート アシスト アドオン ライセンスで利用可能

CRM CTI 連携

ウェブ

音声、ビデオ、SMS、ウェブチャット、ソーシャル メッセージ

ロードマップに記載

ロードマップに記載。エリートまたは AI エキスパート アシスト アドオン ライセンスが必要

ZCC スマート埋め込み

ウェブ

音声、ビデオ、ウェブチャット

利用不可

利用不可

フローイベントと Zoom App Marketplace イベント

より高度なエージェント デスクトップ連携では、Zoom CX フローイベントまたは Zoom App Marketplace API イベント(Webhook / WebSocket)を活用できます。Zoom CX プラットフォームはこれらのオプションを使用し、Zoom Contact Center イベントに基づいて HTTPS リクエストを外部 API エンドポイントに送信します。
 
連携の要件に応じて、フローイベントと API イベントのいずれか、または両方を選択できます。
 
これらのイベントの受信時に画面ポップまた通話ログの連携を設計できます。
フローイベントと Zoom App Marketplace イベントのどちらも、上記のすべてのエージェント展開オプションで利用できます。

イベントタイプ

サポート対象のエンゲージメント

ペイロード タイプ

ZCX フローイベント スクリプト

着信のみ

カスタム JSON

Zoom App Marketplace イベント

着信と発信

固定 JSON

フローイベント スクリプト

フローイベント スクリプトは、Zoom Contact Center 内で特定のアクションが発生した場合にトリガーされます。イベントがトリガーされると、関連付けられたイベント スクリプト コードがエンゲージメントのコンテキスト内で実行されるため、スクリプトはエンゲージメントの変数にアクセスできます。
 
一般的な 2 つのフローイベント スクリプトを以下に示します。

 

イベント名

イベント トリガー

エンゲージメントを承認済み

エージェントが通話を承認した場合

処理を保存済み

エージェントが処理を保存し、エンゲージメントを終了した場合

注: イベント スクリプトの全リストは、こちらのサポート記事で確認できます。
 
上記の 2 つのイベントを使用して HTTP リクエストを外部システムに送信する例をご紹介します。外部システムがこれらのイベントを受信したら、そのデータをログ、画面ポップ、その他のユースケースに使用できます。提供される具体的な機能は、外部システムの機能によって決まります。

設定例

フローで、まずは [開始] ウィジェットにイベント スクリプトを設定します。以下の例では、[開始] ウィジェットに 2 つのイベント スクリプトが設定されています。

イベント スクリプト コードを作成するには、[開始] ウィジェットに新しいイベント スクリプトを追加します。すると、以下に示すように、フローエディタにコードを直接入力できるようになります。
 
Engagement Accepted イベントも Disposition Saved イベントも、同じようなコードを使用しています。どちらも単純な Javascript のコードブロックで、組み込みの HTTP 関数を使用して HTTPS POST リクエストを生成しています。
 
[エンゲージメントを処理済み] イベント スクリプト コード
 
以下のコード例には、エンゲージメント ID、発信者の電話番号、エージェントのメールアドレス、キューの名前が含まれています。このコードは、エージェントがエンゲージメントに応答し、顧客と会話を始めるときに実行されます。この例では、画面ポップの生成や新規通話ログの開始に最低限必要になる情報の例です。ZCC フロー構成で、フロー / IVR の発信者に関するデータ(アカウント番号、ケース / チケット番号など)を収集している場合は、request_body 変数にさらに変数を追加するだけで、この HTTP リクエストに追加データを含めることができます。
 
async function main () { try { let request_body = { "engagementId": var_get()["global_system.Engagement.engagementId"], "caller_number": var_get()["global_system.Engagement.ANI"], "agent_email": var_get()["global_system.Agent.email"], "queue_name": var_get()["global_system.Engagement.queue"] } const result = await req.post('https://api.example.com/acceptedcall', request_body); let jsonResponseBody = result.data; log.debug("Axios jsonResponseBody=" + JSON.stringify(jsonResponseBody)); } catch (error) { log.debug("Received HTTP error " + error); }}
 
[処理を保存済み] イベント スクリプト コード
 
[処理を保存済み] イベントでは、前の例で使用したコードを再利用して、9 行目に disposition 変数を追加します。このコードブロックは、エンゲージメント中にエージェントが行う最後のアクションである、エージェントが通話の処理を選択するときに実行されます。このリクエストを送信すると、外部システムは、エージェントがエンゲージメントの処理を完了したことを追跡できます。上記の [エンゲージメントを承認済み] イベントと同様に、ユースケースによって、必要に応じて追加の変数を含めることができます。
 
async function main () { try { let request_body = { "engagementId": var_get()["global_system.Engagement.engagementId"], "caller_number": var_get()["global_system.Engagement.ANI"], "agent_email": var_get()["global_system.Agent.email"], "queue_name": var_get()["global_system.Engagement.queue"], "disposition_name": var_get()["global_system.Engagement.disposition"] } const result = await req.post('https://api.example.com/dispositionedcall', request_body); let jsonResponseBody = result.data; log.debug("Axios jsonResponseBody=" + JSON.stringify(jsonResponseBody)); } catch (error) { log.debug("Received HTTP error " + error); }}
 
ソリューションによっては、上記のフローイベント スクリプトで十分な場合も、連携で必要なすべてのユースケースを網羅するために Zoom App Marketplace API イベントが必要になる場合もあります。たとえば、上記の 2 つのフローイベントを補完するために、Zoom App Marketplace API イベントを購読して、保留 / 再開 / ミュート / ミュート解除イベントを追加できます。これらの追加イベントにより、エージェントが通話を保留中またはミュートにする頻度のインサイトをアプリケーションに提供できます。
 
上記のフローイベント スクリプトと Zoom App Marketplace の Webhook / WebSocket イベントの両方をソリューションで利用可能です。

Zoom App Marketplace API イベント

他の Zoom プロダクトと同様に、Zoom CX 向けの API Webhook / WebSocket イベントが Zoom App Marketplace で公開されています。
 
イベントは、ログイン/ログアウト、キューへの入室/退室、ステータス変更イベントなど、エージェントの活動を追跡するために利用できます。エンゲージメントイベントは、エンゲージメントの開始、エンゲージメントの応答、エンゲージメントのミュート/アンミュート、DTMFの送信、転送の開始、終了、メモの追加、処分の追加などのイベントを含む、システムを通してのエンゲージメントを追跡することができます。エンゲージメントイベントを追跡することで、エンゲージメントレベルの詳細なデータを把握することができます。
 
コンタクト センター API の詳細については、Zoom デベロッパー向けサイトをご覧ください。

まとめ

Zoom CX では、Zoom Contact Center に関するお客様のビジネス要件を満たすために、複数のエージェント デスクトップ展開オプションを提供しています。すべての展開オプションで、画面ポップや通話ログなど、一般的なコンタクト センター機能を利用できます。CRM とのシンプルな連携が必要な場合でも、エージェント デスクトップにカスタムウェブ アプリケーションを埋め込む場合でも、フローイベントや API Webhook を使用した高度なイベント主導の連携が必要な場合でも、Zoom CX はお客様のニーズに柔軟に対応します。具体的な要件を把握し、適切なツールと連携を活用することで、エージェントと顧客にとってシームレスかつ効率的なコンタクト センター体験を構築できます。