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

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

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

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

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

 

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

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

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

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

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

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

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

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

Zoom Workplaceアプリ

Zoom のデフォルトのエージェント デスクトップは、Zoom Workplace アプリ内に構築された標準的なインターフェースで、Zoom ミーティングへの参加時や Zoom Phone の通話発信時に使用するものと同じ、使い慣れたアプリケーションです。Zoom Contact Center ライセンスをお持ちのエージェントは、[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つのイベント スクリプトが設定されています。

イベント スクリプト コードを作成するには、[開始] ウィジェットに新しいイベント スクリプトを追加します。すると、以下に示すように、フローエディタにコードを直接入力できるようになります。
 
[エンゲージメントを承認済み] イベントと [処理を保存済み] イベントは、同様のコードを使用します。どちらも組み込みのHTTP関数を使用して発信HTTPS POSTリクエストを生成する、シンプルなJavaScriptコードブロックです。
 
[エンゲージメントを処理済み] イベントスクリプトコード
 
以下のコード例には、エンゲージメント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の送信、転送の開始、終了、ノートの追加、処理の追加などのイベントを含む)。エンゲージメントイベントを追跡することで、詳細なエンゲージメントレベルのデータに関するインサイトを得ることができます。
 
Contact Center API の詳細については、Zoom デベロッパー向けサイトをご覧ください。

まとめ

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