[0001]本願は、2019年6月12日に出願された「Systems and Methods for External System Integration」と題する米国仮特許出願第62/860,518号の利益を主張し、これは、その全体が参照により本明細書に組み込まれている。
[0019]添付の図面では、同様のコンポーネントおよび/または特徴は、同じ参照ラベルを有し得る。さらに、同じタイプの様々なコンポーネントは、参照ラベルの後に、ダッシュと、同様のコンポーネント同士を区別する第2のラベルとを続けることによって区別され得る。本明細書において第1の参照ラベルのみが使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様のコンポーネントのうちの任意の1つに適用可能である。
[0020]次に続く説明は、(1つまたは複数の)実施形態の好ましい例のみを提供し、本開示の範囲、適用性、または構成を限定するようには意図されない。むしろ、(1つまたは複数の)実施形態の好ましい例の次に続く説明は、実施形態の好ましい例を実施することを可能にする説明を当業者に提供する。様々な変更が、添付の特許請求の範囲に記載されるような趣旨および範囲から逸脱することなく、要素の配置および機能において行われ得ることが理解される。
[0021]図1は、本明細書で説明されるある特定の実施形態および機能を実装およびサポートする、ネットワークインタラクションシステム100の一実施形態のブロック図を示す。ある特定の実施形態は、ネットワークデバイス105(これは、ユーザ110によって操作され得る)と、端末デバイス115(これは、エージェント120によって操作され得る)との間の接続チャネルを確立することに関する。ある特定の実施形態では、ネットワークインタラクションシステム100は、クライアント125に関連付けられたクライアントデバイス130を含み得る。
[0022]ある特定の実施形態では、ユーザ110は、ウェブサイトを閲覧している個人、またはリモートサーバ140によって提供されるオンラインサービスにアクセスしている個人であり得る。クライアント125は、ウェブサイトまたはオンラインサービスを提供、運用(operates)、または運営する(runs)エンティティであり得るか、あるいは本明細書で説明されるように、クライアント125に利用可能なタスクを実行するために、そのようなエンティティによって雇用またはアサインされた個人であり得る。エージェント120は、ウェブサイトまたはオンラインサービスに関するサポートまたは情報をユーザ110に提供することをタスクとして課されたサポートエージェント等の個人であり得る。多数のエージェントのうち、エージェントのサブセットが、特定のクライアント125に対してサポートまたは情報を提供するのに適切であり得る。エージェント120は、クライアント125と提携していても、提携していなくてもよい。各エージェントは、1つまたは複数のクライアント125に関連付けられ得る。いくつかの非限定的な例では、ユーザ110は、パーソナルコンピューティングデバイスからオンラインストアでショッピングする個人であり得、クライアント125は、製品をオンラインで販売する企業であり得、エージェント120は、この企業によって雇用された担当者であり得る。様々な実施形態では、ユーザ110、クライアント125、およびエージェント120は、他の個人またはエンティティであり得る。
[0023]図1が単一のネットワークデバイス105、端末デバイス115、およびクライアントデバイス130のみを示している一方で、インタラクションシステム100は、複数または多数(例えば、数十、数百、または数千)もの、これらのタイプのデバイスのうちの1つまたは複数の各々を含み得る。同様に、図1が単一のユーザ110、エージェント120およびクライアント125のみを示している一方で、インタラクションシステム100は、複数または多数もの、このようなエンティティのうちの1つまたは複数の各々を含み得る。したがって、所与のネットワークデバイスと通信するためにどの端末デバイスが選択されるべきかを決定する必要があり得る。さらに複雑な問題として、リモートサーバ140もまた、選択ネットワークデバイス通信(select network-device communications)を受信しおよびそれに応答するように構成され得る。
[0024]接続管理システム150は、通信の戦略的ルーティングを容易にし得る。通信は、(例えば、タイプ入力または音声入力等の、エンティティからの入力に基づいて定義された)コンテンツを有するメッセージを含み得る。通信はまた、送信デバイスに関するデータ(例えば、IPアドレス、アカウント識別子、デバイスタイプ、および/またはオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページまたはウェブページ要素(例えば、通信が生成されたときに訪問されているか、または別の方法で通信に関連付けられているウェブページまたはウェブページ要素)の識別子またはオンライン履歴データ、時間(例えば、時刻および/または日付)、および/または宛先アドレス等の、追加のデータを含み得る。他の情報も通信に含められ得る。いくつかの事例では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの事例では、接続管理システム150は、通信を修正(modifies)するか、または(例えば、当初の通信に基づいて)新しい通信を生成する。新しいまたは修正された通信は、メッセージ(またはその処理されたバージョン)、(例えば、送信デバイス、ウェブページまたはオンライン履歴、および/または時間に関する)追加のデータのうちの少なくともいくつか(または全て)、および/または接続管理システム150によって識別された他のデータ(例えば、特定のアカウント識別子またはデバイスに関連付けられたアカウントデータ)を含み得る。新しいまたは修正された通信は、他の情報も含み得る。
[0025]戦略的ルーティングを容易にすることの一部は、ネットワークデバイス105と1つまたは複数の端末デバイス115との間の1つまたは複数の接続チャネルを確立、更新、および使用することを含み得る。例えば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、まず(もしあれば)どのクライアントに通信が対応するかを推定し得る。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のためにクライアントに関連付けられた端末デバイス115を識別し得る。いくつかの事例では、識別は、複数のエージェント(または、エキスパートもしくは代行者(delegates))の各々のプロファイルを評価することを含み得、複数のエージェントにおける各エージェント(例えば、エージェント120)は、端末デバイス(例えば、端末デバイス115)に関連付けられている。評価は、ネットワークデバイスのメッセージにおけるコンテンツに関連し得る。端末デバイス115の識別は、例えば、2010年3月17日に出願された米国特許出願第12/725,799号に記載された技法を含み得、これは、あらゆる目的のために、その全体が参照により本明細書に組み込まれている。
[0026]いくつかの事例では、接続管理システム150は、ネットワークデバイス105と、クライアント(またはリモートサーバ140)に関連付けられた端末デバイスとの間に何らかの接続チャネルが確立されているかどうか、および確立されている場合には、その通信を含む一連の通信を交換するために、そのようなチャネルが使用されるべきかどうかを決定し得る。
[0027]ネットワークデバイス105と通信するための端末デバイス115を選択すると、接続管理システム150は、ネットワークデバイス105と端末デバイス115との間の接続チャネルを確立し得る。いくつかの事例では、接続管理システム150は、選択された端末デバイス115にメッセージを送信し得る。メッセージは、ネットワークデバイス105と通信するための提案された割当ての受諾を要求し得るか、またはそのような割当てが生成されたことを識別し得る。メッセージは、ネットワークデバイス105に関する情報(例えば、IPアドレス、デバイスタイプ、および/またはオペレーティングシステム)、関連付けられたユーザ110に関する情報(例えば、使用言語(language spoken)、クライアントとインタラクトした持続時間、スキルレベル、センチメント、および/またはトピック選好)、受信された通信、ネットワークデバイス105への通信を生成および送信するためのコード(例えば、クリック可能なハイパーリンク)、および/またはネットワークデバイス105への通信を生成および送信するための命令を含み得る。
[0028]一事例では、ネットワークデバイス105と端末デバイス115との間の通信は、接続管理システム150を通じてルーティングされ得る。このような構成は、接続管理システム150が、通信交換を監視することと、いずれかのデバイスの非応答性または延長されたレイテンシ等の(例えば、規則に基づいて定義されるような)問題を検出することと、を可能にし得る。さらに、このような構成は、通信の選択的または完全な記憶を容易にし得、これは、後に、例えば、通信交換の品質を評価するために、および/または、特定の通信後ターゲット(post-communication targets)を促進するようにルーティング規則を更新または生成するための学習をサポートするために使用され得る。
[0029]いくつかの実施形態では、接続管理システム150は、リアルタイムで通信交換を監視し、ライブ通信に基づいて、自動化されたアクション(例えば、規則ベースのアクション)を実行し得る。例えば、接続管理システム150が、通信が特定のアイテム(例えば、製品)に関連すると決定すると、接続管理システム150は、アイテムに関する追加の情報(例えば、入手可能なアイテムの数量、アイテムに関連するサポート書類(support documents)へのリンク、またはアイテムもしくは類似のアイテムに関する他の情報)を含む追加のメッセージを端末デバイス115に自動的に送信し得る。
[0030]一事例では、指定された端末デバイス115は、接続管理システム150を通じて通信を中継することなく、ネットワークデバイス105と通信し得る。デバイス105、115の一方または両方が、通信の監視および/またはデータ記憶を容易にするために、特定の通信メトリックまたはコンテンツを接続管理システム150に報告してもよい(または報告しなくてもよい)。
[0031]上述されたように、接続管理システム150は、選択通信をリモートサーバ140にルーティングし得る。リモートサーバ140は、所定の方法で情報を提供するように構成され得る。例えば、リモートサーバ140は、通信に応答して送信するために、定義された1つまたは複数のテキストパッセージ、音声記録(voice recording)、および/またはファイルにアクセスし得る。リモートサーバ140は、例えば、受信された通信の解析(例えば、意味解析またはマッピング解析)に基づいて、特定のテキストパッセージ、記録、またはファイルを選択し得る。
[0032]接続管理システム150において実行されるルーティングおよび/または他の決定または処理は、1つまたは複数のクライアントデバイス130によって少なくとも部分的に定義されるかまたは提供されるデータおよび/または規則に基づいて実行され得る。例えば、クライアントデバイス130は、エージェントの優先順位付け、端末デバイスのタイプ、および/または、トピック/スキルマッチングを識別する通信を送信し得る。別の例として、クライアントデバイス130は、ルーティング決定に潜在的に影響を及ぼす様々な変数(例えば、言語互換性、予測応答時間、デバイスタイプおよび能力、ならびに/または端末デバイスの負荷均衡化)に適用するための1つまたは複数の重みを識別し得る。どの端末デバイスおよび/またはエージェントがクライアントに関連付けられるべきかは、動的であり得ることが理解されよう。クライアントデバイス130および/または端末デバイス115からの通信は、所与の端末デバイスおよび/またはエージェントがクライアントに関連付けられたものとして追加または削除されるべきであることを示す情報を提供し得る。例えば、クライアントデバイス130は、IPアドレスと、そのアドレスを有する端末デバイスが、クライアント関連の端末デバイスを識別するリストに追加されるべきか、またはリストから削除されるべきかに関するインジケーションと、を有する通信を送信し得る。
[0033]各通信(例えば、デバイス間、デバイスと接続管理システム150との間、リモートサーバ140と接続管理システム150との間、またはリモートサーバ140とデバイスとの間)は、1つまたは複数のネットワーク170上で行われ得る。オープンまたはクローズドネットワークの任意の組合せが、1つまたは複数のネットワーク170に含まれ得る。好適なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも同様に好適であり得る。1つまたは複数のネットワーク170は、イントラネット、エクストラネット、またはこれらの組合せ内に完全に組み込まれ得るか、またはそれらを含み得る。いくつかの事例では、1つまたは複数のネットワーク170におけるネットワークは、Bluetooth(登録商標)またはBluetooth Low Energyチャネル等の、短距離通信チャネルを含む。一実施形態では、2つ以上のシステムおよび/またはデバイス間の通信は、セキュアソケットレイヤ(SSL)またはトランスポートレイヤセキュリティ(TLS)等の、セキュア通信プロトコルによって達成され得る。加えて、データおよび/またはトランザクションの詳細は、限定はしないが、データ暗号化標準(DES)、トリプルDES、Rivest-Shamir-Adleman暗号(RSA)、Blowfish暗号、Advanced Encryption Standard(AES)、CAST-128、CAST-256、無相関化高速暗号(DFC:Decorrelated Fast Cipher)、Tiny Encryption Algorithm(TEA)、eXtended TEA(XTEA)、Corrected Block TEA(XXTEA)、および/またはRC5等のような、任意の便利な、既知の、または将来開発される方法に基づいて、暗号化され得る。
[0034]ネットワークデバイス105、端末デバイス115、および/またはクライアントデバイス130は、例えば、ポータブル電子デバイス(例えば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス)、または非ポータブル電子デバイス(例えば、1つまたは複数のデスクトップコンピュータ、スマート家電、サーバ、および/またはプロセッサ)を含み得る。接続管理システム150は、ネットワークデバイス、端末デバイス、およびクライアントデバイスとは別個に収容され得るか、または(例えば、デバイス上でのアプリケーションのインストールを介して)1つまたは複数のそのようなデバイスの一部であり得る。リモートサーバ140は、各デバイスおよび接続管理システム150とは別個に収容され得、および/または、別のデバイスまたはシステムの一部であり得る。図1における各デバイス、サーバ、およびシステムが、単一のデバイスとして示されている一方で、代わりに複数のデバイスが使用され得ることが理解されよう。例えば、ネットワークデバイスのセットが、単一のユーザから様々な通信を送信するために使用され得、またはリモートサーバ140が、サーバスタックを含み得る。
[0035]ソフトウェアエージェントまたはアプリケーションが、図示されたデバイス、システム、またはサーバ上にインストールされ得、および/またはその上で実行可能であり得る。一事例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が相補的な形で動作し得るように構成される。例えば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを収集し、別個の接続管理システムに送信するように構成され得、別個の接続管理システム上のソフトウェアアプリケーションが、このデータを受信および処理するように構成され得る。
[0036]図2は、ネットワークインタラクションシステム200の別の実施形態のブロック図を示す。一般に、図2は、ネットワークデバイス205が、1つまたは複数の端末デバイス215と通信することを可能にするように構成および配置された様々なコンポーネントを例示する。図示された事例は、3つのローカルエリアネットワーク235に含まれる9個の端末デバイス215を含む。
[0037]いくつかの事例では、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信すべきかを少なくとも部分的にまたは完全に示す宛先データ(例えば、宛先IPアドレス)を含む。ネットワークインタラクションシステム200は、宛先データを処理し、適切なルーティングを容易にし得る、1つまたは複数のインターネットワーク接続コンポーネント240および/または1つまたは複数のイントラネットワーク接続コンポーネント255を含み得る。
[0038]各インターネットワーク接続コンポーネント245は、複数のネットワーク235に接続され得、複数のネットワークカードをインストールされ得る(例えば、各カードは異なるネットワークに接続される)。例えば、インターネットワーク接続コンポーネント245は、広域ネットワーク270(例えば、インターネット)および1つまたは複数のローカルエリアネットワーク235に接続され得る。図示された事例では、通信がネットワークデバイス205から端末デバイスのいずれかに送信されるためには、図示されたシステムでは、通信は複数のインターネットワーク接続コンポーネント245によって処理されなければならない。
[0039]インターネットワーク接続コンポーネント245が通信(または通信に対応するパケットのセット)を受信すると、インターネットワーク接続コンポーネント245は、この通信を宛先に関連付けられたネットワークに渡すルートの少なくとも一部を決定し得る。ルートは、例えば、(例えば、ルータにおいて記憶された)ルーティングテーブルを使用して決定され得、これは、事前に定義されたか、(例えば、別のルータからかまたは別のデバイスからの)到来するメッセージに基づいて生成されたか、または学習された1つまたは複数のルートを含み得る。
[0040]インターネットワーク接続コンポーネント245の例は、ルータ260およびゲートウェイ265を含む。インターネットワーク接続コンポーネント245(例えば、ゲートウェイ265)は、ネットワークシステムまたはプロトコル間で変換するように構成され得る。例えば、ゲートウェイ265は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)デバイスと、インターネットワークパケット交換/シーケンスパケット交換(IPX/SPX)デバイスとの間の通信を容易にし得る。
[0041]ローカルエリアネットワーク235において通信を受信すると、さらなるルーティングが依然として実行される必要があり得る。このようなイントラネットワークルーティングは、スイッチ280またはハブ285等の、イントラネットワーク接続コンポーネント255を介して実行され得る。各イントラネットワーク接続コンポーネント255は、(例えば、無線で、またはイーサネット(登録商標)ケーブル等を介して有線で)複数の端末デバイス215に接続され得る。ハブ285は、それが接続されている各デバイスに対して、全ての受信された通信を繰り返すように構成され得る。次いで、各端末デバイスは、端末デバイスが宛先デバイスであるかどうか、または通信が無視されるべきであるかどうかを決定するために、各通信を評価し得る。スイッチ280は、通信を宛先端末デバイスのみに選択的に誘導するように構成され得る。
[0042]いくつかの事例では、ローカルエリアネットワーク235は、複数のセグメントに分割され得、その各々が、独立したファイアウォール、セキュリティ規則、およびネットワークプロトコルに関連付けられ得る。イントラネットワーク接続コンポーネント255は、イントラセグメントルーティングを容易にするために、1つ、複数、または全てのセグメントの各々において設けられ得る。ブリッジ280は、セグメント275にわたって通信をルーティングするように構成され得る。
[0043]ネットワークにわたって、またはネットワーク内で通信を適切にルーティングするために、様々なコンポーネントが通信における宛先データを分析する。例えば、そのようなデータは、通信がどのネットワークにルーティングされるべきか、通信がネットワーク内のどのデバイスにルーティングされるべきか、または端末デバイスがどの通信を処理すべきか(無視すべきか)を示し得る。しかしながら、いくつかの事例では、ネットワークデバイスからの通信にどの端末デバイスが参加すべきか(またはどのネットワークが参加すべきかさえも)は、直ぐには分からない。
[0044]例として、端末デバイスのセットが、同様のタイプの応答通信を提供するように構成され得る。したがって、ネットワークデバイスからの通信におけるクエリは、どのネットワークデバイスに通信がルーティングされるかにかかわらず、同様の方法で応答され得ることが予期され得る。この仮定は、高いレベルで当てはまり得るが、端末デバイスに関係する様々な詳細は、特定のルーティングが他のものと比較して有利になることをもたらし得る。例えば、セット内の端末デバイスは、(例えば)どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性および/もしくはネットワーク近接性、および/または、関連付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、可用性、一般的な性格またはセンチメント等)に関して互いに異なり得る。したがって、選択ルーティングは、ネットワークデバイスの通信により正確におよび/または完全に応答する、より高速な応答を容易にし得る。1つの問題点は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングが、通信のトピック、チャネルタイプ、エージェントの可用性等におけるバリエーションを考慮できない場合があることである。
[0045]図3A~図3Cは、接続管理システムを含むネットワークインタラクションシステム300a~cの他の実施形態のブロック図を示す。図示されたシステム300a~cの各々は、簡略化のために2つのローカルエリアネットワーク235のみを示しているが、ローカルエリアネットワークの数を増やすために、実施形態が拡張され得ることが理解され得る。システム300a~cの各々は、接続管理システム350を含み、これは、どの端末デバイスがネットワークデバイス205と通信すべきかを識別し得、接続チャネルを確立および管理(例えば、維持するまたは閉じる)し得、交換において通信を再ルーティングするかどうかおよびいつ再ルーティングするかを決定し得る、等する。したがって、接続管理システム350は、ルーティング決定に影響を及ぼすために、通信、エージェントの可用性、端末デバイスまたはエージェントの能力等を動的にかつリアルタイムで評価するように構成され得る。
[0046]図3Aでは、接続管理システム350は、ネットワークデバイス205およびリモートサーバ340の各々に関連付けられている(例えば、接続管理システム350aは、ネットワークデバイス205に関連付けられており、接続管理システム350bは、リモートサーバ340に関連付けられている)。例えば、接続管理システム350aおよび/または接続管理システム350bは、それぞれネットワークデバイス205およびリモートサーバ340の各々にアプリケーションとしてインストールまたは記憶され得る。(1つまたは複数の)アプリケーションの実行は、例えば、ネットワークデバイス205との通信交換に参加するために選択される端末デバイス215を識別するための、ネットワークデバイス205とリモートサーバ340との間の通信を容易にし得る。識別は、本明細書で開示される1つまたは複数のファクタ(例えば、可用性、通信のトピック/詳細レベルと、エージェントまたは端末デバイスの知識ベースとの間のマッチング、予測レイテンシ、チャネルタイプの可用性等)に基づいて行われ得る。
[0047]クライアントデバイス330は、ルーティング決定がどのように行われるべきか示すクライアントデータを提供し得る。例えば、このようなデータは、特定の特性をどのように重み付けまたはマッチングさせるべきかに関するインジケーション、または制約もしくはバイアス(例えば、負荷バランシングまたは予測応答レイテンシに関係する)を含み得る。クライアントデータはまた、通信チャネルがいつ確立される(または閉じられる)べきか、または異なるネットワークデバイスに通信がいつ再ルーティングされるべきかに関する仕様も含み得る。クライアントデータは、通信ルーティング等のための規則等の、様々なクライアント固有の規則を定義するために使用され得る。
[0048]リモートサーバ340上で実行中の接続管理システム350bは、どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性および/もしくはネットワーク近接性、端末デバイスとの通信のレイテンシおよび/もしくは安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(またはエージェント)が所与のネットワークデバイス(またはユーザ)と以前に通信したことがあるかどうか、ならびに/または、関連付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、可用性、一般的な性格またはセンチメント等)のような、端末デバイスに関係する(例えば、所与のクライアントに関係する)様々なメトリックを監視し得る。したがって、接続管理システム350bは、メトリックに基づいて、ネットワークデバイスの通信により正確におよび/または完全に応答する、より高速な応答を容易にするようにルーティングを選択することが可能となり得る。
[0049]図3Aに図示される例では、ネットワークデバイス205とリモートサーバ340との間の通信交換は、宛先アドレスの早期識別を容易にし得る。次いで、ネットワークデバイス205は、後続の通信を誘導するために、宛先アドレスを使用し得る。例えば、ネットワークデバイス205は、(例えば、1つまたは複数のインターネットワーク接続および広域ネットワークを介して)リモートサーバ340に初期通信を送り得、リモートサーバ340は、1つまたは複数の対応するクライアントを識別し得る。次いで、リモートサーバ340は、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別し、それらの端末デバイスについてのメトリックを収集し得る。メトリックは、通信交換に関与させる端末デバイスを選択するために(例えば、リモートサーバ340によって)評価され得、端末デバイスに関係する情報(例えば、IPアドレス)が、ネットワークデバイス205に送られ得る。いくつかの実施形態では、リモートサーバ340は、様々な端末デバイスについてのメトリックを継続的または周期的に収集および評価し、評価結果をデータストアに記憶し得る。このような実施形態では、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別すると、リモートサーバ340は、データストアからの記憶された評価結果にアクセスし、記憶された評価結果に基づいて、通信交換に関与させる端末デバイスを選択し得る。
[0050]図3Bでは、接続管理システム350は、中継器および/または宛先アドレスとして機能するように構成され得る。したがって、例えば、ネットワークデバイス205のセットは、各々が接続管理システム350を宛先として識別する通信を送信し得る。接続管理システム350は、各通信を受信し得、端末デバイスのセットを(例えば、各端末デバイスについてのメトリックを生成するために)同時並行に監視し得る。監視および規則に基づいて、接続管理システム350は、それが各通信を中継し得る端末デバイス215を識別し得る。実施形態に応じて、端末デバイスの通信は、同様に、さらなる中継のために(例えば、接続管理システム350の)一貫した宛先に誘導され得るか、または、端末デバイスは、対応するネットワークデバイスと直接通信することを開始し得る。これらの実施形態は、効率的なルーティングおよび徹底した通信の監視を容易にし得る。
[0051]図3Cに図示される実施形態は、図3Bのものと同様である。しかしながら、いくつかの実施形態では、接続管理システム350は、イントラネットワークコンポーネント(例えば、端末デバイス、イントラネットワーク接続、またはその他)に直接接続される。
[0052]図3A~図3Cの多くのバリエーションが企図されることが理解されよう。例えば、接続管理システム350は、接続管理システム350(またはその一部)に対応するアプリケーションが、コンポーネント上にインストールされるように、接続コンポーネント(例えば、インターネットワーク接続コンポーネント245またはイントラネットワーク接続コンポーネント255)に関連付けられ得る。アプリケーションは、例えば、独立に、または(例えば、1つまたは複数の他のコンポーネント、ネットワークデバイス、またはリモートサーバ上で実行中の)1つまたは複数の同様のまたは相補的なアプリケーションと通信することによって、実行し得る。
[0053]図4は、接続コンポーネントの動作のプロトコルスタックマッピング400を表したものを示す。より具体的には、図4は、様々な接続コンポーネントに対応する開放型システムインタラクション(OSI:Open Systems Interaction)モデルにおける動作の層を識別する。
[0054]OSIモデルは、複数の論理層402~414を含み得る。これらの層は、層402~412がそれぞれ上位レベルをサービスし、層404~414がそれぞれ下位層によってサービスされるように、順序付けられたスタックにおいて配置されている。OSIモデルは、物理層402を含む。物理層402は、パラメータの物理的通信(例えば、電気的、光学的、または電磁的)を定義し得る。物理層402はまた、接続を確立および閉じるためのプロトコル等の接続管理プロトコルを定義する。物理層402は、フロー制御プロトコルおよび送信モードをさらに定義し得る。
[0055]リンク層404は、ノード間通信を管理し得る。リンク層404は、エラー(例えば、物理層402における送信エラー)を検出および訂正し、アクセス許可を管理し得る。リンク層404は、媒体アクセス制御(MAC)層および論理リンク制御(LLC)層を含み得る。
[0056]ネットワーク層406は、(例えば、データグラムとして)同じネットワーク内のノードにわたる(例えば、可変長の)データの転送を調整し得る。ネットワーク層406は、論理ネットワークアドレスを物理マシンアドレスに変換し得る。
[0057]トランスポート層408は、送信品質および受信品質を管理し得る。トランスポート層408は、送信制御プロトコル(TCP)等の、データを転送するためのプロトコルを提供し得る。トランスポート層408は、送信用のデータパケットのセグメント化/非セグメント化を実行し得、層402~406において発生する送信エラーを検出し、それに対処し得る。セッション層410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を開始、維持、および終了させ得る。セッションは、リモートプロシージャインタラクションの一部として使用され得る。プレゼンテーション層412は、アプリケーション層またはネットワーク層によって受け入れられることが知られているデータタイプに基づいて、データを暗号化、解読、およびフォーマットし得る。
[0058]アプリケーション層414は、通信を制御または管理するソフトウェアアプリケーションとインタラクトし得る。そのようなアプリケーションを介して、アプリケーション層414は、(例えば)宛先、ローカルリソースの状態もしくは可用性、および/または通信のコンテンツもしくはフォーマッティングを識別し得る。様々な層402~414は、利用可能かつ適用可能な場合、他の機能を実行し得る。
[0059]イントラネットワーク接続コンポーネント422、424は、物理層402およびリンク層404において動作するように示されている。より具体的には、通信の受信および送信に関して動作が制御され得るように、ハブが物理層で動作し得る。ハブには、通信をアドレス指定するまたはデータをフィルタリングする能力がないため、それらは、上位レベルで動作する能力をほとんどまたは全く有していない。一方、スイッチは、それらがアドレス(例えば、MACアドレス)に基づいて通信フレームをフィルタリングすることが可能であるので、リンク層404で動作し得る。
[0060]一方、インターネットワーク接続コンポーネント426、428は、上位レベル(例えば、層406~414)で動作するように示されている。例えば、ルータは、アドレス(例えば、IPアドレス)に基づいて、通信データパケットをフィルタリングし得る。ルータは、パケットを適切なネットワークに誘導するように、アドレスに基づいて特定のポートにパケットを転送し得る。ゲートウェイは、ネットワーク層およびそれより上位で動作し、同様のフィルタリングおよび誘導、ならびに(例えば、プロトコルまたはアーキテクチャにわたる)さらなるデータの変換を実行し得る。
[0061]接続管理システム450は、様々な実施形態において、様々な層のうちの1つ、複数、全て、または任意のものとインタラクトし得、および/またはその上で動作し得る。例えば、接続管理システム450は、どの端末デバイスとハブが通信するかを動的に調整するように、ハブとインタラクトし得る。別の例として、接続管理システム450は、コンポーネントが宛先(例えば、MAC、論理、または物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすように、ブリッジ、スイッチ、ルータ、またはゲートウェイと通信し得る。さらなる例として、接続管理システム450は、トランスポート層408上のデータパケットのセグメント化、セッション層410上のセッション持続時間、ならびに/または、プレゼンテーション層412上での暗号化および/もしくは圧縮を、監視、制御、または指示し得る。いくつかの実施形態では、接続管理システム450は、特定の層で動作する機器(例えば、リンク層404で動作するスイッチ)と通信を交換すること(例えば、それにコマンドを送ること)によって、(例えば、ネットワークデバイスと端末デバイスとの間の)既存の通信を特定の方法でルーティングまたは修正することによって、および/または、既存の通信に基づいて特定の情報(例えば、新しい宛先アドレス)を含む新しい通信を生成することによって、様々な層とインタラクトし得る。したがって、接続管理システム450は、様々なデバイスとのインタラクションを介して、および/または様々なプロトコルスタック層での動作に影響を及ぼすことを介して、通信ルーティングおよびチャネル確立(あるいは、維持または終了)に影響を及ぼし得る。
[0062]図5は、一実施形態によるマルチデバイス通信交換システム500を表す。システム500は、様々なタイプの通信チャネル上で様々なタイプの端末デバイスと通信するように構成されたネットワークデバイス505を含む。
[0063]図示される事例では、ネットワークデバイス505は、セルラネットワーク上で(例えば、基地局510を介して)通信を送信し得る。通信は、動作ネットワーク515にルーティングされ得る。動作ネットワーク515は、通信を受信し、どの端末デバイスが通信に応答すべきかを識別する接続管理システム520を含み得る。このような決定は、(例えば、コンテンツ分析またはクライアントを示すユーザ入力に基づいて)その通信が関係するクライアントを識別することと、クライアントに関連付けられた1つまたは複数の端末デバイスの各々について1つまたは複数のメトリックを決定することとに依存し得る。例えば、図5では、端末デバイス530a~cの各クラスタは、異なるクライアントに対応し得る。端末デバイスは、地理的にコロケートされ得るか、または分散され得る。メトリックは、記憶または学習されたデータおよび/またはリアルタイムの監視に基づいて(例えば、可用性に基づいて)決定され得る。
[0064]接続管理システム520は、1つまたは複数のルータ525、または他のインターネットワークもしくはイントラネットワーク接続コンポーネントを介して、様々な端末デバイスと通信し得る。接続管理システム520は、1つまたは複数のデータストアにおいて、通信、端末デバイスの動作、クライアント規則、および/またはユーザ関連のアクション(例えば、オンラインアクティビティ)からの、またはそれらに関係するデータを収集、分析、および/または記憶し得る。このようなデータは、通信ルーティングに影響を及ぼし得る。
[0065]特に、通信ルーティングおよび/または処理に影響を及ぼすために、様々な他のデバイスがさらに使用され得る。例えば、図示される事例では、接続管理システム520はまた、ウェブサーバ540にも接続される。したがって、接続管理システム520は、技術的製品詳細等のような、関心対象のデータを検索し得る。
[0066]ネットワークデバイス505はまた、ウェブサーバ(例えば、ウェブサーバ545を含む)に接続され得る。いくつかの事例では、そのようなサーバとの通信には、接続管理システム520と通信交換を開始するための初期オプションが提供される。例えば、ネットワークデバイス505は、特定のウェブページを訪問している間に、通信機会が利用可能であることを検出し得、そのようなオプションが提示され得る。
[0067]通信システム500の1つまたは複数の要素がまた、ソーシャルネットワーキングサーバ550に接続され得る。ソーシャルネットワーキングサーバ550は、様々なユーザデバイスから受信したデータを集約し得る。したがって、例えば、接続管理システム520は、所与のユーザまたはユーザのクラスの一般的な(またはユーザ固有の)挙動を推定することが可能であり得る。
[0068]図6は、接続管理システム600の一実施形態のブロック図を示す。メッセージ受信機インターフェース605が、メッセージを受信し得る。いくつかの事例では、メッセージは、例えば、ネットワークデバイスまたは端末デバイス等の、(例えば、接続管理システム600とは別個に収容されるか、または同じハウジング内に収容される)ソースデバイスによって送信された通信の一部として受信され得る。いくつかの事例では、通信は、一連の通信または通信交換の一部であり得、これは、2つのデバイス(例えば、ネットワークデバイスおよび端末デバイス)間でルーティングされている一連のメッセージまたはメッセージ交換を含み得る。このメッセージまたは通信交換は、デバイス間のインタラクションの一部であり得、および/またはそれを定義し得る。通信チャネルまたは動作チャネルは、デバイス間のルーティングおよび通信交換を容易にするために使用される1つまたは複数のプロトコル(例えば、ルーティングプロトコル、タスク割当てプロトコル、および/またはアドレス指定プロトコル)を含み得る。
[0069]いくつかの事例では、メッセージは、ローカルまたはリモートユーザインターフェースにおいて受信された入力に基づいて生成されたメッセージを含み得る。例えば、メッセージは、ボタンもしくはキーの押下または記録された音声信号に基づいて生成されたメッセージを含み得る。一事例では、メッセージは、ネットワークデバイスが特定のアプリページまたはウェブページを提示していること、または特定の入力コマンド(例えば、キー順)を提供したことを検出した際に生成されるもの等の、自動的に生成されたメッセージを含む。メッセージは、通信交換を開始するためのもの等の、命令または要求を含み得る。
[0070]いくつかの事例では、メッセージは、クライアントの識別子を含み得るか、またはそれに関連付けられ得る。例えば、メッセージは、クライアント(またはクライアントに関連付けられたデバイス)を明示的に識別し得、メッセージは、クライアントに関連付けられたウェブページまたはアプリページを含み得るか、またはそれに関連付けられ得、メッセージは、クライアントに関連付けられた宛先アドレスを含み得るか、またはそれに関連付けられ得、あるいは、メッセージは、クライアントに関連付けられたアイテム(例えば、製品)またはサービスの識別を含み得るか、またはそれに関連付けられ得る。例として、ネットワークデバイスは、特定のクライアントのアプリページを提示し得、これは、エージェントに通信を送信するためのオプションを提供し得る。メッセージに対応するユーザ入力を受信すると、メッセージおよび特定のクライアントの識別子を含むように、通信が生成され得る。
[0071]処理エンジン610は、受信された通信および/またはメッセージを処理し得る。処理は、例えば、1つまたは複数の特定のデータ要素(例えば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子等)を抽出することを含み得る。処理は、(例えば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコルおよび/またはネットワークと互換性があるように)フォーマッティングまたは通信タイプを変換することを含み得る。
[0072]メッセージ評価エンジン615が、(例えば、抽出または受信された)メッセージを評価し得る。評価は、例えば、メッセージについての1つまたは複数のカテゴリまたはタグを識別することを含み得る。カテゴリまたはタグのタイプの例は、(例えば)トピック、センチメント、複雑さ、および緊急性を含み得る。メッセージをカテゴリ分類することと、タグ付けすることとの間の違いは、カテゴリが(例えば、カテゴリオプションの所定のセットに従って)限定され得る一方で、タグは自由(open)であり得ることである。トピックは、例えば、技術的問題、使用の質問(a use question)、または要求を含み得る。カテゴリまたはタグは、例えば、(例えば、キーワード、文構造、繰り返された単語、句読文字および/または冠詞でない単語を識別することによる)メッセージの意味解析、(例えば、選択された1つまたは複数のカテゴリを有する)ユーザ入力、および/またはメッセージ関連の統計値(例えば、タイピング速度および/または応答レイテンシ)に基づいて決定され得る。
[0073]いくつかの事例では、メッセージ評価エンジン615は、メッセージについてのメトリックを決定し得る。メトリックは、例えば、文字数、単語数、大文字数、全て大文字の単語数、または特定の文字もしくは句読点(例えば、感嘆符、疑問符、および/またはピリオド)の事例の数を含み得る。メトリックは、感嘆符(または疑問符)で終わる文の割合、全て大文字の単語の割合等の比率を含み得る。
[0074]メッセージ評価エンジン615は、メッセージ、メッセージメトリック、および/またはメッセージ統計値をメッセージデータストア620に記憶し得る。各メッセージはまた、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末デバイス、クライアント、1つまたは複数のカテゴリ、1つまたは複数の段階、および/またはメッセージ関連の統計値を識別するデータ等の、他のデータ(例えば、メタデータ)に関連して記憶され得る。接続管理システム600の様々なコンポーネント(例えば、メッセージ評価エンジン615および/またはインタラクション管理エンジン625)は、クエリ応答メッセージ、メッセージメトリック、および/またはメッセージ統計値を検索する(retrieve)ために、メッセージデータストア620をクエリし得る。
[0075]インタラクション管理エンジン625は、どのデバイスに通信がルーティングされるべきか、ならびに受信デバイスおよび送信デバイスがどのように通信すべきかを決定し得る。これらの決定の各々は、例えば、特定のネットワークデバイス(または特定のユーザに関連付けられた任意のネットワークデバイス)が、端末デバイスのセットにおける端末デバイス(例えば、接続管理システム600に関連付けられた任意の端末デバイス、または1つまたは複数の特定のクライアントに関連付けられた任意の端末デバイス)と以前に通信しことがあるかどうかに依存し得る。
[0076]いくつかの事例では、ネットワークデバイス(または、同じユーザもしくはプロファイルに関連付けられた他のネットワークデバイス)が、所与の端末デバイスと以前に通信したことがあるとき、通信ルーティングは、一般に、同じ端末デバイスに向かってバイアスされ得る。ルーティングに影響を及ぼし得る他のファクタは、例えば、端末デバイス(または対応するエージェント)が利用可能であるかどうか、および/または端末デバイスの予測応答レイテンシを含み得る。このようなファクタは、絶対的に、または他の端末デバイスに対応する同様のメトリックに対して相対的に考慮され得る。再ルーティング規則(例えば、クライアント固有の規則または一般的規則)が、エージェント一貫性を断念する(forego)かどうかを決定するために、そのようなファクタがどのように評価され、重み付けされるべきかを示し得る。
[0077]ネットワークデバイス(または同じユーザもしくはアカウントに関連付けられた他のネットワークデバイス)が所与の端末デバイスと以前に通信したことがないとき、端末デバイスの選択は、例えば、様々なエージェントの知識ベースが通信のトピックに対応する程度、所与の時間でのおよび/またはチャネルタイプ上での様々なエージェントの可用性、(例えば、クライアントに関連付けられた)端末デバイスのタイプおよび/または能力等のファクタに基づいて実行され得る。一事例では、規則は、これらのような1つまたは複数のファクタに対するサブパラメータと、各パラメータに割り当てるべき重みとをどのように決定するかを識別し得る。重み付けされたサブパラメータを組み合わせる(例えば、合計する)ことによって、各エージェントについてのパラメータが決定され得る。次いで、端末デバイスの選択が、端末デバイスのパラメータを比較することによって行われ得る。
[0078]デバイスがどのように通信すべきか決定することに関して、インタラクション管理エンジン625は、(例えば)端末デバイスが、(例えば)SMSメッセージ、音声通話、ビデオ通信等を介して通信に応答すべきかどうかを決定し得る。通信タイプは、例えば、(例えば、クライアントまたはユーザによって少なくとも部分的に定義される)通信タイプ優先順位リスト、(例えば、一貫性を促進するように)ネットワークデバイスから以前に受信された通信のタイプ、受信されたメッセージの複雑さ、ネットワークデバイスの能力、および/または、1つまたは複数の端末デバイスの可用性に基づいて選択され得る。明らかに、いくつかの通信タイプは、(例えば、高速メッセージ応答が予期される)リアルタイム通信をもたらすことになる一方で、その他は、(例えば、メッセージ間の(例えば、数分または数時間の)遅延が許容可能である)非同期通信をもたらし得る。
[0079]さらに、インタラクション管理エンジン625は、2つのデバイス間の連続チャネルが確立、使用、または終了されるべきかどうかを決定し得る。連続チャネルは、ネットワークデバイスから指定された端末デバイスへの将来の通信のルーティングを容易にするように構造化され得る。このバイアスは、メッセージ系列(message series)にわたってさえも持続し得る。いくつかの事例では、(例えば、エージェントを識別する)連続チャネルの表現が、ネットワークデバイス上で提示されるべき提示に含まれ得る。このようにして、ユーザは、効率を促進するために、通信が一貫してルーティングされるべきであることを理解し得る。
[0080]一事例では、パラメータが、所与のネットワークデバイスおよび端末デバイスに対応する接続パラメータを決定するために、本明細書で説明される1つまたは複数のファクタと、(例えば、1つまたは複数のファクタの各々についての重みを含む)規則とを使用して生成され得る。パラメータは、全体的な一致または所与の通信もしくは通信系列に固有の一致に関係し得る。したがって、例えば、パラメータは、所与の端末デバイスがネットワークデバイス通信に応答するのに適していると予測される程度を反映し得る。いくつかの事例では、パラメータ分析が、所与の通信をルーティングすべき端末デバイスの各々を識別するために、および接続チャネルを確立、使用、または終了させるかどうかを識別するために使用され得る。パラメータ分析がルーティング決定とチャネル決定との両方に対処するために使用されるとき、各決定に関連するパラメータは、同じ、同様の、または異なる方式で決定され得る。
[0081]したがって、例えば、パラメータが、長期一致(long-term match)の強度を予測するためのものであるか、特定のメッセージクエリに応答するためのものであるかに応じて、異なるファクタが考慮され得ることが理解されよう。例えば、前者の場合には、全体的なスケジュールおよび時間帯の考慮が重要であり得、一方、後者の場合には、即時の可用性がより高く重み付けされ得る。1つのパラメータが、単一のネットワークデバイス/端末デバイスの組合せに対して決定され得、または所与のネットワークデバイスと異なる端末デバイスとの間の一致をそれぞれ特徴付けている複数のパラメータが決定され得る。
[0082]例として、クライアントに関連付けられた3つの端末デバイスのセットが、潜在的な通信ルーティングについて評価され得る。特定の通信に関する一致に関連する各々についてのパラメータが生成され得る。最初の2つの端末デバイスの各々は、通信を送信したネットワークデバイスと以前に通信したことがあり得る。ネットワークデバイスからの入力は、第1のデバイスとの(1つまたは複数の)通信でのインタラクションに関連付けられた肯定的なフィードバックを示したものであり得る。したがって、第1、第2、および第3のデバイスについての(規則に従って計算された)過去のインタラクトサブパラメータは、それぞれ、10、5、および0であり得る。(ネガティブフィードバックの入力は、ネガティブサブパラメータをもたらし得る)。第3の端末デバイスのみが利用可能であることが決定され得る。第2の端末デバイスは、15分以内に応答のために利用可能になるが、第1の端末デバイスは、次の日まで応答のために利用可能にならないことが予測され得る。したがって、第1、第2、および第3のデバイスについての高速応答サブパラメータは、1、3、および10であり得る。最後に、(端末デバイスに関連付けられた)エージェントが通信におけるトピックについて精通している程度が推定され得る。第3の端末デバイスに関連付けられたエージェントが、他の2つのデバイスに関連付けられたエージェントよりも精通していると決定され得、サブパラメータは、3、4および9となる。この例では、規則は、重み付けまたは正規化パラメータを含まず(ただし、他の事例では、規則に含まれる場合もある)、パラメータは、14、11および19となる。したがって、規則は、最も高いパラメータを有するデバイス、すなわち、第3の端末デバイスに、メッセージがルーティングされるべきであることを示し得る。特定の端末デバイスへのルーティングが失敗した場合、そのメッセージは、次に高いパラメータを有するデバイスにルーティングされ得、以下同様である。
[0083]パラメータは、1つまたは複数の絶対閾値または相対閾値と比較され得る。例えば、通信がルーティングされ得る端末デバイスを選択するために、端末デバイスのセットについてのパラメータが、高いパラメータを識別するために互いに比較され得る。別の例として、パラメータ(例えば、高いパラメータ)が、端末デバイスとの連続チャネルを確立するかどうかを決定するために、1つまたは複数の絶対閾値と比較され得る。連続チャネルを確立するための全体的な閾値は、(そうなる必要はないが)所与の一連のメッセージにおいて通信を一貫してルーティングするための閾値よりも高くなり得る。全体的な閾値と、通信を一貫してルーティングするかどうかを決定するための閾値との間のこの差は、チャネルの拡張された有用性を仮定すると(given)、連続チャネルのコンテキストでは、強い一致が重要であるからであり得る。いくつかの実施形態では、連続チャネルを使用するための全体的な閾値は、(そうなる必要はないが)所与の一連のメッセージにおいて通信を一貫してルーティングするための、および/または連続チャネルを確立するための閾値よりも低くなり得る。
[0084]インタラクション管理エンジン625は、様々なコンテキストにおいて、アカウントエンジン630とインタラクトし得る。例えば、アカウントエンジン630は、デバイスに対応するアカウントを識別するために、アカウントデータストア635内のネットワークデバイスまたは端末デバイスの識別子をルックアップし得る。さらに、アカウントエンジン630は、以前の通信交換に関するデータ(例えば、回数(times)、(1つまたは複数の)関与した他のデバイス、チャネルタイプ、解決段階、(1つまたは複数の)トピックおよび/または関連付けられたクライアント識別子)、(例えば、-1つまたは複数のクライアントの各々について-何らかのチャネルが存在するかどうか、各チャネルに関連付けられた端末デバイス、確立時間、使用頻度、最終使用日付、任意のチャネル制約および/またはサポートされる通信のタイプを示す)接続チャネルに関するデータ、(例えば、端末デバイスの選択、応答レイテンシ、端末デバイスの一貫性、エージェントの専門知識、および/または通信タイプの選好もしくは制約に関連する)ユーザまたはエージェントの選好または制約に関するデータ、および/または、ユーザまたはエージェントの特性に関するデータ(例えば、年齢、(1つまたは複数の)使用言語または選好の言語、地理的ロケーション、関心等)を維持し得る。
[0085]さらに、インタラクション管理エンジン625は、アカウントデータストア635が現在のチャネルデータを反映するように更新され得るように、アカウントエンジン630に様々な接続チャネルアクションを知らせ(alert)得る。例えば、チャネルを確立すると、インタラクション管理エンジン625は、アカウントエンジン630に確立を通知し、ネットワークデバイス、端末デバイス、アカウント、およびクライアントのうちの1つまたは複数を識別し得る。その後、アカウントエンジン635は、(いくつかの事例では)利用されているエージェント一貫性をユーザが認識し得るように、チャネルの存在をユーザに通知し得る。
[0086]インタラクション管理エンジン625は、クライアントマッピングエンジン640とさらにインタラクトし得、それは、通信を1つまたは複数のクライアント(および/または関連付けられたブランド)にマッピングし得る。いくつかの事例では、ネットワークデバイス自体から受信される通信が、クライアントに対応する識別子(例えば、クライアント、ウェブページ、またはアプリページの識別子)を含む。識別子は、(例えば、クライアントマッピングエンジン640が検出し得る)メッセージの一部として含まれ得るか、またはメッセージ包含通信(message-inclusive communication)における他のデータとして含まれ得る。次いで、クライアントマッピングエンジン640は、クライアントおよび/またはクライアントの識別子に関する追加のデータを検索するために、クライアントデータストア645内の識別子をルックアップし得る。
[0087]いくつかの事例では、メッセージは、特にいずれのクライアントにも対応しない場合がある。例えば、メッセージは、一般的なクエリを含み得る。クライアントマッピングエンジン640は、例えば、メッセージに対して意味解析を実行し、1つまたは複数のキーワードを識別し、(1つまたは複数の)キーワードに関連付けられた1つまたは複数のクライアントを識別し得る。いくつかの事例では、単一のクライアントが識別される。いくつかの事例では、複数のクライアントが識別される。次いで、各クライアントの識別が、ユーザが(例えば、関連付けられた端末デバイスを介して)通信すべきクライアントを選択し得るように、ネットワークデバイスを介して提示され得る。
[0088]クライアントデータストア645は、クライアントに関連付けられた1つまたは複数の端末デバイス(および/またはエージェント)の識別を含み得る。端末ルーティングエンジン650が、ルーティング決定に影響を及ぼすために、1つ、複数、または全てのそのような端末デバイス(および/またはエージェント)の各々に関係するデータを検索または収集し得る。例えば、端末ルーティングエンジン650は、端末データストア655を維持し得、これは、端末デバイスのデバイスタイプ、オペレーティングシステム、通信タイプの能力、インストールされたアプリケーションアクセサリ、地理的ロケーション、および/または識別子(例えば、IPアドレス)等の情報を記憶し得る。一部の情報は、動的に更新され得る。例えば、端末デバイスが利用可能であるかどうかを示す情報は、(例えば)端末デバイスからの通信(例えば、デバイスがスリープ状態にあるか、オフ/オンにされているか、非アクティブ/アクティブ状態にあるかを識別し、または入力が時間期間内に受信されたかどうかを識別する)、通信ルーティング(例えば、端末デバイスが通信交換に関与しているかどうか、またはそれに参加するように割り当てられているかどうかを示す)、または通信交換が終了または開始したことを示す、ネットワークデバイスまたは端末デバイスからの通信に基づいて、動的に更新され得る。
[0089]様々なコンテキストでは、1つまたは複数の通信交換に従事していることは、必ずしも端末デバイスが別の通信交換に従事するのに利用可能でないことを示すとは限らないことが理解されよう。通信タイプ(例えば、メッセージ)、クライアントにより識別されたもしくはユーザにより識別されたターゲット応答時間、および/または(例えば、一般的な、またはユーザに関する)システム負荷等の様々なファクタが、端末デバイスがいくつの交換に関与し得るかに影響を及ぼし得る。
[0090]インタラクション管理エンジン625が通信交換または接続チャネルに関与させるべき端末デバイスを識別したとき、それは、端末ルーティングエンジン650に通知し得、端末ルーティングエンジン650は、端末データストア655から、宛先(例えば、IP)アドレス、デバイスタイプ、プロトコル等のような、端末デバイスに関する任意の関連データを検索し得る。次いで、処理エンジン610は、(いくつかの事例では)特定のフォーマットを有し、特定のプロトコルに準拠するように等、メッセージ包含通信を修正し得るか、または(メッセージを含む)新しい通信を生成し得る。いくつかの事例では、新しいまたは修正されたメッセージは、ネットワークデバイスに対応するアカウントデータ、メッセージクロニクル、および/またはクライアントデータ等の、追加のデータを含み得る。
[0091]次いで、メッセージ送信機インターフェース660が、通信を端末デバイスに送信し得る。送信は、例えば、別個のハウジングに収容されたデバイスへのワイヤード送信またはワイヤレス送信を含み得る。端末デバイスは、接続管理システム600と同じまたは異なるネットワーク(例えば、ローカルエリアネットワーク)内の端末デバイスを含み得る。したがって、端末デバイスに通信を送信することは、インターまたはイントラネットワーク接続コンポーネントに通信を送信することを含み得る。
[0092](例えば、ユーザによって操作される)ネットワークデバイスとの通信セッション中に、ボットと(例えば、生身のエージェントによって操作される)端末デバイスとの間で動的に切り替えるためのシステムおよび方法が提供される。いくつかの実装形態では、ボットは、ネットワークデバイスと自律的に通信するように構成され得る。さらに、ボットは、特定の能力のために構成され得る。能力の例は、データベースレコードを更新すること、ユーザに更新を提供すること、ユーザに関する追加のデータをエージェントに提供すること、ユーザのインテントを決定することおよびインテントに基づいてユーザを宛先システムにルーティングすること、ユーザと通信しているエージェントに対する応答を予測または提案すること、1つまたは複数の追加のボットまたはエージェントを含むように通信セッションを段階的に拡大させること(escalating)、ならびに他の好適な能力を含み得る。いくつかの実装形態では、ボットが、(例えば、チャット対応インターフェースを使用して)通信セッション中に(例えば、ユーザによって操作される)ネットワークデバイスと通信している間に、通信サーバが、ボットを端末デバイスに切り替えることを自動的かつ動的に決定し得る。例えば、ボットは、ある特定のタスク(例えば、ユーザに関連付けられたデータベースレコードを更新すること)に関してユーザと通信し得、一方、端末デバイスは、(例えば、技術的問題を解決するために、通信チャネルを使用して通信する等)より困難なタスクについてユーザと通信し得る。
[0093]いくつかの実装形態では、通信セッション中に、ボットと端末デバイスとの間で切り替えるかどうかを決定することは、通信セッションにおけるメッセージの、1つまたは複数の特性の分析に基づき得る。さらに、動的センチメントパラメータが、メッセージ、会話、エンティティ、エージェント等のセンチメントを表すために生成され得る。例えば、動的センチメントパラメータが、ユーザがボットに不満を抱いていることを示す場合、システムは、生身のエージェントがユーザと通信し得るように、ボットを端末デバイスに自動的に切り替え得る。あらゆる目的のために、その開示全体が参照により本明細書に組み込まれている、2016年6月2日に出願された米国特許出願第15/171,525号を参照されたい。いくつかの例では、ボットと端末デバイスとの間で切り替えるかどうかを決定することは、ユーザからのプロンプトなしで実行され得る。決定は、通信セッション(例えば、チャット)における現在のメッセージの特性、以前の通信セッションにおいてユーザによって送信された以前のメッセージの特性、会話における複数のメッセージにわたる特性(例えば、センチメント)の軌跡、またはユーザに関連付けられた追加の情報(例えば、プロファイル情報、選好情報、およびユーザに関連付けられた他の好適な情報)を含む、任意の数のファクタに基づいて、通信サーバにおいて自動的に実行され得る。
[0094]図7は、通信セッション中にメッセージをルーティングするために外部システムを統合するためのシステムのブロック図を示す。いくつかの実装形態では、システムは、ユーザ703と、チケッティングシステム(ticketing system)705と、チケッティングシステムアダプタ710と、コネクタアプリケーション715と、通信サーバ720と、端末デバイス727と、エージェント730と、ボット725と、を含み得る。いくつかの実装形態では、ボット725は、本明細書でさらに説明されるように、規則723(すなわち、規則データベースに記憶されている)および履歴データ724と動作可能に通信状態にあり(in operative communication)得る。図7に例示されるコンポーネントは、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、セルラネットワーク、これらの組合せ、および/または同様のものを含む、任意の好適なネットワークを介して接続され得る。
[0095]ユーザ703は、チケッティングシステム705にアクセスし得る。ユーザ703は、チケッティングシステム705がチケット、すなわち、問題チケットをオープンすることを必要とし得る、問題、苦情、または問い合わせを有し得る。問題チケットは、発端から解決まで追跡され得るメッセージであり得る。いくつかの実施形態では、チケッティングシステム705は、図7に示されるシステムの他のコンポーネントの外部に存在する外部システムであり得る。チケッティングシステム705は、独立して、それ自体の規則、言語、およびプロシージャに従って動作し得る。
[0096]図7に示されるシステムの他のコンポーネントとインターフェースするために、チケッティングシステム705は、チケッティングシステムアダプタ710を使用し得る。チケッティングシステムアダプタ710は、チケッティングシステム705が、図7に示されるシステムの他のコンポーネントのうちの1つまたは複数とインターフェースすることを容易にするように適合されたハードウェアおよび/またはソフトウェアコンポーネントであり得る。同様に、コネクタアプリケーション715は、チケッティングシステム705によって渡される通信、チケット、およびメッセージを、通信サーバ720によって理解可能および/または使用可能なフォーマットおよびモードに適合させるために使用され得る。その意味で、コネクタアプリケーション715は、チケッティングシステムアダプタ710と通信サーバ720との間のブリッジとして機能し得る。
[0097]チケッティングシステム705に関して示されおよび説明されているが、図7に例示されるシステムは、任意の外部システムに関して、本明細書で説明される動作に関して完全に機能的であり得ることが企図される。例えば、チケッティングシステム705は、代わりに、顧客関係管理(CRM)システム等の、特定のフォーマットでメッセージを交換するソーシャルネットワーキングシステムまたはその他任意の外部システムであり得る。これらのメッセージは、図7に例示されるシステムによって使用可能なフォーマットに変換され、それに応じて処理され得る。
[0098]通信サーバ720は、少なくとも1つの記憶デバイスを有する1つまたは複数のプロセッサを有するサーバであり得、本明細書で説明される方法および技法を実行するように構成され得る。例えば、通信サーバ720は、(ユーザ703と通信状態にある)チケッティングシステム705と、(エージェント730によって操作される)端末デバイス727との間のメッセージ交換および通信セッションを管理し得る。通信サーバ720は、チケッティングシステム705と、端末デバイス727と、ボット725との間に通信チャネルを確立し得、これにより、メッセージが、チケットの解決を容易にするために、エンティティ間で交換され得る。しかしながら、本開示は、通信セッション中のメッセージの交換に限定されない。ビデオ通信(例えば、ビデオフィード)およびオーディオ通信(例えば、ボイスオーバーIP接続)等の、他の形態の通信が、通信セッションによって容易にされ得る。加えて、通信サーバ720は、プラットフォームに関連付けられ得る。クライアント(例えば、プラットフォームに対する外部システム)は、プラットフォームを使用してそれらの内部通信システム内にボットを配備し得る。いくつかの例では、クライアントは、プラットフォームにおいて独自のボットを使用し得、これは、クライアントが、本明細書で説明される方法および技法を、それらの内部通信システムへと実装することを可能にする。
[0099]いくつかの実装形態では、通信サーバ720は、チケッティングシステム705とボット725との間に通信セッションを確立し得る。ボット725は、実行されると、チケッティングシステム705と自律的に通信するように構成されたコードであり得る。例えば、ボット725は、チケッティングシステム705を用いてユーザ703によって開始されたチケットまたはメッセージに基づいて、取るべきアクションを自動的に決定するボットであり得る。これは、例えば、機械学習または人工知能に基づき得る。例えば、機械学習モデルまたは人工知能は、サンプルデータセットが、入力(例えば、サンプルチケットまたはメッセージ)と所望の出力(例えば、取るべきアクション)とのペアリングを備える、教師ありトレーニング技法を使用してトレーニングされ得る。サンプル入力は、サンプル入力に応答して取るべきアクションを生成するために、機械学習モデルまたは人工知能によって利用され得る。これらのアクションは、機械学習モデルまたは人工知能の誤差を決定するために、サンプルデータセットからの所望のアクションと比較され得る。この誤差に基づいて、機械学習モデルまたは人工知能のモデル係数が更新され得、更新された機械学習モデルまたは人工知能が結果として得られる。このプロセスは、結果として生じた誤差が精度閾値内になるまで継続し得、これにより、機械学習モデルまたは人工知能は、少なくとも事前定義されたまたは現在のレベルの精度を達成する出力(例えば、アクション)を生成する。一実施形態では、サンプルデータセットは、以前に受信されたメッセージと、メッセージに応答して実行された対応するアクションと、を備える履歴データを含み得る。さらに、機械学習モデルまたは人工知能は、取得されたメッセージから識別されたインテントに基づいて実行されるべきアクションを選択するための1つまたは複数のパラメータを定義する規則のセットに従って、プログラムまたは実装され得る。アクションは、解決を容易にするために、端末デバイス727を介してエージェント730にチケットまたはメッセージをルーティングすること、(例えば、ボット725によって直接的に、請求書の支払、住所変更等を容易にすることによって)チケットの自動化された解決を容易にすること、等を含み得る。
[00100]ボット725は、1つまたは複数の規則723に基づいて、取るべきアクションを決定し得る。規則723は、メッセージのコンテンツに基づいて、特定のメッセージがどのように処理されるかを定義し得る。いくつかの実施形態では、メッセージは、インテントを決定するために構文解析され得る。請求書の支払、住所変更、および人間の介入なしに自動的に実行され得る他のインテント等のある特定のインテントは、規則723に従って、ボット725によって自動的に処理および解決され得る。
[00101]ボット725はまた、特定のチケットまたはメッセージをどのように処理するかを決定するために、履歴データ724を参照し得る。例えば、ボット725は、メッセージからインテントを抽出し、次いで、履歴データ724において類似のインテントを有する以前のメッセージを探し得る。類似のメッセージが履歴データ724(または、類似のパターンを有するメッセージのグループ)にある場合、ボット725は、類似のメッセージがどのように解決されたかを決定し、現在のチケットを解決するために、類似のアクションを実行し得る。次いで、ボット725は、将来の問題をどのように解決するかに関する将来の決定において使用されるようにするために、現在のメッセージおよびアクション(ならびに、アクションが問題を解決したかどうか)を、履歴データ724に保存し得る。この意味で、ボット725は、モデルを構築し、規則723および履歴データ724を使用して自律的に問題を解決するために、人工知能(AI)および/または機械学習技法を実装し得る。
[00102]いくつかの実装形態では、ボット725は、1つまたは複数のソースによって定義され得る。例えば、データストア(図示せず)は、通信サーバ720のクライアントによって定義された(例えば、作成またはコーディングされた)ボットを表すコードを記憶し得る。例えば、独自のボットを定義したクライアントは、ボットを通信サーバ720にロードし得る。クライアントによって定義されたボットは、データストア(図示せず)に記憶され得る。データストアは、サードパーティシステムによって定義されたボットを表すコードを記憶し得る。例えば、サードパーティシステムは、独立系ソフトウェアベンダを含み得る。いくつかの実施形態では、追加のデータストア(図示せず)が、通信サーバ720に関連付けられたエンティティによって定義されたボットを表すコードを記憶し得る。例えば、エンティティによってコーディングされたボットは、通信サーバ720にロードされ得るか、または通信サーバ720によってアクセス可能であり得、これにより、ボットは実行され、ユーザと自律的に通信し得る。いくつかの実装形態では、通信サーバ720は、クラウドネットワーク(図示せず)を使用して、データストアのうちの任意のものに記憶されたボットにアクセスし得る。クラウドネットワークは、任意のネットワークであり得、インターネット等のオープンネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、キャンパスエリアネットワーク(CAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、ワイヤレスローカルエリアネットワーク(WLAN)、イントラネット、エクストラネット、または他のバックボーン等のプライベートネットワークを含み得る。
[00103]加えて、端末デバイス727は、エージェント730によって操作され得る。端末デバイス727は、任意のポータブルデバイス(例えば、携帯電話、タブレット、ラップトップ)または非ポータブルデバイス(例えば、電子キオスク、デスクトップコンピュータ等)であり得る。いくつかの事例では、エージェント730は、端末デバイス727上で実行されているブラウザを使用してウェブサイトにアクセスし得る。例えば、ウェブサイトは、端末デバイス727のブラウザ上で実行されているコンソールまたはプラットフォームを含み得る。エージェント730は、ブラウザを使用してプラットフォームにログインし得る。1つまたは複数のログイン認証情報(例えば、ユーザ名、パスワード等)が、エージェント730がコンソールまたはコンソールに含まれるウェブアプリケーションにアクセスすることを可能にする前に、エージェント730のアイデンティティを認証するために使用され得る。コンソールの例は、1つまたは複数のAPI(アプリケーションプログラミングインターフェース)を含むプラットフォーム、1つまたは複数の機能を含むダッシュボード、通信セッションを確立することまたはそれに参加することができる(プラグインをダウンロードすることを必要とせずに)ウェブブラウザ上で実行されているウェブホステッドアプリケーション、および他の好適なインターフェースを含み得る。さらに、コンソールは、実行され得る1つまたは複数のウェブアプリケーションまたは機能を含み得る。ウェブアプリケーションまたは機能は、ブラウザ、通信サーバ720、ローカルサーバ、リモートサーバ、または他の好適なコンピューティングデバイスにおいて実行され得る。例えば、ウェブアプリケーション、ネイティブアプリケーション、または機能は、エージェントが、ユーザと通信することおよびユーザと1つまたは複数のボットとの間の通信を閲覧することを可能にし得る。
[00104]いくつかの実装形態では、通信サーバ720は、特定の通信セッション中に、ボット725と端末デバイス727との間で動的に切り替えるように構成され得る。例えば、通信サーバ720は、チケッティングシステム705とボット725との通信セッションを容易にし得る。ボット725は、通信セッション中に、チケッティングシステム705と1つまたは複数のメッセージを交換することによって、チケッティングシステム705と自律的に通信するように構成され得る。通信サーバ720は、ボット725の代わりに、生身のエージェントがユーザ703と通信し得るように、ボット725を端末デバイス727に(または場合によってはその逆に)切り替えるかどうかを動的に決定し得る。いくつかの実装形態では、切替えは、チケッティングシステム705または端末デバイス727からのプロンプトなしで実行され得る。例えば、切替えは、ユーザ703に端末デバイスを要求するように促すことなく、チケッティングシステム705とボット725との間で交換されるメッセージのメッセージパラメータ(例えば、メッセージまたは一連のメッセージのセンチメントを表すスコア)に基づき得る。
[00105]いくつかの実装形態では、通信サーバ720は、ボット725とチケッティングシステム705との間で交換されるメッセージの特性に基づいて、ボット725と端末デバイス727との間で自動的に切り替えることを決定し得る。いくつかの事例では、特性(例えば、メッセージパラメータ)を決定するためにメッセージのテキストを分析することは、メッセージに関連付けられたテキスト属性または非テキスト属性の分析を含み得る。例えば、通信サーバ720は、チケッティングシステム705からのメッセージに含まれる1行または複数行のテキストを抽出し得る。通信サーバ720は、1行または複数行のテキストがアンカーを含むかどうかを識別し得る。アンカーの例は、極性(例えば、センチメントまたはインテント、「不満がある(frustrated)」という単語は、否定的な極性または不満がある極性に対応し、「嬉しい(happy)」という単語は、肯定的な極性に対応する等)に関連付けられたテキストの文字列を含む。例えば、「議論する(dispute)」という用語は、あるクライアントにとっては否定的であり得るが、第2のクライアントにとっては中立または肯定的であり得る。いくつかの事例では、アンカーは、教師あり機械学習技法を使用して動的に決定され得る。例えば、1つまたは複数のクラスタリングアルゴリズムが、記憶されたメッセージ内のパターンを見つけるために、記憶されたメッセージに対して実行され得る。クラスタ化されたメッセージは、アンカーを決定するために、さらにフィルタリングおよび評価され得る。さらに、識別されたアンカーの近くの1つまたは複数の単語が、増幅詞(amplifiers)について構文解析され得る。増幅詞の例は、例えば、「本当に~(really)」、「あまり~ではない(not really)」、「多少~(kind of)」等の、アンカーの極性に関連付けられた強度を増加または減少させる用語である。特性は、例えば、タイピングの速度、メッセージ中で使用される特殊文字(例えば、感嘆符、疑問符等)の数、(例えば、キーワード、文構造、繰り返された単語、句読文字および/または冠詞でない単語を識別することによる)メッセージの意味解析、(例えば、選択された1つまたは複数のカテゴリを有する)ユーザ入力、および/またはメッセージ関連の統計値(例えば、応答レイテンシ)を含み得る。
[00106]いくつかの実装形態では、通信サーバ720および/またはボット725は、チケッティングシステム705から受信されるメッセージに対する応答を推奨または予測し得る。例えば、通信サーバ720は、メッセージ推奨システムを含み得、これは、チケッティングシステム705から受信されたメッセージを評価し、それらの受信されたメッセージに対する応答を推奨するために、機械学習モデルを使用し得る。メッセージ推奨システムは、エージェントがユーザ703と通信するのを支援するために、推奨メッセージのセットを端末デバイス727上に表示し得る。
[00107]図8は、いくつかの実施形態による、外部システムを内部通信と統合するためのシステムのブロック図を示す。図8に例示されるシステムは、ユーザ805と、通信サーバ810と、端末デバイス812と、エージェント814と、ボット815と、規則817と、履歴データ819と、アダプタ820と、チケッティングシステム825と、チケット830と、を含む。図8に例示されるシステムのエンティティおよびコンポーネントは、図7に関して例示および説明されたシステムと同様に動作する。
[00108]しかしながら、図8では、ユーザ805は、通信サーバ810とのメッセージを直接開始し得る。通信サーバ810は、このメッセージをボット815にルーティングし得、それは、アダプタ820を介して、メッセージをチケッティングシステム825にルーティングし得る。チケッティングシステム825は、図8に示されるシステムにわたってメッセージを解決まで追跡するために使用され得る、1つまたは複数のチケット830を作成し得る。
[00109]図9は、機械学習技法を使用してエンドポイント選択を向上させるためのネットワーク環境900を表すブロック図を示す。ネットワーク環境900は、チケッティングシステム905と、通信サーバ910と、ボット915と、端末デバイス920と、を含み得る。通信サーバ910は、チケッティングシステム905と、少なくとも1つのボット915および端末デバイス920とが通信することを可能にする通信チャネルの確立を容易にし得る。
[00110]通信サーバ910は、インテリジェントルーティングシステム925と、メッセージ推奨システム930と、メッセージデータストア935と、を含み得る。インテリジェントルーティングシステム925およびメッセージ推奨システム930の各々は、ある特定の動作を実施するために命令を実行する、プロセッサとメモリとを有する1つまたは複数のコンピューティングデバイスを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、チケッティングシステムから受信された通信を適切な宛先にインテリジェントにルーティングするように構成されたボットであり得る。インテリジェントルーティングシステム925は、1つまたは複数の機械学習技法または人工知能技法に、メッセージをインテリジェントにルーティングすることを行わせるコードを実行するように構成された1つまたは複数のプロセッサを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、ネットワークデバイス905から受信されたメッセージに関連付けられた宛先を予測するモデルをトレーニングするために、1つまたは複数の機械学習技法を実行し得る。
[00111]非限定的な例として、インテリジェントルーティングシステム925は、通信サーバ910(例えば、ユーザが、様々なデバイスにわたって互いに通信することを可能にするように構成されたネイティブアプリケーション)によって確立または容易にされた通信チャネルを通じて、チケッティングシステム905からメッセージを受信し得る。インテリジェントルーティングシステム925は、上記で説明されたある特定の実施形態に従って、到来するメッセージを評価し得る。例えば、インテリジェントルーティングシステム925は、トレーニングされた機械学習モデルを使用して、受信されたメッセージに含まれるコンテンツ(例えば、テキスト、オーディオクリップ、画像、エモティコン、または他の好適なコンテンツ)を評価し得る。メッセージのコンテンツは、予測された宛先(例えば、特定の端末デバイスまたはボット)を生成するために、機械学習モデルに入力され得る。機械学習モデルは、ネットワークデバイス905から受信されるフィードバック信号940に基づいて、連続的にトレーニングされ得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、予測された宛先についてネットワークデバイス905からの確認応答を要求し得る。非限定的な例として、インテリジェントルーティングシステム925は、機械学習技法を使用してメッセージを評価し得、評価の結果は、ボット915がメッセージについての宛先であるという予測を含み得る。確認するために、インテリジェントルーティングシステム925は、フィードバック信号940を自動的に要求し得る。例えば、フィードバック信号940は、チケッティングシステム905に対して、ボット915がメッセージについての正しい宛先であるかどうか(例えば、「技術サポートが正しい宛先ですか?」)を確認応答することを求める要求を含み得る。チケッティングシステム905が、ボット915が正しい宛先(例えば、ネットワークデバイス905を操作しているユーザによって意図された宛先)であるという確認応答を送信した場合には、インテリジェントルーティングシステム925は、受信されたメッセージどおりのコンテンツまたはそれと類似のコンテンツ(例えば、コンテンツにおいて10パーセント差等の、類似性の閾値)を含む将来のメッセージが、ボット915にルーティングされるべきであることを予測するように、機械学習モデルをトレーニングし得る。しかしながら、インテリジェントルーティングシステム925が、ボット915が受信されたメッセージについての正しいまたは意図された宛先ではなく、むしろ端末デバイス920が正しいまたは意図された宛先であったことを示すフィードバック信号940を受信した場合、インテリジェントルーティングシステム925は、受信されたメッセージどおりのコンテンツまたはそれと類似のコンテンツを含む将来のメッセージが、(ボット915の代わりに)端末デバイス920にルーティングされることになるように、機械学習モデルをトレーニングし得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、将来のメッセージを端末デバイス920にルーティングするように機械学習モデルを直ちに更新またはトレーニングしない場合があり、むしろ、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じまたはそれと類似のコンテンツを有する全ての将来のメッセージを端末デバイス920にルーティングする前に、ボット915への閾値数の正しくないルーティングまで待ち得る。非限定的な例として、インテリジェントルーティングシステム925は、ネットワークデバイスが、ボット915が正しいまたは意図された宛先ではないことを示すフィードバック信号を送信してきた5つの事例の後に、(ボット915にルーティングされるべきであると予測されていた)将来のメッセージを、ボット915の代わりに端末デバイス920にルーティングし始め得る。
[00112]いくつかの実施形態では、インテリジェントルーティングシステム925は、メッセージ中の特定の要求を処理するための受信された入札(bids)に基づいて、所与のメッセージをどこにルーティングするかを選択し得る。インテリジェントルーティングシステム925は、異なるサービスにインテントをブロードキャストし、誰が要求を処理することに入札することを希望しているかを決定し得る。入札当事者は、要求を成功裏に処理するその信頼度(level of confidence)と、要求の処理を実行する計画とで応答し得る。インテリジェントルーティングシステム925は、入札当事者からの全ての応答を評価し、機械学習ポリシーに基づいて、所与のメッセージに対してどの入札当事者を使用すべきかを決定し得る。
[00113]メッセージデータストア935は、1つまたは複数のネットワークデバイスから過去に受信された(例えば、全てではないが)いくつかまたは全てのメッセージを記憶し得る。さらに、メッセージデータストア935はまた、ネットワークデバイスとの以前の通信セッション中に端末デバイスまたはボットによって送信されたいくつかまたは全てのメッセージを記憶し得る。メッセージデータストア935はまた、通信セッション中にネットワークデバイスによってボットに送信されたいくつかまたは全てのメッセージを記憶し得る。さらに、メッセージデータストア935は、通信セッション中にボットによってネットワークデバイスに送信されたいくつかまたは全てのメッセージを記憶し得る。いくつかの実装形態では、メッセージデータストア935は、通信サーバ910によって処理された(例えば、それによって送信された、またはそれにおいて受信された)全てのメッセージのデータベースであり得る。
[00114]メッセージ推奨システム930は、メッセージデータストア935に記憶されたメッセージのデータベースを分析し得る。いくつかの実装形態では、メッセージ推奨システム930は、1つまたは複数の機械学習アルゴリズムまたは人工知能アルゴリズムを使用して、メッセージデータストア935に記憶されたメッセージを評価し得る。例えば、メッセージ推奨システム930は、メッセージデータストア935に記憶されたメッセージのデータベースに対して、K平均クラスタリング(K-means clustering)、平均シフトクラスタリング、雑音を伴うアプリケーションの密度ベースの空間クラスタリング(DBSCAN:Density-Based Spatial Clustering of Applications with Noise)クラスタリング、混合ガウスモデル(GMM:Gaussian Mixture Models)を用いた期待値最大化(EM:Expectation-Maximization)クラスタリング、および他の好適な機械学習アルゴリズム等の、1つまたは複数のクラスタリングアルゴリズムを実行し得る。いくつかの実装形態では、リカレント型ニューラルネットワーク(RNN:recurrent neural network)または畳み込みニューラルネットワーク(CNN:convolutional neural network)が、エージェントを支援するために、応答メッセージを予測するために使用され得る。いくつかの実装形態では、メッセージ推奨システム930は、通信セッション中にネットワークデバイスから受信される到来するメッセージに対する応答を予測するために、サポートベクターマシン(SVM:support vector machines)、教師あり、半教師あり、アンサンブル技法、または教師なし機械学習技法を使用して、全ての以前のメッセージを評価し得る。
[00115]例えば、メッセージ推奨システム930は、ネットワークデバイスから受信されたメッセージ(または、ボットもしくは端末デバイスからの、通信サーバ910において受信されたメッセージ)のコンテンツを評価し、評価の結果をメッセージデータストア935に記憶された以前のメッセージの1つまたは複数のクラスタと比較し得る。クラスタが識別されると、メッセージ推奨システム930は、信頼度閾値に基づいて、最も関連性の高い応答メッセージを識別し得る。例えば、(例えば、通信サーバ910においてチケッティングシステム905から受信された)到来するメッセージは、到来するメッセージのコンテンツに基づく技術的問題に対応し得る。メッセージ推奨システム930は、到来するメッセージのコンテンツの評価(例えば、テキスト評価)に基づいて、到来するメッセージが技術的問題に対応することを識別し得る。いくつかの実施形態では、メッセージ推奨システム930は、CRMメッセージを評価するために、人工知能および機械学習を使用し得る。メッセージ推奨システム930は、技術的問題に関連付けられたメッセージのクラスタを識別するために、メッセージデータストア935にアクセスし得る。メッセージ推奨システム930は、信頼度閾値に基づいて、メッセージのクラスタ内の1つまたは複数の応答メッセージを選択し得る。非限定的な例として、信頼度アルゴリズムが、信頼度スコアを生成するために実行され得る。信頼度スコアは、パーセンテージが低いほど、到来するメッセージに対して応答が良好な予測である可能性が低くなり、パーセンテージが高いほど、到来するメッセージに対して応答が良好な予測である可能性が高くなる、パーセンテージ値であり得る。最小信頼度閾値は、各発見されたパターンに関連付けられた確実性または信用性の尺度として定義され得る。さらに、信頼度アルゴリズムの例は、アプリオリアルゴリズム(Apriori Algorithm)、2つのデータセット間の類似性を示す類似性アルゴリズム、および他の好適な信頼度アルゴリズムであり得る。
[00116]図10は、いくつかの実施形態による、外部システム統合のための例となるプロセスを示す。ステップ1005において、メッセージが、メッセージングシステムから受信され得る。メッセージは、ユーザに関連付けられ得る。メッセージは、ユーザが解決したい問題を表し得る。例えば、メッセージは、「私の注文品に欠陥がありました」と述べ得る。メッセージは、本明細書で説明されたように、ネットワークデバイスを介してメッセージングシステムに渡されたものであり得る。メッセージングシステムは、通信のための指定されたフォーマットまたは手段を有する任意の外部またはサードパーティシステムであり得る。
[00117]ステップ1010において、メッセージは、問題に関連付けられたインテントを識別するために分析され得る。インテントは、問題および可能な解決に対応し得る。例えば、「私の注文品に欠陥がありました」というメッセージに対して、インテントは、「欠陥のある注文品、私は、交換または払戻しを希望しています」として識別され得る。
[00118]ステップ1015において、類似の問題が異なるメッセージにおいて表されているかどうかが決定され得る。例えば、欠陥のある注文品を識別する別のメッセージが以前に受信されているかどうかを調べるために、以前のメッセージからのデータと識別されたインテントとを含む履歴データベースがアクセスされ得る。ステップ1020において、解決が類似の問題に関連付けられているかどうかが決定され得る。解決が類似の問題に関連付けられている場合、それは、ステップ1025において、識別および分析され得る。
[00119]ステップ1030において、取るべきアクションが自動的に決定され得る。取るべきアクションを自動的に決定することは、インテントおよび分析された解決に規則および人工知能を適用することを含み得る。いくつかの実施形態では、人工知能を適用することは、ユーザからの以前のチケットを分析することを含み得る。いくつかの実施形態では、人工知能を適用することは、会話のトーンを分析することを含み得る。
[00120]アクションは、問題の可能な解決についての増大された可能性に関連付けられ得る。例えば、以前の類似のメッセージの解決は、現在のメッセージに対する適切な解決を決定するために使用され得る。以前のメッセージに関して解決が良好であった場合、現在のメッセージに関しても解決が良好である可能性が高くなり得る。いくつかの実施形態では、プラグインが、取るべきアクションを自動的に決定するために使用され得る。
[00121]ステップ1036において、アクションの実行が容易にされ得る。いくつかの実施形態では、アクションは、メッセージングシステム内で実行され得る。いくつかの実施形態では、アクションに対応する情報が記憶され得、この情報および人工知能が、将来のアクションを決定するために使用され得る。いくつかの実施形態では、アクションは、メッセージをエージェントにルーティングすることを含み得る。
[00122]特定の詳細は、実施形態の完全な理解を提供するために上記説明で与えられた。しかしながら、これら実施形態は、これらの特定の詳細なしに実施され得ることが理解される。例えば、これら実施形態を不要な詳細で曖昧にしないために、回路はブロック図として示され得る。他の事例では、周知の回路、プロセス、アルゴリズム、構造、および技法が、これら実施形態を曖昧にすることを避けるために、不要な詳細なしで示され得る。
[00123]上記で説明された技法、ブロック、ステップ、および手段の実装は、様々な方法で行われ得る。例えば、これらの技法、ブロック、ステップ、および手段は、ハードウェア、ソフトウェア、またはそれらの組合せで実装され得る。ハードウェア実装の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、上記で説明された機能を実行するように設計された他の電子ユニット、および/またはそれらの組合せ内で実装され得る。
[00124]また、実施形態の一部は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として図示されるプロセスとして説明され得ることに留意されたい。フローチャートは、順次プロセスとして動作を説明し得るが、動作の多くは、並行してまたは同時並行に実行され得る。加えて、動作の順序は並べ換えられ得る。プロセスは、その動作が完了したときに終了するが、図面に含まれていない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。プロセスが関数に対応するとき、その終了は、関数が呼出し関数または主関数に戻ることに対応する。
[00125]さらに、実施形態は、ハードウェア、ソフトウェア、スクリプト言語、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、および/またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、スクリプト言語、および/またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体等の機械可読媒体に記憶され得る。コードセグメントまたは機械実行可能命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、スクリプト、クラス、または命令、データ構造、および/もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、および/またはメモリコンテンツを渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データ等は、メモリ共有、メッセージパッシング、チケットパッシング、ネットワーク送信等を含む、任意の好適な手段を介して渡され得るか、転送され得るか、または送信され得る。
[00126]ファームウェアおよび/またはソフトウェア実装の場合、手法は、本明細書で説明された機能を実行するモジュール(例えば、プロシージャ、関数等)を用いて実装され得る。命令を有形に具現化する任意の機械可読媒体が、本明細書で説明された手法を実装する際に使用され得る。例えば、ソフトウェアコードは、メモリに記憶され得る。メモリは、プロセッサの内部またはプロセッサの外部に実装され得る。本明細書で使用される場合、「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他の記憶媒体を指し、いかなる特定のタイプのメモリもしくはメモリの数、またはメモリが記憶される媒体のタイプにも限定されるべきでない。
[00127]さらに、本明細書で開示されたように、「記憶媒体」、「記憶」、または「メモリ」という用語は、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気RAM、コアメモリ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のメモリを表し得る。「機械可読媒体」という用語は、限定はしないが、(1つまたは複数の)命令および/またはデータを含むかまたは搬送する、ポータブルまたは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、および/または記憶すること可能な様々な他の記憶媒体を含む。
[00128]本開示の原理は、特定の装置および方法に関連して上記で説明されたが、この説明は、本開示の範囲の限定としてではなく、単に例としてなされたものであることを明確に理解されたい。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンピュータ実装方法であって、
メッセージングシステムからメッセージを受信すること、ここにおいて、前記メッセージは、ユーザに関連付けられており、前記メッセージは、前記ユーザが解決したい問題を表す、と、
前記問題に関連付けられたインテントを識別するために、前記メッセージを分析すること、ここにおいて、前記インテントは、前記問題および可能な解決に対応する、と、
類似の問題が異なるメッセージにおいて表されているかどうかを決定することと、
前記類似の問題に関連付けられた解決を決定することと、
前記関連付けられた解決を分析することと、
取るべきアクションを自動的に決定すること、ここにおいて、前記アクションを自動的に決定することは、前記インテントおよび前記分析された解決に規則および人工知能を適用することを含み、前記アクションは、前記問題の解決についての増大された可能性に関連付けられている、と、
前記アクションの実行を容易にすることと、
を備えるコンピュータ実装方法。
[C2]
プラグインが、前記取るべきアクションを自動的に決定するために使用される、C1に記載のコンピュータ実装方法。
[C3]
前記アクションは、前記メッセージングシステム内で実行される、C1に記載のコンピュータ実装方法。
[C4]
前記アクションに対応する情報を記憶することと、
将来のアクションを決定するために、前記情報および前記人工知能を使用することと、 をさらに備える、C1に記載のコンピュータ実装方法。
[C5]
人工知能を適用することは、前記ユーザからの以前のチケットを分析することを含む、C1に記載のコンピュータ実装方法。
[C6]
人工知能を適用することは、会話のトーンを分析することを含む、C1に記載のコンピュータ実装方法。
[C7]
前記アクションは、前記メッセージをエージェントにルーティングすることを含む、C1に記載のコンピュータ実装方法。
[C8]
命令を含む、非一時的な機械可読記憶媒体に有形に具現化されたコンピュータプログラム製品であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
メッセージングシステムからメッセージを受信すること、ここにおいて、前記メッセージは、ユーザに関連付けられており、前記メッセージは、前記ユーザが解決したい問題を表す、と、
前記問題に関連付けられたインテントを識別するために、前記メッセージを分析すること、ここにおいて、前記インテントは、前記問題および可能な解決に対応する、と、
類似の問題が異なるメッセージにおいて表されているかどうかを決定することと、
前記類似の問題に関連付けられた解決を決定することと、
前記関連付けられた解決を分析することと、
取るべきアクションを自動的に決定すること、ここにおいて、自動的に決定することは、前記インテントおよび前記分析された解決に規則および人工知能を適用することを含み、前記アクションは、前記問題の解決についての増大された可能性に関連付けられている、と、
前記アクションの実行を容易にすることと、
を含む動作を実行させる、コンピュータプログラム製品。
[C9]
プラグインが、前記取るべきアクションを自動的に決定するために使用される、C8に記載のコンピュータプログラム製品。
[C10]
前記アクションは、前記メッセージングシステム内で実行される、C8に記載のコンピュータプログラム製品。
[C11]
前記動作は、
前記アクションに対応する情報を記憶することと、
将来のアクションを決定するために、前記情報および前記人工知能を使用することと、 をさらに含む、C8に記載のコンピュータプログラム製品。
[C12]
人工知能を適用することは、前記ユーザからの以前のチケットを分析することを含む、C8に記載のコンピュータプログラム製品。
[C13]
人工知能を適用することは、会話のトーンを分析することを含む、C8に記載のコンピュータプログラム製品。
[C14]
前記アクションは、前記メッセージをエージェントにルーティングすることを含む、C8に記載のコンピュータプログラム製品。
[C15]
システムであって、
1つまたは複数のプロセッサと、
命令を含む1つまたは複数の非一時的な機械可読記憶媒体と、
を備え、前記命令は、前記1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに、
メッセージングシステムからメッセージを受信すること、ここにおいて、前記メッセージは、ユーザに関連付けられており、前記メッセージは、前記ユーザが解決したい問題を表す、と、
前記問題に関連付けられたインテントを識別するために、前記メッセージを分析すること、ここにおいて、前記インテントは、前記問題および可能な解決に対応する、と、 類似の問題が異なるメッセージにおいて表されているかどうかを決定することと、 前記類似の問題に関連付けられた解決を決定することと、
前記関連付けられた解決を分析することと、
取るべきアクションを自動的に決定すること、ここにおいて、前記アクションを自動的に決定することは、前記インテントおよび前記分析された解決に規則および人工知能を適用することを含み、前記アクションは、前記問題の解決についての増大された可能性に関連付けられている、と、
前記アクションの実行を容易にすることと、
を含む動作を実行させる、システム。
[C16]
プラグインが、前記取るべきアクションを自動的に決定するために使用される、C15に記載のシステム。
[C17]
前記アクションは、前記メッセージングシステム内で実行される、C15に記載のシステム。
[C18]
前記動作は、
前記アクションに対応する情報を記憶することと、
将来のアクションを決定するために、前記情報および前記人工知能を使用することと、 をさらに含む、C15に記載のシステム。
[C19]
人工知能を適用することは、前記ユーザからの以前のチケットを分析することを含む、C15に記載のシステム。
[C20]
人工知能を適用することは、会話のトーンを分析することを含む、C15に記載のシステム。