例示的な実施形態の幾つかを示す添付の図面を参照して、様々な例示的な実施形態をより十分に説明する。しかし、例示的な実施形態を開示された特定の形態に限定する意図はなく、むしろ、例示的な実施形態は、特許請求の範囲内における全ての変形、均等物、及び代替物を網羅することを意図していることを理解されたい。適切な場合には、図の説明全体において、同様の符号が同様の要素を指す。本明細書において、例えば第1、第2などの用語を使用して様々な要素を説明する場合があるが、このような要素はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、例示的な実施形態の範囲から逸脱することなく、第1の要素を第2の要素と称することができ、同様に、第2の要素を第1の要素と称することができる。本明細書において使用される場合、「及び(且つ)/又は」という用語は、関連する列挙された項目の一又は複数のうちの任意且つ全ての組み合わせを含む。
「コンタクトセンター」という用語は、本明細書に記載されクレームされる様々な実施形態の文脈で使用される場合、総称的且つ非限定的な方法で使用され、したがって、任意の形態の顧客サービスオペレーション(例えば、コンタクトセンター、コールセンター、テクニカルサポート、顧客エクスペリエンス、ホットライン、顧客ケアなど)を含むことを意図する。説明を容易にするために、全てのそのようなオペレーションは、以下、「コンタクトセンター」という用語を使用して言及される。さらに、「コンタクトセンターシステム」という用語は、本明細書に記載されクレームされる実施形態において、総称的且つ非限定的な方法で使用され、したがって、コンタクトセンター製品、サービス、オペレーション、機能などの任意の実装を含むことを意図する。例えば、コンタクトセンターシステムは、コンピュータシステム/デバイス、コンピュータ/ソフトウェアアプリケーション、コンピュータ/ソフトウェアプラットフォームなどの様々な組み合わせを含む実装を含み得る。説明を容易にするために、「アプリケーション」という用語は、コンピュータシステム/デバイス、コンピュータ/ソフトウェアアプリケーション、及び/又はコンピュータ/ソフトウェアプラットフォームの単一の使用又は組み合わせの使用を指す総称的な用語としても使用される。ここで、これらのいずれか又は全てが、コンタクトセンター内又はコンタクトセンターのためにタスクを実行する際にコンタクトセンターエージェントによって使用され得る。さらに、コンタクトセンター又はコンタクトセンターシステムの使用は、地理的又は場所ベースの文脈(状況)で制限されることを意図していない。例えば、コンタクトセンター及びコンタクトセンターシステムは、集中型又は分散型のアーキテクチャを備え、コンタクトセンターエージェントによる人員配置も様々な形態(ローカル、リモートなど)をとり得る。
本明細書に記載の様々な実施形態によれば、ロボティックプロセスオートメーション(RPA)は、コンタクトセンターオペレーションのためのワークフロー及びプロセスを自動化するために使用される。一般に、RPAは、ソフトウェアロボットを使用して反復的及び/又は労働集約的なタスクを自動化し、人間のオペレータの生産性を向上させるプロセス自動化の一形態である。RPA対応システムでは、一又は複数のアクティビティを含むワークフローが作成され、ロボットによって、アテンディッド(操作要)モード(例えば、プロセスの完了を支援するために人間のエージェントによってトリガされる)又はアンアテンディッド(操作不要)モード(例えば、バックエンドシステムタスクを使用するなどして、独立して作業するなど)で実行される。
[例示的なRPAシステムアーキテクチャ] 図2は、例示的な一実施形態によるRPAシステム200を示すアーキテクチャ図である。示されるように、RPAシステム200は、開発者がワークフローを使用して自動化プロセスを設計することを可能にするデザイナ210を含む。より詳細には、デザイナ210は、ワークフロー及びワークフローでアクティビティを実行するためのロボットの開発及びデプロイメントを容易にする。デザイナ210は、アプリケーション統合、並びにサードパーティアプリケーション、管理情報技術(IT)タスク、及びコンタクトセンターオペレーションのためのビジネスプロセスの自動化のためのソリューションを提供し得る。デザイナ210の実施形態の1つの商業的な例は、UiPath Studio(商標)である。
ルールベースのプロセスの自動化の設計において、開発者は、本明細書において「アクティビティ」として定義される、ワークフローで開発されたカスタムセットのステップ間の実行順序及び関係を制御する。各アクティビティには、例えばボタンのクリック、ファイルの読み込み、ログパネルへの書き込みなどのアクションが含まれていてもよい。幾つかの実施形態において、ワークフローがネストされ又は埋め込まれてもよい。
一部の種類のワークフローには、シーケンス、フローチャート、有限状態機械(FSM)、及び/又はグローバル例外ハンドラが含まれ得るが、これらに限定されない。シーケンスは、線形プロセスに特に適している可能性があり、ワークフローを混乱させることなく、あるアクティビティから別のアクティビティへのフローを可能にする。フローチャートは、より複雑なビジネスロジックに特に適している可能性があり、複数の分岐論理演算子によって、より多様な方法で決定の統合及びアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している可能性がある。FSMは、実行時に有限数の状態を使用してもよく、それらの状態は、条件(即ち、遷移)又はアクティビティによってトリガされる。グローバル例外ハンドラは、実行エラーが発生したときのワークフローの振る舞いを決定したり、プロセスをデバッグしたりするのに特に適している可能性がある。
ワークフローがデザイナ210で開発されると、ビジネスプロセスの実行は、デザイナ210で開発されたワークフローを実行する一又は複数のロボット260を調整するコンダクタ220によって調整される。コンダクタ220の実施形態の1つの商用的な例は、UiPath Orchestrator(商標)である。コンダクタ220は、RPA環境におけるリソースの作成、監視、及びデプロイメントの管理を容易にする。一例において、コンダクタ220はウェブアプリケーションである。コンダクタ220は、サードパーティのソリューション及びアプリケーションとの統合ポイントとしても機能してもよい。
コンダクタ220は、集中ポイントからロボット260を接続して実行することで、全てのロボット260を管理してもよい。コンダクタ220は、プロビジョニング、デプロイメント、コンフィギュレーション、キューイング、監視(モニタリング)、ロギング、及び/又は相互接続性の提供を含むがこれらに限定されない様々な機能を有してもよい。プロビジョニングには、ロボット260とコンダクタ220(例えば、ウェブアプリケーションなど)の間の接続の作成及び保守が含まれてもよい。デプロイメントには、実行のために割り当てられたロボット260へのパッケージバージョンの正しい配信を保証することが含まれてもよい。コンフィギュレーションには、ロボット環境及びプロセスコンフィギュレーションの保守及び配信が含まれてもよい。キューイングには、キュー及びキューアイテムの管理の提供が含まれてもよい。監視には、ロボット識別データの追跡及びユーザ権限の維持が含まれてもよい。ロギングには、データベース(例えば、SQLデータベースなど)及び/又は他のストレージメカニズム(例えば、ElasticSearch(登録商標)など。これは、大規模なデータセットを記憶してすばやくクエリを実行する機能を提供する)へのログの記憶及びインデックス付けが含まれてもよい。コンダクタ220は、サードパーティのソリューション及び/又はアプリケーションのための通信の集中ポイントとして機能することで、相互接続性を提供してもよい。
ロボット260は、デザイナ210に埋め込まれたワークフローを実行する実行エージェントである。ロボット260の幾つかの実施形態のうち1つの商用的な例は、UiPath Robots(商標)である。ロボット260の種類には、アテンディッドロボット261とアンアテンディッドロボット262が含まれてもよいが、これらに限定されない。アテンディッドロボット261は、ユーザ又はユーザイベントによってトリガされ、同じコンピューティングシステム上で人間のユーザ(例えば、コンタクトセンターエージェントなど)と一緒に動作する。アテンディッドロボット261は、人間のユーザが様々なタスクを達成するのを助け、人間のユーザ及び/又はユーザイベントによって直接トリガされてもよい。アテンディッドロボットの場合、コンダクタ220が、集中プロセス展開及びロギング媒体を提供してもよい。特定の実施形態において、アテンディッドロボット261は、ウェブアプリケーションで「ロボットトレイ」から又はコマンドプロンプトから開始できるのみである。アンアテンディッドロボット262は、仮想環境で操作不要で実行され、例えば大量のバックエンドプロセスのためなど、多くのプロセスを自動化するために使用できる。アンアテンディッドロボット262は、遠隔実行、監視、スケジューリング、及びワークキューのサポートの提供を担当してもよい。アテンディッドロボットとアンアテンディッドロボットの両方が、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、及びコンピューティングシステムアプリケーション(例えば、デスクトップ及びラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステム及びアプリケーションを自動化してもよい。
幾つかの実施形態において、ロボット260は、デフォルトで、Microsoft Windows(登録商標)サービスコントロールマネージャー(SCM)が管理するサービスをインストールする。その結果、そのようなロボット260が、ローカルシステムアカウントでインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権限を有してもよい。幾つかの実施形態において、ロボット260は、ユーザのもとでロボット260がインストールされて、そのユーザと同じ権利をロボット260が有するユーザモードでインストールされてもよい。
幾つかの実施形態におけるロボット260は、それぞれが特定のタスク専用である幾つかのコンポーネントに分割される。幾つかの実施形態におけるロボットコンポーネントには、SCM管理のロボットサービス、ユーザモードのロボットサービス、エグゼキュータ、エージェント、及びコマンドラインが含まれるが、これらに限定されない。SCM管理のロボットサービスは、Windows(登録商標)セッションを管理、監視してコンダクタ220と実行ホスト(即ち、ロボット260が実行されるコンピューティングシステム)との間のプロキシとして機能する。このようなサービスは、ロボット260の資格情報を託され、これを管理する。コンソールアプリケーションは、ローカルシステムのもとでSCMによって起動される。幾つかの実施形態におけるユーザモードロボットサービスは、Windows(登録商標)セッションを管理、監視し、コンダクタ220と実行ホストの間のプロキシとして機能する。ユーザモードロボットサービスは、ロボット260の資格情報を託され、これを管理してもよい。SCM管理のロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動されてもよい。エグゼキュータは、Windows(登録商標)セッションのもとで所定のジョブを実行してもよく(例えば、エグゼキュータはワークフローを実行してもよい)、エグゼキュータは、モニタ毎のドット/インチ(DPI)設定を認識していてもよい。エージェントは、システムトレイウィンドウで利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントはこのサービスのクライアントであってもよい。エージェントは、ジョブの開始又は停止を要求し、設定を変更してもよい。コマンドラインはそのサービスのクライアントである。コマンドラインは、ジョブの開始を要求可能なコンソールアプリケーションであり、その出力を待つ。ロボットコンポーネントを分割することにより、開発者、サポートユーザを支援することができ、コンピューティングシステムが、各ロボットコンポーネントの実行内容の実行、識別、及び追跡をより容易に行うことができる。例えば、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、ロボットコンポーネント毎に特別な振る舞いが構成されてもよい。さらなる例として、幾つかの実施形態において、エグゼキュータは、モニタ毎のDPI設定を認識していてもよい。その結果、ワークフローが作成されたコンピューティングシステムの構成に関わらず、ワークフローが任意のDPIで実行されてもよい。
図3は、例示的な一実施形態によるRPAシステム300を示す。RPAシステム300は、図2のRPAシステム200であってもよいし、その一部であってもよい。「クライアント側」、「サーバ側」、又はこれらの両方が、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含み得ることに留意されたい。
この実施形態においてクライアント側に示すように、コンピューティングシステム301は、一又は複数のエグゼキュータ312、エージェント314、及びデザイナ310を含む。別の実施形態において、デザイナ310は同じコンピューティングシステム310で実行されていなくてもよい。エグゼキュータ312は(上記のようなロボットコンポーネントであってもよく、)プロセスを実行し、幾つかの実施形態において、複数のビジネスプロセスが同時に実行されてもよい。このような例において、エージェント314(例えば、Windows(登録商標)サービスなど)は、エグゼキュータ312を管理するための単一の接続ポイントである。
幾つかの実施形態において、ロボットは、マシン名とユーザ名の間の関連付けを表す。ロボットは同時に複数のエグゼキュータを管理してもよい。同時に実行されている複数の対話型セッションをサポートするコンピューティングシステム(例えば、Windows(登録商標)Server 2012など)では、複数のロボットが同時に(例えば、高密度(HD)環境など)、それぞれ一意のユーザ名を使用する個別のWindows(登録商標)セッションで実行されてもよい。
エージェント314はまた、ロボットのステータスを送り(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送り)、実行されるパッケージの必要なバージョンをダウンロードすることも担当する。幾つかの実施形態において、エージェント314とコンダクタ320との間の通信は、エージェント314によって開始される。通知シナリオの例において、エージェント314は、コンダクタ320によって後で使用されるWebSocketチャネルを開き、ロボットにコマンド(例えば、開始、停止など)を送ってもよい。
この実施形態においてサーバ側に示すように、プレゼンテーション層は、ウェブアプリケーション332、Open Data Protocol(オープンデータプロトコル)(OData)Representative State Transfer(リプレゼンタティブステートトランスファー)(REST)Application Programming Interface(アプリケーションプログラミングインタフェース)(API)エンドポイント334、通知・監視API336を含む。サーバ側のサービス層は、API実装/ビジネスロジック338を含む。サーバ側の永続層は、データベースサーバ340及びインデクササーバ350を含む。コンダクタ320は、ウェブアプリケーション332、OData REST APIエンドポイント334、通知・監視API336、及びAPI実装/ビジネスロジック338を含む。
様々な実施形態において、コンダクタ320のインタフェースで(例えば、ブラウザ311を介して)ユーザが実行する殆どのアクションが、様々なAPIを呼び出すことで実行される。このようなアクションには、ロボットでのジョブの開始、キュー内のデータの追加/削除、操作不要で実行するジョブのスケジューリングなどが含まれてもよいが、これらに限定されない。ウェブアプリケーション332は、サーバプラットフォームのビジュアル層である。このような実施形態において、ウェブアプリケーション332は、ハイパーテキストマークアップ言語(HTML)及びJavaScript(JS)を使用する。しかし、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、又は任意の他のフォーマットが使用されてもよい。このような実施形態において、ユーザは、コンダクタ320を制御するための様々なアクションを実行するため、ブラウザ311を介してウェブアプリケーション332からウェブページと対話する。例えば、ユーザは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボット毎に且つ/又はプロセス毎にログを分析し、ロボットを起動、停止させるなどしてもよい。
ウェブアプリケーション332に加えて、コンダクタ320には、OData REST APIエンドポイント334を公開するサービス層も含まれる(或いは、本発明の範囲から逸脱することなく、他のエンドポイントが実装されてもよい)。REST APIは、ウェブアプリケーション332とエージェント314の両方によって使用される。この例示的な構成において、エージェント314は、クライアントコンピュータ上の一又は複数のロボットのスーパーバイザである。
このような実施形態におけるREST APIは、コンフィギュレーション、ロギング、監視、及びキューイングの機能をカバーする。幾つかの実施形態において、コンフィギュレーションRESTエンドポイントが使用されて、アプリケーションユーザ、権限、ロボット、アセット、リリース、及び環境を定義、構成してもよい。ロギングRESTエンドポイントが使用されて、例えばエラー、ロボットによって送られた明示的なメッセージ、その他の環境固有の情報など、様々な情報をログに記録するのに有用であり得る。デプロイメントRESTエンドポイントがロボットによって使用されて、コンダクタ320でジョブ開始コマンドが使用される場合に実行する必要があるパッケージバージョンをクエリしてもよい。キューイングRESTエンドポイントは、例えばキューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キュー及びキューアイテムの管理を担当してもよい。監視RESTエンドポイントは、ウェブアプリケーション332及びエージェント314を監視してもよい。通知・監視API336は、エージェント314の登録、エージェント314へのコンフィギュレーション設定の配信、並びにサーバ及びエージェント314からの通知の送受信に使用されるRESTエンドポイントであってもよい。幾つかの実施形態において、通知・監視API336はまた、WebSocket通信を使用してもよい。
サーバ側の永続層は、この例示的な実施形態では1対のサーバ、つまり、データベースサーバ340(例えば、SQLサーバなど)及びインデクササーバ350を含む。この実施形態のデータベースサーバ340は、ロボット、ロボットグループ、関連プロセス、ユーザ、ロール、スケジュールなどのコンフィギュレーションを記憶する。このような情報は、幾つかの実施形態において、ウェブアプリケーション332を介して管理される。データベースサーバ340は、キュー及びキューアイテムを管理してもよい。幾つかの実施形態において、データベースサーバ340は、(インデクササーバ350に加えて又はその代わりに)ロボットによってログに記録されたメッセージを記憶してもよい。幾つかの実施形態において任意であるインデクササーバ350は、ロボットによってログに記録された情報を記憶し、インデックスを付ける。特定の実施形態において、インデクササーバ350は、コンフィギュレーション設定を通じて無効にされてもよい。幾つかの実施形態において、インデクササーバ350は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって(例えば、ログメッセージ、行書き込みなどのアクティビティを使用して)ログに記録されたメッセージは、ロギングRESTエンドポイントを介してインデクササーバ350に送られてもよく、そこで将来の利用のためにインデックスが付けられてもよい。
図4は、本発明の一実施形態による、RPAシステム400の簡略化されたデプロイメント例を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム400は、図2、図3のRPAシステム200及び/又は300であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム401を含む。コンピューティングシステム401は、そこで実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信可能である。次に、コンダクタコンピューティングシステム420は、データベースサーバ440及び任意のインデクササーバ450と通信する。図3、図4に関して、これらの実施形態においてウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバソフトウェアが使用されてもよいことに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバ側アプリケーションを実行してもよい。
[RPA対応コンタクトセンターソリューション] 本明細書に開示される様々な実施形態によれば、統合されたRPAベースの自動化ソリューションは、顧客との通信セッション中に複数のアプリケーションの間を移動して見るためコンタクトセンター担当者(例えば、コンタクトセンターエージェントなど)にコンテキスト(状況に応じた)支援を提供する。ワークフローは、ロボットによって自動化、実行され、コンタクトセンターシステムの複数のアプリケーション(フロントエンド及び/又はバックエンドシステムを含む)から情報を取得し、コンタクトセンターセッション中のコールアウトアクティビティを介してコンテキストガイダンス(状況に応じた案内)を生成する。多くのコンタクトセンターオペレーションにおいて、フロントエンドシステムには通常、顧客関係管理(CRM)及び/又はコンタクトセンターエージェントによって呼び出し元の顧客に関する情報を照会するために使用されるエンタープライズリソースプランニング(ERP)アプリケーションが含まれる。さらに、フロントエンドには、着信コールを処理する対話型音声応答(IVR)システム、所与の問題のトラブルシューティング手順を検索、取得するためのナレッジベース、顧客の問題を追跡するためのチケット管理システムなどが含まれていてもよい。コンタクトセンターのバックエンドシステム及びアプリケーションには、顧客向け(例えば、モデムを構成するケーブル会社向けなど)に製品/サービスを出荷又は構成するためのプロビジョニングシステム、請求システム、クレジットカード処理・徴収システム、購入システム、注文追跡などが含まれてもよい。このようなシステム/アプリケーションの例には、SAP(登録商標)、Siebel(登録商標)、メインフレームシステム、Citrix(登録商標)仮想化レガシーシステム、Salesforce(登録商標)、Microsoft(登録商標)Excel、ServiceNow(登録商標)、Twilio(登録商標)、並びに様々な他のシステム及びアプリケーションが含まれるが、これらに限定されない。これらの例は、例示のみを目的としており、いかなる方法でも限定するものではない。
図5は、本発明の一実施形態によるプロセス500を示すフローチャートである。図3を参照すると、プロセス500は、RPAアーキテクチャにおいてクライアント側で(例えば、コンピューティングシステム301によって)実行され得る。詳細には、プロセス500は、コンタクトセンターシステムで通信セッションを管理するユーザに支援を提供するための方法である。一実施形態において、顧客のコール(又は幾つかの異なるチャネルを介した通信)を処理するためにコンタクトセンターエージェントによって使用されるコンタクトセンターシステムは、異なるプラットフォーム上にあり得る一又は複数のアプリケーション及びシステムを含む。多くのシナリオでは、コンタクトセンターエージェントは、これらの複数のシステム及びアプリケーションを切り替える必要があるだけでなく、システムの各々について実務レベルの習熟度及び専門知識を有する必要があるので、このようなアプリケーション及びシステムは異種で統合されておらず、移動に時間がかかる。コンタクトセンターエージェントがそのような熟練度を有している場合でも、複数のシステム間を移動して見るには時間がかかり(ドキュメントベースの「電子ヘルプ」を使用している場合でも)、通信セッションの進行中にコンタクトセンターエージェントと顧客との両方に混乱をもたらす。
図5に示すように、ステップ501で、コンタクトセンターエージェントは、顧客からの着信通信要求を受信する。図1を参照すると、そのような通信要求は、現在多くの顧客関係/コンタクトセンターシステムで普及している複数の異なる通信チャネル120を介して発生する可能性がある。例えば、通信チャネル120は、(例えば、対話型音声応答(IVR)システムから直接受信又はリダイレクトされる)音声通話、ライブチャット、ビデオセッション、電子メール、オンラインで開始される問い合わせ、ソーシャルメディアチャネルメッセージング、SMSメッセージングなどを含んでもよい。そのため、コンタクトセンターエージェントは、インバウンドの顧客との通信のためにサービスを提供する必要のある多様な通信チャネルによる課題を既に抱えている。
インバウンドの顧客コールを受信して受け入れると、コンタクトセンターエージェントと顧客との間で通信セッションが確立される。通常のシナリオでは、解決すべき問い合わせ又は問題の性質に応じて、コンタクトセンターエージェントは通常、上述の複数のシステム及びプラットフォームを切り替えて移動して見ることにより、顧客情報、アカウント情報、製品情報、顧客及び/又は製品履歴情報などを検索する必要がある。このプロセスは、顧客との通信セッションに携わっている間に全て行われる。さらに、一般的なシナリオのコンタクトセンターエージェントは、様々なシステムの使用方法及び更新時期などについて訓練を受ける必要がある。その結果、インバウンドの要求の複雑さに応じて、多くのコンタクトセンターセッションは、長い待機時間、通信セッションが繰り返し保留されるための頻繁な中断、並びにエージェントのスキルとエージェントがセッション中に見つけることができる情報の関連性及び有用性とに応じた問題の解決の散発的な成功によって特徴付けられる。本発明の一実施形態によれば、ステップ502に示すように、少なくとも1つのRPAワークフローが通信セッション中にトリガされて、コンタクトセンターシステムの複数のアプリケーション(フロントエンド及び/又はバックエンド)の間を移動して見る。
様々な実施形態によれば、RPAワークフローは、ロボットを起動してコンタクトセンターエージェントが複雑なマルチアプリケーション、マルチプラットフォームのコンタクトセンターシステムを移動して見るのを支援するために、様々な方法でトリガされ得る。一例において、コンタクトセンターエージェントは、アテンディッドロボットをトリガするために、自動化の選択肢を選択できる。例えば、コンタクトセンターエージェントに提供された一又は複数の候補自動化ワークフローの中から選択できる。例えば、あるシナリオは、自動化された「アドレス更新」RPAプロセスをコンタクトセンターエージェントがトリガすることに関し得る。様々な実施形態によれば、コンタクトセンターエージェントは、複数のアプリケーションを切り替える必要を回避することができ、代わりに、顧客と「通話中」の間、コンタクトセンターエージェントの「ホーム」アプリケーションに留まることができる。この自動化機能は、コンタクトセンターエージェントによって使用されているコンタクトセンターアプリケーション(又は複数のアプリケーション、画面、制御(コントロール)など)に埋め込まれるか、又は、その上に「フロート」させることができる。一例において、フローティングガイドがワークフロー内で状況(コンテキスト)に応じてコンタクトセンターエージェントに提示されて、実行される必要のある主要なタスクにフォーカスを合わせて注意を引くことを支援できる。
RPAシステムによって提供される自動化を別のアプリケーション(例えば、コンタクトセンターアプリケーションなど)に統合することは、様々な方法で実現できる。一実施形態において、RPAシステムは、開発者がRPAシステムの自動化技術を他のアプリケーション内に統合できるように、JavaScriptソフトウェア開発キット(SDK)及び.NETベースのApplication Programming Interface(アプリケーションプログラミングインタフェース)(API)を提供し得る。例えば、Microsoft(登録商標)Outlookの作業ウィンドウにRPAシステムを埋め込んで、例えばRPA対応ワークフローなどの自動化による処理のために電子メールから詳細を抽出ししてもよい。別の例において、RPA対応ワークフローをIVRシステム/アプリケーションに直接統合して、コンタクトセンターエージェントがボタンをクリックして状況に応じて自動化を実行できるようにするか、或いは、プロセスを開始して、別のアプリケーションを開くのではなく状況に応じてデータ表示できるようにしてもよい。本明細書に記載の実施形態と併せて使用するために、多くの他の例が検討される。
幾つかの実施形態において、例えばコンテキストトリガなどの他のアクションもロボットの起動に使用できる。例えば、イベント駆動型トリガを使用すると、例えば「ボタンクリック」などのユーザアクション、キーボードアクション(例えば、ショートカットキーに基づくトリガを含む)などに基づいて、コンピューティングシステムによって自動化されたRPAプロセスが自動的に起動され得る。別の例において、テキストベースのトリガが実装され得る。例えば、チャットボットの会話を監視しキーワードを使用して自動化されたプロセスをトリガする。図6は、チャットボットの会話に基づいてRPA対応トリガ602が実装され得る方法の1つの例示的な例を示す。この例では、トリガの結果は、コンタクトセンターエージェントがタスクを完了するために従うことができるコールアウトベースの自動化されたワークフローである。他の実施形態において、音声ベースのトリガが、通信セッション中に検出されたキーワードに基づいて自動プロセスを起動することを含み得る。
説明したように、プロセスを起動するために使用されるトリガは、手動又は自動で、様々な方法で実装できる。自動化されるプロセスを作成する開発者は、通常、発生するシナリオ(トリガ)を探し、トリガに対応するアクション又は一連の反応を設計する。手動のトリガは、上述のように、マウスでのボタンクリック、キーボードストローク又はシーケンス(例えば、CTRL+F2)などを含み得る。一方、自動のトリガは、アプリケーションの開放、着信コールの受信などを含み得る。トリガは、例えば10秒ごとに受信トレイで新着メールをチェックするなどの、イベント又はアクティビティを監視するポーリング操作で実装されてもよい。上記の例によって示されるように、ユーザ(例えば、コンタクトセンターエージェント)によって又は他のメカニズムなどから、例えばアテンディッド(操作要)又はアンアテンディッド(操作不要)の、自動化されたプロセスをトリガするための様々な方法が、本明細書における教示によって検討される。したがって、上記の例は単なる例示であり、いかなる方法においても限定されることを意図しない。
図5に戻ると、ステップ503で、一又は複数のRPAワークフローが実行されて、通信セッションに関連する情報を検索する。例えば、アテンディッドロボットが使用されて、様々なアプリケーション及びやシステム(例えば、フロントエンド及び/又はバックエンドシステム)を移動して見て、顧客の要求に対するサービスの提供においてコンタクトセンターエージェントをリアルタイムで支援する関連情報を特定し得る。
図2~図4に示すシステム及びアーキテクチャを参照すると、ロボットは通常、システムの起動時に初期化される(例えば、ロボット260はWindows(登録商標)で実行されるサービスであるなど)。アテンディッドロボットを利用するプロセス(例えば、RPA対応ワークフローなど)は、様々な方法で起動できる。例えば、次の方法を含む。(i)手動で、ロボットトレイから[start(開始)]をクリックすることによって。(ii)SDK/埋め込みを介して手動で、プロセスを実行するためにコマンドをロボットトレイに送信する、別のアプリケーションのボタンをクリックすることによって。(iii)ロボットトレイを介して自動的に(例えば、プロセスは、ロボットトレイが開くたびに開始するように、自動開始としてマークすることができる)。(iv)SDK/埋め込みを介して自動的に(例えば、情報を取得するプロセスを開始するようにコード化されたウェブページを介して)。比較のため、アンアテンディッド自動化は、様々な方法で起動できる。例えば、次のとおりである。(i)コンダクタ(例えば、図2~4の各々のコンダクタ220、320、420など)を介して手動でジョブを開始する。(ii)APIを呼び出してジョブを開始することにより手動で。(iii)キューを介して自動的に(例えば、ジョブがキューに追加され、ロボットがジョブの実行するためのキューを監視する)。(iv)APIを介して自動的に(例えば、ウェブページは、情報を取得するプロセスを開始するようにコード化されることができる)。(v)スケジュールに従って自動的に。プロセス(例えば、RPA対応ワークフローなど)を起動するための上記の例は、説明を目的としたものであり、いかなる方法でも限定するものではない。
ステップ504で、取得された関連情報に基づいて、実行されたRPAワークフローは、一又は複数のコールアウトアクティビティを生成して、コンタクトセンターエージェントにコンテキスト情報(状況に関する情報)を提供する。ステップ505で、コールアウトアクティビティは、コンタクトセンターエージェントに提示されて、アクティブな通信セッションにおける問題、要求などへの対処に関連するタスクを実行する際にコンタクトセンターエージェントをさらにガイドする。このようにして、コールアウトは「インライン」で提示され、例えば、通信セッション中に略リアルタイムに生成、提示され、これにより、従来の技術に関連する移動(ナビゲーション)及び検索の時間が大幅に短縮される。
幾つかの実施形態において、コールアウトは、通信セッションの進行中のアクティビティの監視及び分析に基づいて、コンテキスト情報(例えば、指示、推奨(リコメンデーション)、メッセージなど)をコンタクトセンターエージェントに提供するために生成される。他の実施形態では、コールアウトは、コンタクトセンターシステムにおける複数のアプリケーション(例えば、フロントエンド及び/又はバックエンドのアプリケーション及びシステム)にわたるRPA対応検索によって識別される、基となるデータに基づいて、生成される。他の実施形態では、上記のアプローチのうちの任意の組み合わせを、コンタクトセンターエージェントのコールアウトアクティビティを生成するための基礎として利用することができる。
幾つかの例において、コンテキスト情報は、コンテキスト推奨、コンテキスト(状況に応じた)指示、コンテキストアクションメッセージ、又はこれらのうちの任意の組み合わせを含み得る。例えば、コールアウトアクティビティが生成され、コンタクトセンターエージェントに(例えば、顧客の住所を確認するための)一又は複数の機能を実行するように促すコンテキスト指示を含む形式で提示され得る。コールアウトアクティビティはまた、コンタクトセンターエージェントによって選択可能な次のアクションのコンテキスト推奨又は提案を含む形式で生成、提示され得る。このアクションは、その後、ユーザの応答に基づいて実行される(例えば、コンタクトセンターエージェントに他のシステム間で顧客の住所を更新したいか否かについて促す)。さらに別の例では、コールアウトアクティビティは、一又は複数のアクションの完了(例えば、顧客の住所が変更されたこと)をコンタクトセンターエージェントに通知するメッセージを含む形式で提示され得る。これらの例は全て、説明を目的としたものであり、いかなる方法でも限定するものではない。
他の実施形態によれば、複数のコールアウトアクティビティは、実行されたRPAワークフローによって検索された関連情報に基づいて、RPA対応ワークフローによって(例えば、順次に)生成され得る。複数のコールアウトアクティビティは、プロセスに関連する一連の関連アクション(例えば、更新、検証、確認など、複数のシステム及びアプリケーションにわたる全てのデータベースにおける顧客の住所の変更に関連する全てのステップ及びアクションなど)を実行するように構成されてもよい。このようにして、一連のコールアウトが設計されて、エンドツーエンドのコンテキストRPA対応ソリューションを形成できる。さらに、コンテキストRPA対応ソリューションは、プロセス中にコンタクトセンターエージェントを(オンザジョブで)効果的に訓練でき、これにより、複数のシステム及びアプリケーションの使用におけるコンタクトセンターエージェントの訓練に関する上述の問題に対処できる。
本明細書に記載の実施形態によれば、コールアウトアクティビティは、異なるアプリケーション(例えば、ウェブアプリケーション、デスクトップアプリケーション、API利用可能性の有無に関わらずアプリケーション/システムなど)にわたって相互運用するように構成され得る。例えば、コールアウトは必ずしも任意の単一のアプリケーションに関連付けられているとは限らないので、複数のアプリケーションにまたがって表示される可能性がある。顧客ソリューションを通じてコンタクトセンターエージェントをガイドする例では、単一のプロセスが使用されて複数のアプリケーションにわたってコールアウトを開始して、コンタクトセンターエージェントが、CRMシステムで顧客情報を検索し、ERPアプリケーションで顧客の請求書をチェックし、プロビジョニングシステムでシリアル番号を確認するなどできる。
したがって、本明細書に記載の実施形態は、自動化をガイダンスと組み合わせて散在させる、独特で効果的なソリューションを提供することができる。説明したように、コールアウトはタスクに注意を引き、ユーザがそのタスクを実行すると、(例えば、自動化を使用して)別のアプリケーションが開き、その後、その第2のアプリケーションでの別のコールアウトが続いたりする。
図7は、コンタクトセンターエージェントのためのメッセージ及びコンテキスト推奨/提案として設計され得るRPA対応コールアウト機能の簡略化された例を示し、これらはその後、ユーザ応答に基づいてさらに実行され得る。詳細には、コールアウト710は、RPA対応ワークフローによって生成された単純化されたコールアウト提案であり、コンタクトセンターエージェントに、全てのシステムにわたるアドレスの更新について促す。フォーム要素720及びコールアウト「バブル」テンプレート要素730は、RPA対応ワークフローにおいてロボットによる実行されるように命令、推奨などをどのように設計することができるかを示す例である。当業者によって理解されるように、アクティビティは、人間の入力/出力のためのカスタムフォームを作成するため、及び/又は、コンタクトセンターシステムの複数の異種のアプリケーションの検索からロボットから収集された情報を取得、提示するために、設計され得る。
一実施形態において、プロセスにコールアウトアクティビティを追加することは、コールアウトアクティビティが出現すべき要素(又はステップ、決定ポイントなど)を選択することを含み得る。また、フォームが設計されて、コールアウトアクティビティと関連付けられ得る(例えば、コールアウトアクティビティの基本的なテンプレートフォーム、カスタマイズ可能なフォームなど)。様々な実施形態によれば、コールアウトアクティビティに関連付けられるフォームは、RPAワークフロー/プロセスの設計中にカスタマイズ可能な様々な要素を含み得る。このような要素は、例えば、次のものを含む。(i)ラベルと値の対(ペア)における、例えば文字列、整数などの単純なデータ型、(ii)ユーザがコールアウトを閉じるための「閉じる」ボタン、及び/又は(iii)所望のアクションを実行するための一又は複数のボタン(例えば、別のコールアウトアクティビティのトリガ、ポップアップを開くこと、HTMLフォームの呼び出し、他のプロセスのトリガ、キューへのアクションの追加など)。説明したように、コールアウトアクティビティを含むRPAワークフローの開発/設計中に、設計者はコールアウトが出現すべき要素を選択し、フォームをコールアウトに関連付けることができる。幾つかの実施形態において、「ウィザードタイプ」の機能を使用して、フォームのための要素の選択及び順序付けを容易にすることができる。
図8A、図8B、図8Cは、例示的な一実施形態による、RPA対応ワークフローにおけるコールアウトアクティビティの設計及び使用についての例示的なシナリオを示す。上記のように、そのようなワークフローは、例えば、この場合はコンタクトセンターシステムのための、図2、図3のデザイナ210(310)を使用して、ユーザ/開発者によって作成される。自動化されたプロセスは、設計されると、図2~図4に示すRPAアーキテクチャについて説明された実施形態に従って、コンタクトセンターシステムにデプロイされ実装され得る。例えば、RPA対応ワークフローは、コンタクトセンターシステムのメイン(例えば、「ホーム」)アプリケーションからコンタクトセンターエージェントによって選択可能な自動化プロセスとして設計されデプロイされ得る。
図8A~図8Cに示す例は、顧客が銀行のコンタクトセンターとの通信を開始して住所変更を要求するシナリオをカバーしている。一般的な住所変更プロセスは、例えば、次のものを含む。顧客情報の確認、KYC(「顧客確認」)チェックのトリガ、銀行口座、クレジットカード口座、及び/又は顧客関係管理(CRM)システムにおいて新しい住所への更新、顧客への新しい小切手帳の発行。従来の仕組みでは、コンタクトセンターシステムは、コンタクトセンターエージェントに、まず顧客からの情報を求めて一又は複数のデータベースファイルから顧客レコードを検索し、次に顧客を確認することを、要求する。新しい住所に更新するさらなるステップでは、通常、コンタクトセンターエージェントに、更新を実施するために異なるアプリケーションに個別に移動して見る、例えば、複数のインタフェースを移動して見る必要がある。全てのこれらのステップには時間がかかり、コンタクトセンターエージェントが移動して見て検索して更新タスクを実行するときに、顧客が保留になることが多くある。
本明細書に記載の実施形態によれば、そのようなプロセスは、RPA対応自動化を使用して関連情報を取得し、コールアウトアクティビティを生成して、複数のインタフェース及びアプリケーションの移動を通じてコンタクトセンターエージェントをガイドすることによって単純化され得る。図8A~図8Cは、例示的な一実施形態による、「住所更新」シナリオを管理する際にコンタクトセンターエージェントに略リアルタイムで自動的に促すためのコールアウト及び関連するフォームの例示的なスクリーンショット801~805を示す。
例えば、顧客との通信セッションが確立された後、コンタクトセンターエージェントが、コンタクトセンターシステムのメイン(「ホーム」)アプリケーションにおいて、例えば「アクティビティツールバー」で、「アドレス更新」自動化タスクをクリックして、ポップアップウィンドウに入力フォームが表示され、基本的な顧客情報を入力し得る(例えば、スクリーンショット801など)。或いは、そのような情報は、顧客によるセッションの開始にリンクされたプロセスを介して(例えば、着信通信の管理に関連するアプリケーションから)自動的に取得/入力され得る。次に、アテンディッドロボットがトリガされて一又は複数のRPAワークフローが実行される。例えば、アテンディッドロボットは、顧客に関連する情報を検索し、(例えば、スクリーンショット801に示すフォームに追加のフィールドを入力することによって)追加の顧客の詳細をコンタクトセンターエージェントに提示して、コンタクトセンターエージェントが顧客の身元を確認できるようにし、エージェントにフォーム(例えば、スクリーンショット802など)を提示して、エージェントに顧客から新しいアドレスを取得するように促す。コンタクトセンターエージェントが新しい住所情報を提供すると(例えば、スクリーンショット803)、ロボットがトリガされて、(例えば、アメリカ合衆国郵便公社のウェブサイトを通じて)新しい住所を確認するアクティビティを実行する。これにより、コールアウトと関連するフォームとが生成されて、確認結果と顧客に新しい住所を確認するようコンタクトセンターエージェントに促す指示(プロンプト)と共にコンタクトセンターエージェントに提示される(スクリーンショット804)。エラーがない場合、ロボットは新しい住所をフロントエンドシステム(例えば、メインのコンタクトセンターアプリケーションなど)に保存し、全ての他のアプリケーション(例えば、コンタクトセンターシステムのバックエンドシステムなど)を介して住所の更新を更新/同期し、更新が完了したことを示すメッセージを伴う別のコールアウト及び関連するフォームを介して、コンタクトセンターエージェントに通知する(スクリーンショット805)。エラーが発生した場合、ロボットは別のコールアウト及びフォーム(図示せず)を生成し、コンタクトセンターエージェントが選択するための他の住所の推奨と共に提示してもよい。
図9は、本発明の一実施形態による、図5を参照して説明された方法を実行するように構成されたコンピューティングシステム900を示すブロック図である。幾つかの実施形態において、コンピューティングシステム900は、本出願において図示及び/又は説明される一又は複数のコンピューティングシステムであり得る。コンピューティングシステム900は、情報を通信するためのバス905又は他の通信メカニズムと、情報を処理するためにバス902に接続されたプロセッサ910とを含む。プロセッサ910は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数の例、及び/又はそれらのうちの任意の組み合わせを含む、任意の種類の汎用又は特定用途のプロセッサであり得る。プロセッサ910はまた、複数の処理コアを有してもよく、コアの少なくとも一部が、特定の機能を実行するように構成されてもよい。幾つかの実施形態において、複数並列処理が使用されてもよい。
コンピューティングシステム900は、プロセッサ910によって実行される情報及び命令を記憶するためのメモリ915をさらに含む。メモリ915は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、キャッシュ、例えば磁気若しくは光ディスクなどの静的記憶装置、又は任意の他の種類の非一時的なコンピュータ読み取り可能な媒体、又はこれらのうちの組み合わせのうちの任意の組み合わせから構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ910によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、又はその両方を含み得る。媒体は、取り外し可能、取り外し不可能、又はその両方であり得る。
さらに、コンピューティングシステム900は、任意の現在存在する又は将来実施される通信規格及び/又はプロトコルに従って無線及び/又は有線接続を介して通信ネットワークへのアクセスを提供するために、例えばトランシーバなどの通信デバイス920を含む。
プロセッサ910は、バス905を介して、ユーザに情報を表示するのに適切なディスプレイ925にさらに接続される。また、ディスプレイ925は、タッチディスプレイ及び/又は任意の適切な触覚I/Oデバイスとして構成されてもよい。
キーボード930と、例えばコンピュータマウス、タッチパッドなどのカーソル制御デバイス935とが、さらにバス905に接続されて、ユーザがコンピューティングシステムとインタフェースをとることを可能にする。しかし、特定の実施形態において、物理的なキーボード及びマウスが存在しなくてもよく、ユーザは、ディスプレイ925及び/又はタッチパッド(図示せず)を介してのみデバイスと対話してもよい。入力デバイスの任意の種類及び組み合わせが、設計上の選択事項として使用されてもよい。特定の実施形態において、物理的な入力デバイス及び/又はディスプレイが存在しない。例えば、ユーザは、コンピューティングシステム900と通信する別のコンピューティングシステムを介してリモートでコンピューティングシステム900と対話してもよく、或いは、コンピューティングシステム900は自律的に動作してもよい。
メモリ915は、プロセッサ910によって実行されると機能を提供するソフトウェアモジュールを記憶する。該モジュールは、コンピューティングシステム900用のオペレーティングシステム940を含み、本明細書に記載されているプロセス又はその派生のプロセスの全て又は一部を実行するように構成される一又は複数の追加の機能モジュール950を含む。
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、任意の他の適切なコンピューティングデバイス、又はデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして示すことは、決して本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を示すことを意図する。実際、本明細書において開示される方法、システム、及び装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合するローカライズされ分散された形式で実装されてもよい。
本明細書に記載されているシステム機能の一部は、実装の独立性をより強調するため、モジュールとして示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイを含むハードウェア回路、ロジックチップ、トランジスタ、又は他のディスクリートコンポーネントなどの既製の半導体として実装されてもよい。モジュールは、例えばフィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。モジュールは、様々な種類のプロセッサによる実行のため、ソフトウェアで少なくとも部分的に実装されてもよい。例えば、実行可能コードの識別されたユニットは、例えばオブジェクト、手順、又は機能として構成され得るコンピュータ命令の一又は複数の物理ブロック又は論理ブロックを含んでもよい。これにも関わらず、識別されたモジュールの実行可能ファイルは物理的に一緒に配置される必要はないが、論理的に結合されるとモジュールを含んでモジュールの上記目的を達成するような様々な場所に記憶された異種の命令を含んでもよい。さらに、モジュールは、本発明の範囲から逸脱することなく、コンピュータ読み取り可能な媒体に記憶されてもよく、コンピュータ読み取り可能な媒体は、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような非一時的なコンピュータ読み取り可能な媒体であってもよい。実際、実行可能コードのモジュールは、単一の命令であっても多数の命令であってもよく、異なるプログラム間で複数の異なるコードセグメントにわたり、複数のメモリデバイスにわたって分散されてもよい。同様に、動作データが、識別されて、本明細書においてモジュール内に示されてもよく、任意の適切な形式で具体化され、任意の適切な種類のデータ構造内で構成されてもよい。動作データは、単一のデータセットとしてまとめられてもよく、或いは、異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、単にシステム又はネットワーク上の電子信号として存在してもよい。
上記は本開示の原理を単に例示する。したがって、当業者は、本明細書で明示的に説明又は示されていないが、本開示の原理を具現化してその主旨及び範囲内に含まれる様々な構成を考案できるであろうことを理解するであろう。さらに、本明細書に記載されている全ての例及び条件付き文言は、主に、本開示の原理と本技術を発展させるため発明者によって提供された概念とを読み手が理解するのを助けるための教育目的のみを意図しており、そのような具体的に記載された例及び条件に限定しないものとして解釈されるべきである。さらに、本開示の原理、態様、及び実施形態、並びにこれらの具体的な例を記載する本明細書における全ての記述は、その構造的均等物及び機能的均等物の両方を包含することが意図される。さらに、そのような均等物には、現在知られている均等物と将来開発される均等物の両方が含まれることが意図される。