IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セールスフォース ドット コム インコーポレイティッドの特許一覧

特許7383747グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法
<>
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図1
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図2
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図3
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図4
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図5
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図6
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図7
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図8
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図9
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図10
  • 特許-グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-10
(45)【発行日】2023-11-20
(54)【発明の名称】グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法
(51)【国際特許分類】
   H04L 51/046 20220101AFI20231113BHJP
   G06F 3/0482 20130101ALI20231113BHJP
   G06F 3/0484 20220101ALI20231113BHJP
【FI】
H04L51/046
G06F3/0482
G06F3/0484
【請求項の数】 16
(21)【出願番号】P 2022046265
(22)【出願日】2022-03-23
(62)【分割の表示】P 2021126393の分割
【原出願日】2019-05-10
(65)【公開番号】P2022104926
(43)【公開日】2022-07-12
【審査請求日】2022-03-23
(31)【優先権主張番号】62/674,491
(32)【優先日】2018-05-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/176,883
(32)【優先日】2018-10-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/206,542
(32)【優先日】2018-11-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】スヘイル サルマン
(72)【発明者】
【氏名】サリヴァン ブルース
(72)【発明者】
【氏名】アン パトリシア
(72)【発明者】
【氏名】チェ ヘジョン
(72)【発明者】
【氏名】シェティ プラジュナ
(72)【発明者】
【氏名】フォン アンドルー
(72)【発明者】
【氏名】ドン マイケル
(72)【発明者】
【氏名】ソウォル ステファン
(72)【発明者】
【氏名】アキン トルガ
(72)【発明者】
【氏名】アガーワル プラネイ
【審査官】小林 義晴
(56)【参考文献】
【文献】特開2018-032200(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 51/00
G06F 3/0484
G06F 3/0482
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
グループベースコミュニケーションプラットフォームのクライアントデバイスを介して、前記グループベースコミュニケーションプラットフォームに関連付けられたユーザーインターフェイスを提示することであって、
前記ユーザーインターフェイスは、ユーザーインターフェイス要素を含み、
前記ユーザーインターフェイスとのインタラクションは、外部システムに関連付けられた1つ以上のコマンドのうちの少なくとも1つのコマンドを起動する、
ユーザーインターフェイスを提示することと、
前記ユーザーインターフェイス要素とのインタラクションを表すデータを受け取ることに少なくとも部分的に基づいて、ペイロードデータが前記外部システムに提供されるようにすることであって、
前記ペイロードデータは、前記1つ以上のコマンドのうち、前記インタラクションを介して起動されたコマンドに関連付けられている、
ペイロードデータが前記外部システムに提供されるようにすることと、
前記ペイロードデータが前記外部システムに提供されるようにすることに少なくとも部分的に基づいて、前記ペイロードデータに対する応答を前記外部システムから受け取ることと、
前記ユーザーインターフェイスを介してインタラクティブダイアログが提示されるようにすることであって、
前記インタラクティブダイアログは、前記コマンドに関連付けられた処理アクションを実行するためのデータが前記外部システムに提供されるように、前記クライアントデバイスのユーザーに対してプロンプトするよう構成される、
インタラクティブダイアログが提示されるようにすることと
を含むコンピュータによって実行される方法であって、
前記ユーザーインターフェイス要素は、
前記グループベースコミュニケーションプラットフォームのコミュニケーションチャンネル中のメッセージ、及び
前記グループベースコミュニケーションプラットフォームに関連付けられたサーチインターフェイス
のうちの少なくとも1つに関連付けられている、
コンピュータによって実行される方法
【請求項2】
前記外部システムの前記ペイロードデータは、前記外部システムに対応するエンドポイントに関連付けられ、
前記コマンドに関連付けられた前記ペイロードデータが前記外部システムに提供されるようにすることは、前記ペイロードデータを、前記外部システムに関連付けられた前記エンドポイントに提供することを含む
請求項1に記載のコンピュータによって実行される方法。
【請求項3】
前記ペイロードデータが前記外部システムに提供されるようにすることは、前記外部システムに、前記コマンドに関連付けられた前記処理アクションを開始させる
請求項1に記載のコンピュータによって実行される方法。
【請求項4】
前記ペイロードデータは、前記コマンドが関連付けられているメッセージを含む
請求項1に記載のコンピュータによって実行される方法。
【請求項5】
前記ユーザーインターフェイス要素との前記インタラクションを表すデータを受け取ることに少なくとも部分的に基づいて、コマンドのリストが前記ユーザーインターフェイスを介して提示されるようにすることであって、
前記コマンドのリストは、前記1つ以上のコマンドと、1つ以上の他の外部システムに関連付けられた1つ以上の他のコマンドとを含む、
コマンドのリストが前記ユーザーインターフェイスを介して提示されるようにすることと、
前記コマンドの選択を受け取ることであって、
前記ペイロードデータは、前記コマンドの前記選択を受け取ることに少なくとも部分的に基づいて、前記外部システムに提供される、
前記コマンドの選択を受け取ることと
をさらに含む、請求項1に記載のコンピュータによって実行される方法。
【請求項6】
前記コマンドに関連付けられた前記処理アクションが完了したという表示を、前記外部システムから受け取ることと、
前記コマンドに関連付けられた前記処理アクションが完了したということを示すメッセージが、コミュニケーションチャンネルに関連付けて提示されるようにすることと
をさらに含む、請求項1に記載のコンピュータによって実行される方法。
【請求項7】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行される時に、前記1つ以上のプロセッサに操作を実行させる命令を記憶する1つ以上の非一時的コンピュータ読み取り可能な媒体と
を備えるシステムであって、前記操作は、
グループベースコミュニケーションプラットフォームのクライアントデバイスを介して、前記グループベースコミュニケーションプラットフォームに関連付けられたユーザーインターフェイスを提示することであって、
前記ユーザーインターフェイスは、ユーザーインターフェイス要素を含み、
前記ユーザーインターフェイスとのインタラクションは、外部システムに関連付けられた1つ以上のコマンドのうちの少なくとも1つのコマンドを起動する、
ユーザーインターフェイスを提示することと、
前記ユーザーインターフェイス要素とのインタラクションを表すデータを受け取ることに少なくとも部分的に基づいて、ペイロードデータが前記外部システムに提供されるようにすることであって、
前記ペイロードデータは、前記1つ以上のコマンドのうち、前記インタラクションを介して起動されたコマンドに関連付けられている、
ペイロードデータが前記外部システムに提供されるようにすることと、
前記ペイロードデータが前記外部システムに提供されるようにすることに少なくとも部分的に基づいて、前記ペイロードデータに対する応答を前記外部システムから受け取ることと、
前記ユーザーインターフェイスを介してインタラクティブダイアログが提示されるようにすることであって、
前記インタラクティブダイアログは、前記コマンドに関連付けられた処理アクションを実行するためのデータが前記外部システムに提供されるように、前記クライアントデバイスのユーザーに対してプロンプトするよう構成される、
インタラクティブダイアログが提示されるようにすることと
を含む、システムであって、
前記ユーザーインターフェイス要素は、
前記グループベースコミュニケーションプラットフォームのコミュニケーションチャンネル中のメッセージ、及び
前記グループベースコミュニケーションプラットフォームに関連付けられたサーチインターフェイス
のうちの少なくとも1つに関連付けられている、
システム
【請求項8】
前記外部システムの前記ペイロードデータは、前記外部システムに対応するエンドポイントに関連付けられ、
前記コマンドに関連付けられた前記ペイロードデータが前記外部システムに提供されるようにすることは、前記ペイロードデータを、前記外部システムに関連付けられた前記エンドポイントに提供することを含む
請求項に記載のシステム。
【請求項9】
前記ペイロードデータが前記外部システムに提供されるようにすることは、前記外部システムに、前記コマンドに関連付けられた前記処理アクションを開始させる
請求項に記載のシステム。
【請求項10】
前記操作は、
前記ユーザーインターフェイス要素との前記インタラクションを表す前記データを受け取ることに少なくとも部分的に基づいて、コマンドのリストが前記ユーザーインターフェイスを介して提示されるようにすることであって、
前記コマンドのリストは、前記1つ以上のコマンドと、1つ以上の他の外部システムに関連付けられた1つ以上の他のコマンドとを含む、
コマンドのリストが前記ユーザーインターフェイスを介して提示されるようにすることと、
前記コマンドの選択を受け取ることであって、
前記ペイロードデータは、前記コマンドの前記選択を受け取ることに少なくとも部分的に基づいて、前記外部システムに提供される、
前記コマンドの選択を受け取ることと
をさらに含む、請求項に記載のシステム。
【請求項11】
前記操作は、
前記コマンドに関連付けられた前記処理アクションが完了したという表示を、前記外部システムから受け取ることと、
前記コマンドに関連付けられた前記処理アクションが完了したということを示すメッセージが、コミュニケーションチャンネルに関連付けて提示されるようにすることと
をさらに含む、請求項に記載のシステム。
【請求項12】
1つ以上のプロセッサによって実行される時に、前記1つ以上のプロセッサに操作を実行させる命令を記憶する1つ以上の非一時的コンピュータ読み取り可能な媒体であって、前記操作は、
グループベースコミュニケーションプラットフォームのクライアントデバイスを介して、前記グループベースコミュニケーションプラットフォームに関連付けられたユーザーインターフェイスを提示することであって、
前記ユーザーインターフェイスは、ユーザーインターフェイス要素を含み、
前記ユーザーインターフェイスとのインタラクションは、外部システムに関連付けられた1つ以上のコマンドのうちの少なくとも1つのコマンドを起動する、
ユーザーインターフェイスを提示することと、
前記ユーザーインターフェイス要素とのインタラクションを表すデータを受け取ることに少なくとも部分的に基づいて、ペイロードデータが前記外部システムに提供されるようにすることであって、
前記ペイロードデータは、前記1つ以上のコマンドのうち、前記インタラクションを介して起動されたコマンドに関連付けられている、
ペイロードデータが前記外部システムに提供されるようにすることと、
前記ペイロードデータが前記外部システムに提供されるようにすることに少なくとも部分的に基づいて、前記ペイロードデータに対する応答を前記外部システムから受け取ることと、
前記ユーザーインターフェイスを介してインタラクティブダイアログが提示されるようにすることであって、
前記インタラクティブダイアログは、前記コマンドに関連付けられた処理アクションを実行するためのデータが前記外部システムに提供されるように、前記クライアントデバイスのユーザーに対してプロンプトするよう構成される、
インタラクティブダイアログが提示されるようにすることと
を含む、1つ以上の非一時的コンピュータ読み取り可能な媒体であって、
前記ユーザーインターフェイス要素は、
前記グループベースコミュニケーションプラットフォームのコミュニケーションチャンネル中のメッセージ、及び
前記グループベースコミュニケーションプラットフォームに関連付けられたサーチインターフェイス
のうちの少なくとも1つに関連付けられている、
1つ以上の非一時的コンピュータ読み取り可能な媒体
【請求項13】
前記外部システムの前記ペイロードデータは、前記外部システムに対応するエンドポイントに関連付けられ、
前記コマンドに関連付けられた前記ペイロードデータが前記外部システムに提供されるようにすることは、前記ペイロードデータを、前記外部システムに関連付けられた前記エンドポイントに提供することを含む
請求項12に記載の1つ以上の非一時的コンピュータ読み取り可能な媒体。
【請求項14】
前記ペイロードデータが前記外部システムに提供されるようにすることは、前記外部システムに、前記コマンドに関連付けられた前記処理アクションを開始させる
請求項12に記載の1つ以上の非一時的コンピュータ読み取り可能な媒体。
【請求項15】
前記操作は、
前記ユーザーインターフェイス要素との前記インタラクションを表す前記データを受け取ることに少なくとも部分的に基づいて、コマンドのリストが前記ユーザーインターフェイスを介して提示されるようにすることであって、
前記コマンドのリストは、前記1つ以上のコマンドと、1つ以上の他の外部システムに関連付けられた1つ以上の他のコマンドとを含む、
コマンドのリストが前記ユーザーインターフェイスを介して提示されるようにすることと、
前記コマンドの選択を受け取ることであって、
前記ペイロードデータは、前記コマンドの前記選択を受け取ることに少なくとも部分的に基づいて、前記外部システムに提供される、
前記コマンドの選択を受け取ることと
をさらに含む、請求項12に記載の1つ以上の非一時的コンピュータ読み取り可能な媒体。
【請求項16】
前記操作は、
前記コマンドに関連付けられた前記処理アクションが完了したという表示を、前記外部システムから受け取ることと、
前記コマンドに関連付けられた前記処理アクションが完了したということを示すメッセージが、コミュニケーションチャンネルに関連付けて提示されるようにすることと
をさらに含む、請求項12に記載の1つ以上の非一時的コンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、米国出願シリアル番号16/206,542の優先権を主張し、これは、2018年10月31日に出願された米国出願シリアル番号16/176,883の継続出願であり、これは、2018年5月21日に出願された米国仮出願シリアル番号62/674,491の優先権を主張し、これらの全ては、それら全体がここで参照によって援用される。
【背景技術】
【0002】
少なくとも部分的に中央化されたメッセージングサーバーシステムを介して複数のクライアントデバイス及び外部システムの間でコミュニケーションインターフェイス内でメッセージをやりとりしたり、統合したりするためのシステムが提供されている。
【0003】
投入された努力、創意、及び革新を通して、そのようなシステムの多くの欠点は、本発明の実施形態による解決策を創出することによって解決されてきており、その多くの例が詳細にここで記載されている。
【発明の概要】
【課題を解決するための手段】
【0004】
さまざまな実施形態は、グループベースコミュニケーションプラットフォーム及び1つ以上の外部システムの間の実体的なインタラクションを可能にすることによって、グループベースコミュニケーションプラットフォームがそれら外部システム内でさまざまな機能を実行できるようにするシステム及び方法に関する。
【0005】
さまざまな実施形態は、外部アプリケーションシステム内でメッセージに基づいて処理アクションを実行するコンピュータで実現される方法に関する。ある実施形態では、前記方法は、グループベースコミュニケーションプラットフォームの1つ以上のプロセッサを介して、コンテクスチュアルデータ及びペイロードデータを含むコンテナを生成することであって、前記コンテクスチュアルデータは、処理アクションテーブル内に記憶されたデータに少なくとも部分的に基づいて生成され、(1)外部アプリケーションシステムによって実行されるべき処理アクション、及び(2)前記処理アクションをリクエストしているクライアントデバイスを特定するクライアントトークンを特定し、前記ペイロードデータは、前記グループベースコミュニケーションプラットフォームを介してやり取りされるメッセージを含む、コンテナを生成すること、前記グループベースコミュニケーションプラットフォームの前記1つ以上のプロセッサを介して、前記外部アプリケーションシステムにアクセス可能なプロキシエンドポイントに前記コンテナを提供することによって、前記外部アプリケーションシステムが前記コンテナ内のデータを取得し、前記ペイロードデータに少なくとも部分的に基づいて前記特定された処理アクションを実行できるようにすること、前記グループベースコミュニケーションプラットフォームの前記1つ以上のプロセッサを介して、前記外部アプリケーションシステムから応答を受け取ることであって、前記応答は、前記処理アクションをリクエストしている前記クライアントデバイスを特定する前記クライアントトークンを含む、応答を受け取ること、前記応答に少なくとも部分的に基づいて、前記クライアントデバイスにインタラクティブダイアログを表示させること、前記インタラクティブダイアログを介して前記クライアントデバイスから追加データを受け取ること、及び前記コンテナに関連付けられた前記プロキシエンドポイントに前記追加データを送信することによって、前記外部アプリケーションシステムが前記追加デー
タを利用して、前記特定された処理アクションを実行できるようにすることを含む。
【0006】
ある実施形態では、前記方法は、前記外部アプリケーションシステムから前記リクエストされた処理アクションの完了を示す確認応答を受け取ること、及び前記リクエストしているクライアントデバイスに確認メッセージを送信することをさらに含む。ある実施形態では、前記確認メッセージは、前記クライアントデバイスにメッセージとして送信される。さらに、さまざまな実施形態では、前記メッセージは、前記グループベースコミュニケーションプラットフォームを介してコミュニケーションチャンネル内の複数のクライアントデバイスの間で共有され、前記コミュニケーションチャンネルは、関連付けられたチャンネル識別子を有する。そのような実施形態では、前記方法は、前記クライアントデバイスに複数の処理アクションのキュレートされたリストを表示させることであって、前記キュレートされたリスト内に含まれる前記処理アクションは、チャンネル識別子に少なくとも部分的に基づいて選択される、キュレートされたリストを表示させること、及び実行されるべき前記処理アクションを選択する前記クライアントデバイスから入力を受け取ることをさらに含む。
【0007】
さらに、前記メッセージは、1つ以上の特性に関連付けられ得る。そのような実施形態では、前記方法は、前記クライアントデバイスに複数の処理アクションのキュレートされたリストを表示させることであって、前記キュレートされたリストに含まれる前記処理アクションは、前記メッセージに関連付けられた前記特性に少なくとも部分的に基づいて選択される、キュレートされたリストを表示させること、及び実行されるべき前記処理アクションを選択する前記クライアントデバイスから入力を受け取ることをさらに含む。さらに、メッセージに関連付けられた前記特性は、前記メッセージの送信ユーザー識別子を特定し、前記キュレートされたリスト内に含まれる前記処理アクションは、前記メッセージの前記送信ユーザー識別子に少なくとも部分的に基づいて選択される。ある実施形態では、前記メッセージは、テキストベースのメッセージ又はファイルオブジェクトのうちの少なくとも1つを含む。
【0008】
さまざまな実施形態は、外部アプリケーションシステム内でグループベースコミュニケーションプラットフォームを介して共有されたメッセージに基づいて処理アクションを実行するよう構成されたシステムに関する。ある実施形態では、前記グループベースコミュニケーションプラットフォームは、1つ以上のメッセージについて利用可能な1つ以上の処理アクションを特定する処理アクションテーブルを備える、1つ以上の非一時的メモリ記憶リポジトリ、及び1つ以上のプロセッサを備え、前記1つ以上のプロセッサは、全体として、メッセージ及び前記メッセージについての処理アクションの選択をクライアントデバイスから受け取ることであって、前記処理アクションは、前記処理アクションテーブルから選択される、選択を受け取ること、前記メッセージ及び前記メッセージについての前記処理アクションの前記選択に基づいて、コンテクスチュアルデータ及びペイロードデータを含むコンテナを生成することであって、前記コンテクスチュアルデータは、処理アクションテーブル内に記憶されたデータに少なくとも部分的に基づいて生成され、(1)外部アプリケーションシステムによって実行されるべき処理アクション、及び(2)前記処理アクションをリクエストしているクライアントデバイスを特定するクライアントトークンを特定し、前記ペイロードデータは、前記グループベースコミュニケーションプラットフォームを介してやり取りされるメッセージを含む、コンテナを生成すること、前記外部アプリケーションシステムにアクセス可能なプロキシエンドポイントに前記コンテナを提供することによって、前記外部アプリケーションシステムが前記コンテナ内のデータを取得し、前記ペイロードデータに少なくとも部分的に基づいて前記特定された処理アクションを実行できるようにすること、前記外部アプリケーションシステムから応答を受け取ることであって、前記応答は、前記処理アクションをリクエストしている前記クライアントデバイスを特定する前記クライアントトークンを含む、応答を受け取ること、前記応答
に少なくとも部分的に基づいて、前記クライアントデバイスにインタラクティブダイアログを表示させること、前記インタラクティブダイアログを介して前記クライアントデバイスから追加データを受け取ること、及び前記コンテナに関連付けられた前記プロキシエンドポイントに前記追加データを送信することによって、前記外部アプリケーションシステムが前記追加データを利用して、前記処理アクションを実行できるようにすることを行うよう構成される。
【0009】
さまざまな実施形態では、前記1つ以上のプロセッサは、前記外部アプリケーションシステムから前記リクエストされた処理アクションの完了を示す確認応答を受け取ること、及び前記リクエストしているクライアントデバイスに確認メッセージを送信することをさらに行うよう構成されている。ある実施形態では、前記確認メッセージは、前記クライアントデバイスにメッセージとして送信される。さらに、前記メッセージは、前記グループベースコミュニケーションプラットフォームを介してコミュニケーションチャンネル内の複数のクライアントデバイスの間で共有される。そのような実施形態では、前記コミュニケーションチャンネルは、関連付けられたチャンネル識別子を有し、前記1つ以上のプロセッサは、前記クライアントデバイスに複数の処理アクションのキュレートされたリストを表示させることであって、前記キュレートされたリスト内に含まれる前記処理アクションは、チャンネル識別子に少なくとも部分的に基づいて選択される、キュレートされたリストを表示させることをさらに行うよう構成され、前記処理アクションの前記選択は、少なくとも部分的に複数の処理アクションの前記キュレートされたリストに基づく。
【0010】
さまざまな実施形態では、前記メッセージは、前記グループベースコミュニケーションプラットフォームを介してコミュニケーションチャンネル内の複数のクライアントデバイスの間で共有される。そのような実施形態では、前記コミュニケーションチャンネルは、関連付けられたチャンネル識別子を有し、前記1つ以上のプロセッサは、前記クライアントデバイスに複数の処理アクションのキュレートされたリストを表示させることであって、前記キュレートされたリスト内に含まれる前記処理アクションは、前記メッセージに関連付けられた特性に少なくとも部分的に基づいて選択される、キュレートされたリストを表示させることをさらに行うよう構成され、前記処理アクションの前記選択は、少なくとも部分的に複数の処理アクションの前記キュレートされたリストに基づく。さらに、メッセージに関連付けられた前記特性は、前記メッセージの送信ユーザー識別子を特定し、前記キュレートされたリスト内に含まれる前記処理アクションは、前記メッセージの前記送信ユーザー識別子に少なくとも部分的に基づいて選択され得る。さらに、前記メッセージは、テキストベースのメッセージ又はファイルオブジェクトのうちの少なくとも1つを含む。
【0011】
ある実施形態は、外部アプリケーションシステム内でメッセージに基づいて処理アクションを実行するコンピュータプログラム製品に関し、前記コンピュータプログラム製品は、その中に記憶されたコンピュータ読み取り可能プログラムコード部分を有する少なくとも1つの非一時的コンピュータ読み取り可能記憶媒体を備える。ある実施形態では、前記コンピュータ読み取り可能プログラムコード部分は、コンテクスチュアルデータ及びペイロードデータを含むコンテナを生成することであって、前記コンテクスチュアルデータは、処理アクションテーブル内に記憶されたデータに少なくとも部分的に基づいて生成され、(1)外部アプリケーションシステムによって実行されるべき処理アクション、及び(2)前記処理アクションをリクエストしているクライアントデバイスを特定するクライアントトークンを特定し、前記ペイロードデータは、前記グループベースコミュニケーションプラットフォームを介してやり取りされるメッセージを含む、コンテナを生成すること、前記外部アプリケーションシステムにアクセス可能なプロキシエンドポイントに前記コンテナを提供することによって、前記外部アプリケーションシステムが前記コンテナ内のデータを取得し、前記ペイロードデータに少なくとも部分的に基づいて前記特定された処
理アクションを実行できるようにすること、前記外部アプリケーションシステムから応答を受け取ることであって、前記応答は、前記処理アクションをリクエストしている前記クライアントデバイスを特定する前記クライアントトークンを含む、応答を受け取ること、前記応答に少なくとも部分的に基づいて、前記クライアントデバイスにインタラクティブダイアログを表示させること、前記インタラクティブダイアログを介して前記クライアントデバイスから追加データを受け取ること、及び前記コンテナに関連付けられた前記プロキシエンドポイントに前記追加データを送信することによって、前記外部アプリケーションシステムが前記追加データを利用して、前記処理アクションを実行できるようにすることを行うよう構成されている。
【0012】
ある実施形態では、前記実行可能部分は、前記外部アプリケーションシステムから前記リクエストされた処理アクションの完了を示す確認応答を受け取ること、及び前記リクエストしているクライアントデバイスに確認メッセージを送信することを行うようさらに構成される。さらに前記確認メッセージは、前記クライアントデバイスにメッセージとして送信され得る。
【0013】
ある実施形態では、前記メッセージは、前記グループベースコミュニケーションプラットフォームを介してコミュニケーションチャンネル内の複数のクライアントデバイスの間で共有され、前記コミュニケーションチャンネルは、関連付けられたチャンネル識別子を有し、前記コンピュータプログラム製品は、前記クライアントデバイスに複数の処理アクションのキュレートされたリストを表示させることであって、前記キュレートされたリスト内に含まれる前記処理アクションは、チャンネル識別子に少なくとも部分的に基づいて選択される、キュレートされたリストを表示させること、及び実行されるべき前記処理アクションを選択する前記クライアントデバイスから入力を受け取ることを行うよう構成された実行可能部分をさらに含む。
【0014】
さまざまな実施形態では、前記メッセージは、特性に関連付けられ、前記コンピュータプログラム製品は、前記クライアントデバイスに複数の処理アクションのキュレートされたリストを表示させることであって、前記キュレートされたリストに含まれる前記処理アクションは、前記メッセージに関連付けられた前記特性に少なくとも部分的に基づいて選択される、キュレートされたリストを表示させること、及び実行されるべき前記処理アクションを選択する前記クライアントデバイスから入力を受け取ることを行うよう構成された実行可能部分をさらに含む。さらに、メッセージに関連付けられた前記特性は、前記メッセージの送信ユーザー識別子を特定し得て、前記キュレートされたリスト内に含まれる前記処理アクションは、前記メッセージの前記送信ユーザー識別子に少なくとも部分的に基づいて選択され得る。ある実施形態では、前記メッセージは、テキストベースのメッセージ又はファイルオブジェクトのうちの少なくとも1つを含む。
【図面の簡単な説明】
【0015】
任意の特定の要素又は行為の説明を容易に特定するために、参照番号の最上位の桁又は桁群は、その要素が最初に導入される図の番号を表す。
図1図1は、ある実施形態によって1つ以上のクライアントデバイスと通信するグループベースコミュニケーションプラットフォームを含むシステム100の概略図を示す。
図2図2は、ある実施形態によるメッセージ配信サーバー(群)100の装置200を示す。
図3図3は、ある実施形態によるグループベースコミュニケーションプラットフォームのための処理アクションをロードするためのフローチャート300を示す。
図4図4は、ある実施形態によるグループベースコミュニケーションプラットフォームを介して処理アクションを提供するための開発ポータルを提供するワイヤーフレーム400を示す。
図5図5は、ある実施形態によるグループベースコミュニケーションプラットフォームを介して処理アクションを提供する開発ポータルを提供するワイヤーフレーム500を示す。
図6図6は、ある実施形態によるグループベースコミュニケーションプラットフォームを介して処理アクションを実行するためのフローチャート600を示す。
図7図7は、ある実施形態によるグループベースコミュニケーションインターフェイスのワイヤーフレーム700を示す。
図8図8は、ある実施形態によるグループベースコミュニケーションインターフェイスのワイヤーフレーム800を示す。
図9図9は、ある実施形態による利用可能な処理アクションのキュレートされたリストを含むワイヤーフレーム900を示す。
図10図10は、ある実施形態による複数の処理アクションを示すワイヤーフレーム1000を示す。
図11図11は、ある実施形態によるインタラクティブダイアログを示すワイヤーフレーム1100を示す。
【発明を実施するための形態】
【0016】
[用語集]
この文脈での「グループ識別子」は、それによってグループベースコミュニケーションシステム内のグループが特定され得る、データの1つ以上のアイテムを表す。グループ識別子は、ある実施形態では、「チーム識別子」と呼ばれることもある。例えば、グループ識別子又はチーム識別子は、ASCIIテキスト、ポインタ、メモリアドレス等を含み得る。
【0017】
この文脈での「ユーザー」は、個人、個人のグループ、企業、組織等を表す。ユーザーは、クライアントデバイスを用いてグループベースコミュニケーション又はメッセージングシステムにアクセスし得る。「グループベース」は、ユーザーの定義されたグループにしかアクセス可能ではないような十分なセキュリティを有するシステム、チャンネル、メッセージ、又は仮想環境を表すためにここでは用いられる。このグループは、組織又は営利事業のそれらのような共通アクセス認証情報(common access credentials)によって
定義され得る。アクセスは、参加のための検証されたリクエスト又はあるグループメンバーユーザーによって別の非メンバーユーザーに送信された参加のための招待によってさらに促進され得る。グループ識別子(以下に定義される)は、データ、情報、メッセージ等を特定のグループに関連付けるために用いられる。
【0018】
この文脈での「送信ユーザー識別子」は、特定のユーザー(すなわちその特定のユーザーに関連付けられたクライアントデバイス)によって送信されたメッセージ群の集合体を表す。これらメッセージは、そのユーザーに関するコンテキストを確定するために分析され得る(例えばあるトピックにおけるそのユーザーの専門知識又は興味は、そのようなメッセージ群の中のトピックに関連付けられたトピック又はキーワードへの言及に基づいて確定され得る)。
【0019】
この文脈での「コンテクスチュアルデータ」は、リクエストしているクライアントデバイスに代わって外部システムによって実行されるべき処理アクションのさまざまな局面を特定し得る。コンテクスチュアルデータは、外部システムをトリガして特定の処理アクションを実行させるために、適切なプロキシエンドポイントにコンテナを適切にルーティングするよう、グループベースコミュニケーションシステムによって利用され得る。コンテクスチュアルデータは、実行されるべきリクエストされた処理アクションを特定し、及び/又はクライアントデバイスからリクエストされるべき任意の追加のデータを特定するた
めに、外部システムによってさらに利用され得る(例えばグループベースユーザーインターフェイスを介して提示された1つ以上のインタラクティブダイアログを介して)。さらに、コンテクスチュアルデータは、特定のメッセージオブジェクトがグループベースコミュニケーションプラットフォームを介してシェアされた時を示すタイムスタンプ、メッセージオブジェクト、処理アクションをリクエストしているクライアントデバイスをクライアントトークン及び/又はこれらの類似物を初期的にシェアしたユーザー(及び/又はクライアントデバイス)を示す送信ユーザー識別子のような、メッセージオブジェクト(例えばメッセージ、ファイル、複数のメッセージ群(例えばコミュニケーションチャンネル内の全てのメッセージ)及び/又はこれらの類似物)のさまざまな特性を特定し得る。
【0020】
この文脈での「クライアントデバイス」は、1つ以上のサーバーによって利用可能にされた1つ以上のサービスにアクセスするよう構成されたコンピュータハードウェア(群)及び/又はソフトウェア(群)を表す。このサーバー(群)は、しばしば(必ずしもそうではないが)別のコンピュータシステム上に存在し得て、その場合、クライアントデバイスは、そのサーバーにネットワークによってアクセスする。クライアントデバイスは、グループ識別に関連付けられ得て、ここでグループ識別は、ユーザーが属するグループ(例えばユーザーグループ)を示唆する電子的指示(electronic indication)である。クラ
イアントデバイスは、限定としてではなく、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ウェラブルデバイス、パーソナルコンピュータ、エンタープライズコンピュータ等を含み得る。
【0021】
この文脈での「ユーザープロファイル」は、例えばユーザー識別子、そのユーザーがアクセスを許可されたコミュニケーションチャンネル(例えばグループベースコミュニケーションチャンネル)に関連付けられた1つ以上のコミュニケーションチャンネル識別子(例えばグループベースコミュニケーションチャンネル識別子)、そのユーザーが関連付けられたグループについての1つ以上のグループ識別子、そのユーザーが任意のグループベースコミュニケーションチャンネルのオーナーであるかについての指示、そのユーザーが任意のグループベースコミュニケーションチャンネル制限を有するかについての指示、複数のメッセージ、複数の絵文字、複数の会話、複数の会話トピック、アバター、電子メールアドレス、実名(例えばJohn Doe)、ユーザー名(例えばjdoe)、パスワード、タイムゾーン、ステータス、及びその他を含む、ユーザーに関連付けられた情報を表す。ユーザープロファイルという語は、「ユーザーアカウント、及びユーザーアカウント詳細」と交換可能に用いられ得る。ユーザーアカウント詳細は、例えば、そのユーザーのユーザー名及びパスワードを含むそのユーザーのためのログイン情報のような、ユーザー資格情報のサブセット指定を含み得る。
【0022】
この文脈での「キュレートされたリスト」は、クライアントデバイスを介して表示可能であるグループベースコミュニケーションインターフェイスを介してユーザーに提示され得る利用可能な処理アクションのリスティングを表す。ある実施形態では、処理アクションのキュレートされたリストは、処理アクションのキュレートされたリストが、ユーザーに利用可能な処理アクションの全てのうちからサブセットだけを含むように、そのユーザーに対するある処理アクションを除外する。例えば、処理アクションのキュレートされたリストは、1つ以上の表示基準に基づいて選択された、利用可能な処理アクションの規定された個数(例えば5処理アクション)を含み得る。これらの表示基準は、処理アクションが利用されるべきであると意図された処理アクションについてのメッセージに関連付けられたコンテクスチュアルメタデータに少なくとも部分的に基づいて(例えばキュレートされたリスト内で表示された処理アクションは、特定のアプリによって生成されたメッセージのような、特定の送信ユーザー識別子を有するメッセージについて利用可能な処理アクションを含み得る)、メッセージがシェアされるコミュニケーションチャンネルに少なくとも部分的に基づいて、特定のユーザーについて最も最近に用いられたか及び/又は最
も頻繁に用いられたかを特定する最近性及び/又は頻度に基づくアルゴリズムに基づいて、等で特定され得る。ある実施形態では、キュレートされたリストは、個別のクライアントデバイス上に記憶されたデータ(例えば特定のクライアントデバイスについて最も最近に用いられた処理アクションを示すデータ)及び/又はグループベースコミュニケーションプラットフォームに位置するデータリポジトリに少なくとも部分的に基づいて生成され得る。
【0023】
この文脈での「メッセージ配信サーバー」は、コミュニケーションチャンネル内での配信のために、メッセージを受信及び/又は拡散するさまざまなクライアントデバイスとインタラクトするよう構成されたコンピューティングデバイスを表す。メッセージ配信サーバーは、ユーザー間で交換されるメッセージを受信、記憶(関連付けられたデータベース内で)、及び/又は転送するよう構成され得る(クライアントデバイスを介して)。メッセージ配信サーバーの機能は、単一のサーバー又は共通の機能を有するサーバー群の集合体を介して提供され得るか、又はメッセージ配信サーバーの機能は、メッセージ配信サーバーの記載された機能のサブセットを実行する複数のサーバー群又はサーバー群の集合体群の間で分割され得る。例えば、メッセージ配信サーバーの第1サブセットは、クライアントデバイスからメッセージを受信するよう及び/又はクライアントデバイスにメッセージを送信するよう構成され得る(例えば1つ以上のインターフェイスサーバーを介して)。これらメッセージ配信サーバーは、コミュニケーションチャンネル内で配信されたメッセージを収集するよう及びインデキシング及びアーカイビングのためにこれらメッセージをメッセージリポジトリデータベース内に記憶するよう構成された、メッセージ配信サーバーの第2サブセットと通信し得る。
【0024】
この文脈での「コミュニケーションチャンネル」は、システム群及びシステム群の部分の間で及びその中でのデータのやりとりのために用いられる情報ルート及び関連付けられた回路を表す。例えば、コミュニケーションチャンネルは、さまざまなクライアントデバイスの間で確立され得て、これらクライアントデバイスがデータを互いの間で通信及び共有できるようにする。これらコミュニケーションチャンネルは、当該グループの全てのユーザーの間でメッセージをシェアするためのクライアントデバイス(及びそれらのそれぞれのユーザー)の選択グループ(select group)の間で確立された「グループベースコミュニケーションチャンネル」であり得る。コミュニケーションチャンネルは、また及び/又は代替として、それら2つのユーザーの間でだけメッセージをシェアするための、2つのクライアントデバイス(及びそれらのそれぞれのユーザー)の間で確立された1対1のダイレクトメッセージコミュニケーションチャンネルであり得る。マルチプルコミュニケーションチャンネルは、1つ以上のコンピューティングデバイスのそれぞれの上で動作し得て、したがって、コミュニケーションチャンネル識別子は、コミュニケーションチャンネルに割当され得て、これは、コミュニケーションチャンネルの関連するデータが記憶され、そのコミュニケーションチャンネル上でやりとりされるデータを受信するためにコミュニケーションチャンネル内で参加するクライアントデバイスを特定するのに利用されるデータベース内での物理アドレスを示す。したがってコミュニケーションチャンネル識別子は、複数のコミュニケーションチャンネルに関連付けられたコンピューティングデバイス上であっても、コミュニケーションチャンネルが別個で分離されたままであることを確実にする。コミュニケーションチャンネルは、「public(パブリック)」であり得て、これは、そのコミュニケーションチャンネルを通じて任意のクライアントデバイスが情報共有に参加及び関与できるようにさせ得る。コミュニケーションチャンネルは、「private
(プライベート)」であり得て、これは、そのコミュニケーションチャンネルにおけるデータ通信を、あるクライアントデバイス及び/又はユーザーに制限し得る。
【0025】
この文脈での「ペイロードデータ」は、ここで論述されるようにコンテナの一部を形成するデータを表す。このペイロードデータは、1つ以上のメッセージ(例えばメッセージ
テキスト、やりとりされるメッセージに添付されるファイル、複数の個別のやりとりされるメッセージ、及び/又はこれらの類似物)を含み得る。
【0026】
この文脈での「インタラクティブダイアログ」は、ユーザー入力を受け入れるよう構成されたユーザーインターフェイス要素を表す(例えば自由形式の入力等としての複数の利用可能なオプションのうちの1つ以上の選択として)。ダイアログは、ユーザーインターフェイスの他の部分の上に視覚的に表示されるポップアップ又はオーバーレイ表示要素として提示され得て、又はこのダイアログは、より大きなユーザーインターフェイス要素の一部として提示され得る。
【0027】
この文脈での「外部アプリケーションシステム」は、グループベースコミュニケーションプラットフォームとネットワーク通信でき、グループベースコミュニケーションプラットフォームを介してアクセス可能であるアプリのさまざまな機能を形成するアクションをサービス、管理、及び/又は実行する1つ以上のサーバーを介して動作するシステムを表す。外部アプリケーションシステムは、外部アプリケーションシステムを介して実行され得るタスク、機能、及び/又はアクションに関連付けられた追加の記憶リポジトリ(例えばデータベース)を備え得る。ある実施形態では、外部アプリケーションシステムは、1つ以上の実行可能なソフトウェアプロダクトを動作させることで、その外部アプリケーションシステムに関連付けられたさまざまなタスク、機能、及び/又はアクションを実行する。さまざまな例として、外部アプリケーションシステムは、カレンダリング/シュケジューリングアプリ、to-doリストアプリ、サービスプロバイダアプリ、ソフトウェアテス
トアプリ、記憶リポジトリアプリ及び/又はこれらの類似物を実行するよう構成され得る。
【0028】
この文脈での「データ」は、本発明の実施形態によって送信され、受信され、及び/又は記憶されることが可能であるデータを表す。よって、任意のそのような語の使用は、本発明の実施形態の精神及び範囲を限定するようには解釈されるべきではない。さらに、コンピューティングデバイスが他のコンピューティングデバイスからデータを受信するよう、ここで記載される場合は、データは、他のコンピューティングデバイスから直接に受信されてもよく、又は例えば1つ以上のサーバー、リレー、ルータ、ネットワークアクセスポイント、基地局、ホスト、及び/又はこれらの類似物のような1つ以上の媒介コンピューティングデバイスを介して間接的に受信されてもよいことが理解されよう。同様に、コンピューティングデバイスがデータを別のコンピューティングデバイスに送信するようここで記載される場合、そのデータは、直接に他のコンピューティングデバイスに送信されてもよく、又は例えば1つ以上のサーバー、リレー、ルータ、ネットワークアクセスポイント、基地局、ホスト、及び/又はこれらの類似物のような1つ以上の媒介コンピューティングデバイスを介して間接的に送信されてもよいことが理解されよう。
【0029】
この文脈での「クライアントトークン」は、特定のクライアントデバイスをユニークに特定する識別子を表す。このクライアントトークンは、静的であってもよく(例えば、関連付けられたクライアントトークンを変更するために肯定的なアクションが取られるまでは、クライアントデバイスが特定のクライアントトークンに永久的に関連付けられる)、又は動的であってもよい(例えば、クライアントトークンは、特定のクライアントデバイスに、特定のタスクの実行に関連付けられた期間、グループベースコミュニケーションプラットフォームによるユニークなクライアントセッションに関連付けられた期間、及び/又はこれらの類似物のような、短期間だけ割当される)。さらに、クライアントトークンは、クライアントトークンの無許可使用に対するさらなるセキュリティのためにさまざまな暗号化方法のうちの任意のものを利用してある実施形態では暗号化され得る。
【0030】
この文脈での「プライベートグループベースコミュニケーションチャンネル」は、グル
ープベースコミュニケーションシステムの他のメンバーによって一般的にはアクセス可能であったり、及び/又は検索可能であったりはしないように制限されたアクセスしか持たないグループベースコミュニケーションチャンネルを表す。例えば、プライベートグループベースコミュニケーションチャンネルについての知識があり、かつそれにアクセスできる許可を持つユーザー又は管理者だけが(例えばそのプライベートグループベースコミュニケーションチャンネルについてのグループベースコミュニケーションチャンネル識別子は、ユーザーが検証/認証された後で、それらのユーザープロファイルに関連付けられている)プライベートグループベースコミュニケーションチャンネルのコンテンツを閲覧してもよい。
【0031】
この文脈での「グループベースコミュニケーションプラットフォーム」は、1つ以上のクライアントデバイスにアクセス可能であり、データベースの動作に関連する複数のソフトウェアアプリケーションへのアクセスを提供するよう動作可能であるコンピューティングサービスの集合体を表す。ある例では、グループベースコミュニケーションプラットフォームは、ソフトウェアアプリケーションを走らせていて、デジタルコンテンツアイテム、アプリケーション関連データ及び/又はこれらの類似物を記憶する1つ以上のデータベースにアクセスを有する1つ以上の追加のサーバーと通信するよう構成された1つ以上のセントラルサーバーの形態をとり得る。グループベースコミュニケーションプラットフォームは、クライアント保持設定(client retention settings)及び他のコンプライアン
ス局面もサポートし得る。さらに、グループベースコミュニケーションプラットフォームは、データへの適切なアクセスを許可し、サードパーティがアプリケーション及びボットを構築してカスタマーのワークフローと統合するのを可能にする包括的なサードパーティ開発者サポートを提供し得る。グループベースコミュニケーションプラットフォームユーザーは、オーガナイゼーショングループに組織化され(例えばそれぞれの会社の従業員は別個のオーガナイゼーショングループであり得る)、それぞれのオーガナイゼーショングループは、ユーザーが割当され得る、又はユーザーが参加し得る1つ以上のコミュニケーションチャンネル(例えばグループベースコミュニケーションチャンネル)を有し得る(例えばグループベースコミュニケーションチャンネルは、部門、オフィスのような地理的位置、プロダクトライン、ユーザーの関心、トピック、論点、及び/又はこれらの類似物を表し得る)。グループ識別子は、メッセージについてのアクセス制御を促進するのに用いられ得る(例えば、サーチクエリに応答するサーチリザルトの一部としてメッセージリターンを有することのようなメッセージへのアクセスは、そのユーザープロファイルに関連付けられたグループ識別子を有するユーザーに制限され得る)。グループ識別子は、メッセージについてのコンテキストを確定するのに用いられ得る(例えば、オーガナイゼーションの名前及び/又はそのオーガナイゼーションの簡単な説明のようなグループの記載は、グループ識別子に関連付けられ得る)。グループベースコミュニケーションシステムユーザーは、コミュニケーションチャンネル(例えばグループベースコミュニケーションチャンネル)に参加及び/又はそれを作成し得る。あるグループベースコミュニケーションチャンネルは、それらのユーザープロファイルに関連付けられた特定のオーガナイゼーションのグループ識別子を有するユーザー(すなわちそのオーガナイゼーションのメンバーであるユーザー)にグローバルにアクセス可能であり得る。あるグループベースコミュニケーションチャンネルへのアクセスは、特定のグループのメンバーに制限され得て、これによってそのグループベースコミュニケーションチャンネルは、それらのユーザープロファイルに関連付けられた特定のグループ識別子を有するユーザーにアクセス可能である。グループベースコミュニケーションチャンネル識別子は、メッセージについてのアクセス制御を促進するために用いられ得る(例えば、サーチクエリに応答するサーチリザルトの一部としてメッセージリターンを有することのようなメッセージへのアクセスは、そのユーザープロファイルに関連付けられたグループ識別子を有するか、又はそのグループベースコミュニケーションチャンネルに参加する資格を有するユーザーに制限され得る)。グループベースコミュニケーションチャンネル識別子は、そのメッセージについてのコン
テキストを確定するために用いられ得る(例えば、グループベースコミュニケーションチャンネルで議論されているプロジェクトの説明のようなグループベースコミュニケーションチャンネルの説明は、グループベースコミュニケーションチャンネル識別子に関連付けられ得る)。
【0032】
この文脈での「処理アクション」は、外部システム(例えば、グループベースコミュニケーションプラットフォームを介してアクセス可能なアプリ)によって実行される実行可能なアクションを表す。処理アクションは、グループベースコミュニケーションプラットフォームから外部システムに提供されたコンテナ内に含まれるデータに少なくとも基づいて実行されるデータ生成プロセス、データ操作プロセス、及び/又はこれらの類似物として実現され得る。さまざまな例として、処理アクションは、カレンダーオブジェクトの作成(例えばスケジューリングアプリを介して)、「to-do」アイテムの作成(例えば生産
性アプリを介して)、サービスチケットの作成(例えばサービスアプリを介して)、ブックマークの作成(例えばリンク編集アプリを介して)、ファイルの作成(例えばドキュメント編集アプリを介して)、及び/又はこれらの類似物であり得る。
【0033】
この文脈での「コンテナ」は、複数のコンピューティングエンティティの間で集合的に送信され得て、含まれたデータがそれに関連付けられた状態を維持する個別データ要素の集合体を表す。このコンテナは、標準化されたフォーマッティングでデータをその中に記憶するよう構成され得て、その結果、コンピューティングエンティティは、コンテナ内に記憶されたデータの種類を自動的に確定するよう構成され得る。例えば、コンテナは、コンテナのペイロード内に記憶され、コンピューティングエンティティ間で渡されるべき実体的データを含み得て、このコンテナは、コンテナのコンテクスチュアルデータ部の中に記憶される、コンテナの生成に関連付けられたメタデータを含み得る。
【0034】
この文脈での「ファイルオブジェクト」は、リクエストされた処理アクションを実行するために、コンテナ内のペイロードデータとして外部システムに提供され得るメッセージの例を表す。ファイルオブジェクトは、「.pdf」ファイル、「.docx」ファイル、「.xml
」ファイル、「.html」ファイル、「.tp」ファイル、及び/又はこれらの類似物のような実行可能なファイルタイプのさまざまなもののうちの任意のものであり得る。
【0035】
この文脈での「チャンネル識別子」は、グループベースコミュニケーションチャンネルが特定され得るデータの1つ以上のアイテムを表す。チャンネル識別子は、ある実施形態では、「グループベースコミュニケーションチャンネル識別子」とも呼ばれ得る。例えば、グループベースコミュニケーションチャンネル識別子は、ASCIIテキスト、ポインタ、メモリアドレス等を含み得る。
【0036】
この文脈での「メッセージ」は、クライアントデバイスを用いてユーザーによって提供された、グループベースコミュニケーションチャンネルインターフェイス内で表示されるよう構成された任意の電子的に生成されたデジタルコンテンツオブジェクトを表す。メッセージは、ある実施形態では「メッセージングコミュニケーション」とも呼ばれ得る。メッセージは、ユーザーによって提供された(クライアントデバイスを用いて)、任意のテキスト、画像、ビデオ、オーディオ、ファイル、インタラクティブリンク、又はそれらの組合せを含み得て、又はそれらとして実現され得る。例えば、ユーザーは、メッセージコンテンツとしてメッセージングコミュニケーション内に画像及びビデオと共にテキストを含むメッセージングコミュニケーションを提供し得る。そのような場合、テキスト、画像、及びビデオは、メッセージングコミュニケーション又はデジタルコンテンツオブジェクトを含むことになる。グループベースコミュニケーションシステムのグループベースコミュニケーションチャンネルに送られた、つまりポストされたそれぞれのメッセージは、以下を含むメタデータを含む。すなわち、送信ユーザー識別子、メッセージ識別子、メッセ
ージコンテンツ、グループ識別子、及びグループベースコミュニケーションチャンネル識別子である。前記識別子のそれぞれは、ASCIIテキスト、ポインタ、メモリアドレス等を含み得る。
【0037】
この文脈での「グループベースコミュニケーションチャンネルインターフェイス」は、そのグループのメンバーだけに閲覧可能であるチャンネルメンバー(例えばクライアントデバイスを用いて環境にアクセスしている検証されたユーザー)によってポストされたメッセージングコミュニケーションを表示するよう構成された仮想コミュニケーション環境又はフィードを表す。グループベースコミュニケーションチャンネルインターフェイスのフォーマットは、グループベースコミュニケーションチャンネルの異なるメンバーには異なって見えるかもしれない。しかし、グループベースコミュニケーションチャンネルインターフェイスのコンテンツ(すなわちメッセージングコミュニケーション)は、グループベースコミュニケーションチャンネルのそれぞれのメンバーに表示される。例えば、グループベースメッセージングコミュニケーションの共通のセットは、グループベースコミュニケーションチャンネルインターフェイスのコンテンツがグループベースコミュニケーションチャンネルのメンバーによって変わらないように、それぞれのグループベースコミュニケーションチャンネルのそれぞれのメンバーに表示される。
【0038】
この文脈での「プロキシエンドポイント」は、データ転送インターフェイス、例えば、ネットワークを介して非接続のコンピューティングシステムの間のアプリケーションプログラムインターフェイス(API)を表す。プロキシエンドポイントは、URLを介してネットワークを通じてアクセス可能であり得る。例えば、プロキシエンドポイントは、グループベースコミュニケーションシステムから、パブリッシュされたアプリに関連付けられ、グループベースコミュニケーションシステムを介して利用可能である外部システムへのコンテナのデータ転送を可能にし得る。さまざまな実施形態では、プロキシエンドポイントは、外部システムにアクセス可能なURLによって少なくとも一部は定義され、ここでそのURLは、外部システムを特定のデータセット(例えば1つ以上のコンテナ)へ導くために利用され得る。ここで説明されるように、プロキシエンドポイントを介して外部システムに提供されるコンテナは、所望の処理アクションを実行するために、外部システムによる使用を可能にするようフォーマットされたデータを含み得る。プロキシエンドポイントは、含まれているデータを外部システムが使用できるようにするためのコンテナの必要なフォーマッティングを維持しながら、コンテナデータの外部システムへの転送を可能にする。さらに、ある実施形態では、プロキシエンドポイントは、データの外部システムへのリアルタイム送信を可能にする(例えばプッシュベースのメッセージ送信を介して)。他の実施形態では、プロキシエンドポイントは、外部システムがグループベースコミュニケーションプラットフォームからデータを引き出すことができるよう構成され得る(例えば、送信する準備ができているデータの存在を外部システムに知らせるように働くトリガイベントの発生と同時に)。
【0039】
[説明]
本開示は、さまざまな実施形態を添付の図面を参照してより完全に記載する。ここでは全ての実施形態ではなく、一部だけが示され説明されていることが理解されるべきである。実際、これら実施形態は、多くの異なる形態をとり得て、したがってこの開示は、ここで述べられた実施形態に限定されるようには解釈されるべきではない。むしろこれら実施形態は、本開示が適用可能な法的要件を満足するよう提供される。全体を通して、同様の数字は同様の要素を表す。
【0040】
[概観]
ここで説明されるように、ある実施形態は、グループベースコミュニケーションプラットフォームが、外部システム内でさまざまなアクションを実行できるようにするシステム
及び方法に関する。そのような構成は、グループベースコミュニケーションプラットフォームのユーザーが、グループベースコミュニケーションプラットフォームのグループベースコミュニケーションインターフェイス内で実行されるコマンド及び/又はプロセスに基づいて、さまざまな外部システム内でさまざまなアクションを起動できるようにする。例えば、グループベースコミュニケーションプラットフォーム内で使用可能なメッセージ、ファイル、スレッド、メッセージのグループ、及び/又は他のオブジェクトは、グループベースコミュニケーションプラットフォームからエクスポートされ得て、1つ以上の外部システムに自動的にインポートされ得ることによって、それら外部システム内で使用可能なさまざまなオブジェクトを生成し得る。よって、グループベースコミュニケーションプラットフォームを介してやりとりされるメッセージは、適用可能なto-doリストアイテム
を生成して入力するために、1つ以上のドキュメントを生成して入力するために、等のために外部システムに提供され得る。
【0041】
グループベースコミュニケーションプラットフォームは、定義されたコンテナ内でデータを外部システムに提供するよう構成され、ここでそれぞれのコンテナは、コンテナが生成された目的となったメッセージ、ファイル、又は他のオブジェクトを示すコンテクスチュアルデータ、オブジェクトの作成に関連付けられたタイムスタンプ、リクエストしているクライアントデバイス、そのコンテナが仕向けられるべき外部システム(例えばアプリ)、及び/又は外部システムによって実行されるべきアクションを特定するクライアントデバイストークンを含む。このコンテナは、オブジェクトを外部システムに渡すために、コンテナのペイロード部の中にオブジェクトそのもの(例えばメッセージ、ファイル、及び/又はこれらの類似物)もさらに含む。最終的には、コンテナ内に含まれるデータは、APIを用いて外部システムに渡され、適切なフォーマットでデータを外部システムに提供することで、リクエストされたアクションを実行する。
【0042】
適切なリクエストメッセージを外部システムから受け取ると、グループベースコミュニケーションプラットフォームは、クライアントトークンを利用して、ダイアログの提示のための適切なクライアントデバイスを特定することによって、リクエストされたアクションを実行するために外部システムによって利用されるべき追加情報を収集する。ダイアログは、ダイアログAPIを介してアクセス可能な別個のダイアログ記憶領域から取得され得る(例えばグループベースコミュニケーションプラットフォームと関連させて記憶される)。リクエストされたメッセージは、ある実施形態では、ダイアログAPIを介してダイアログ記憶領域に提示され得るダイアログトリガ識別子を含み得る。そして、ダイアログトリガ識別子に対応し、ユーザーへの提示のための適切なフィールドを有する適切なダイアログが取得される。例えば、ダイアログは、リクエストされたアクションと共に用いるための、複数の代替として選択可能なオプション(これらオプションは外部システム内で利用可能である)を含み得る。生成された及び/又はダイアログを介して他のやり方で提供されたさまざまなデータは、外部システムに戻して提供され、そこに提示されたオリジナルコンテナに関連付けられる。外部システムへのデータ提供が成功すると、グループベースコミュニケーションプラットフォームは、クライアントデバイスに確認を提供する(例えば、別個の通知アイコンとして及び/又はグループベースコミュニケーションインターフェイスを介して提供されたメッセージを介して)。
【0043】
[例示的システムアーキテクチャ]
本発明の方法、装置、及びコンピュータプログラム製品は、さまざまなデバイスの任意のものによって実現され得る。例えば、例示的実施形態の方法、装置、及びコンピュータプログラム製品は、1つ以上のクライアントデバイスのような1つ以上のデバイスと通信するよう構成されたサーバー又は他のネットワークエンティティのようなネットワークデバイスによって実現され得る。ある好ましい非限定的な実施形態では、コンピューティングデバイスは、パーソナルコンピュータ又はコンピュータワークステーションのような固
定したコンピューティングデバイスを含み得る。さらには、例示的実施形態は、ポータブルデジタルアシスタント(PDA)、携帯電話、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルデバイス、又は前述のデバイスの任意の組合せのようなさまざまなモバイルデバイスの任意のものによって実現され得る。
【0044】
図1は、本発明の実施形態が動作し得る例示的コンピューティングシステム100を示す。ユーザーは、クライアントデバイス102-106を用いてコミュニケーションネットワーク108を介してグループベースコミュニケーションプラットフォーム118にアクセスし得る。
【0045】
コミュニケーションネットワーク108は、それを実現するために要求される任意のハードウェア、ソフトウェア及び/又はファームウェア(例えばネットワークルーター等のような)と共に、例えば、有線又は無線のローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)等を含む任意の有線又は無線コミュニケーションネットワークを含み得る。例えば、コミュニケーションネットワーク108は、携帯電話、802.11、802.16、802.20、及び/又はWiMaxネットワークを含み得る。さらに、コミュニケーションネットワーク108は、インターネットのような公衆ネットワーク、イントラネットのようなプライベートネットワーク、又はこれらの組合せを含み得て、これには限定されないがTCP/IPベースのネットワーキングプロトコルを含む、今、利用可能であり、又は後に開発されるさまざまなネットワーキングプロトコルを利用し得る。ここで説明されるように、ネットワーキングプロトコルは、ウェブソケットコミュニケーションを介してデータ送信を可能にするよう構成される。例えば、ネットワーキングプロトコルは、グループベースコミュニケーションシステムのニーズに合うようにカスタマイズされ得る。ある実施形態では、このプロトコルは、ウェブソケットチャンネルを介して送られたJSONオブジェクトであり得る。ある実施形態では、データは、RPC上のJSON、REST/HTTP上のJSON等のような複数のプロトコルを介して送信され得る。
【0046】
図示された実施形態では、グループベースコミュニケーションプラットフォーム108は、コミュニケーションネットワーク108を介して利用可能である少なくとも1つのメッセージ配信サーバー(群)110を含む。全体として、この少なくとも1つのメッセージ配信サーバー(群)110は、1つ以上のクライアントデバイス102-106から送信されたメッセージを受信し、このメッセージを個別コミュニケーションチャンネルのためのデータベース記憶領域内に記憶し、及び/又はメッセージを適切なクライアントデバイス102-106に送信するよう構成される。
【0047】
クライアントデバイス102-106は、上で定義された任意のコンピューティングデバイスであり得る。メッセージ配信サーバー(群)110及びクライアントデバイス102-106の間でやりとりされた電子メッセージデータは、さまざまな形態で、さまざまな方法を介して提供され得る。
【0048】
ある好ましい非限定的な実施形態では、クライアントデバイス102-106のうちの1つ以上は、スマートフォン又はタブレットのようなモバイルデバイスである。1つ以上のクライアントデバイスは、メッセージ配信サーバー(群)110とインタラクトするために「アプリ(app)」を実行し得る。そのようなアプリは、スマートフォン又はタブレ
ットのようなモバイルデバイス上で実行するよう典型的には設計される。例えば、アプリは、Apple Inc.のiOS(登録商標)、Google Inc.のAndroid(登録商標)、又はMicrosoft
Inc.のWindows 10 Mobile(登録商標)のようなモバイルデバイスオペレーティングシステム上で実行するアプリが提供され得る。これらプラットフォームは、アプリが互いに、
かつモバイルデバイスの特定のハードウェア及びソフトウェアコンポーネントと通信できるようにするフレームワークを典型的には提供する。例えば、上で名前を挙げたモバイルオペレーティングシステムは、それぞれ、ロケーションサービス回路、有線及び無線ネットワークインターフェイス、ユーザーコンタクト、及び他のアプリケーションとインタラクトするためのフレームワークを提供する。アプリの外で実行するハードウェア及びソフトウェアモジュールとの通信は、モバイルデバイスオペレーティングシステムによって提供されたアプリケーションプログラミングインターフェイス(API)を介して典型的には提供される。よって、クライアントデバイス102-106上で実行するアプリを介して、これらのクライアントデバイス102-106は、グループベースコミュニケーションプラットフォーム118と通信するよう構成される。
【0049】
ある好ましい非限定的な実施形態では、クライアントデバイス102-106は、ウェブブラウザを介してメッセージ配信サーバー(群)110とインタラクトし得る。クライアントデバイス102-106は、メッセージ配信サーバー(群)110とインタラクトするよう設計されたさまざまなハードウェア又はファームウェアも含み得る。また、クライアントデバイス102-106のブラウザを介して、クライアントデバイス102-106は、グループベースコミュニケーションプラットフォーム118と通信するよう構成される。
【0050】
例示的グループベースコミュニケーションプラットフォーム118のある実施形態では、メッセージ又はメッセージングコミュニケーションは、クライアントデバイス102-106からグループベースコミュニケーションプラットフォーム118に送られ得る。さまざまな実現例では、メッセージは、直接にクライアントデバイス102-106のうちの1つによってコミュニケーションネットワーク108を通じてグループベースコミュニケーションプラットフォーム118に送られ得る。メッセージは、メッセージサーバー及び/又はこれらの類似物のような仲介を介してグループベースコミュニケーションプラットフォーム118に送られ得る。例えば、クライアントデバイス102-106は、クライアントアプリケーション(例えばグループベースコミュニケーションアプリ)を実行しているデスクトップ、ラップトップ、タブレット、スマートフォン、及び/又はこれらの類似物であり得る。ある実施形態では、メッセージは、メッセージ識別子、送信ユーザー識別子、グループ識別子、グループベースコミュニケーションチャンネル識別子、メッセージコンテンツ(例えばテキスト、絵文字、画像、リンク)、添付物(例えばファイルオブジェクト)、メッセージ階層データ(例えばメッセージは、他のメッセージに対する返信であり得る)、サードパーティメタデータ、及び/又はこれらの類似物のようなデータを含み得る。ある実施形態では、クライアントデバイス102-106は、以下に示されるようにエクステンシブルマークアップランゲージ(「XML」)でフォーマットされたデ
ータを含む、実質的に(セキュア)ハイパーテキストトランスファープロトコル(「HTTP(S)」)POSTメッセージの形態である、以下の例示的メッセージを提供し得る。
【0051】
POST /authrequest.php HTTP/1.1
Host: www.server.com
Content-Type: Application/XML
Content-Length: 667
<?XML version = “1.0” encoding = “UTF-8”?>
<auth_request>
<timestamp>2020-12-31 23:59:59</timestamp>
<user_accounts_details>
<user_account_credentials>
<user_name>ID_user_1</user_name>
<password>abc123</password>
//OPTIONAL <cookie>cookieID</cookie>
//OPTIONAL <digital_cert_link>www.mydigitalcertificate.com/ JohnDoeDaDoeDoe@gmail.com/mycertifcate.dc</digital_cert_link>
//OPTIONAL <digital_certificate>_DATA_</digital_certificate>
</user_account_credentials>
</user_accounts_details>
<client_details> //iOS Client with App and Webkit
//it should be noted that although several client details
//sections are provided to show example variants of client
//sources, further messages will include only on to save
//space
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac
OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>app with webkit</client_app_type>
<app_installed_flag>true</app_installed_flag>
<app_name>MSM.app</app_name>
<app_version>1.0 </app_version>
<app_webkit_name>Mobile Safari</client_webkit_name>
<client_version>537.51.2</client_version>
</client_details>
<client_details> //iOS Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac
OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>9537.53</client_version>
</client_details>
<client_details> //Android Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Nexus S Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30</user_agent_string>
<client_product_type>Nexus S</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Android</client_OS>
<client_OS_version>4.0.4</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>534.30</client_version>
</client_details>
<client_details> //Mac Desktop with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14</user_agent_string>
<client_product_type>MacPro5,1</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Mac OS X</client_OS>
<client_OS_version>10.9.3</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>537.75.14</client_version>
</client_details>
<message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
</message>
</auth_request>
図示された実施形態では、グループベースコミュニケーションプラットフォーム118は、チャンネル識別子及び/又はグループ識別子によって特定されるチャンネル内の複数のクライアントデバイス102-106の間で送信されるメッセージを受信し、コミュニケーションチャンネルのメンバーシップを集合的に形成するクライアントデバイス102-106の間でのこれらメッセージの配布(dissemination)を促進するよう構成された
複数のメッセージ配信サーバー(群)110を備える。
【0052】
ある実施形態では、応答を示すデータがメッセージに関連付けられ得る。例えば、他のユーザーによるメッセージに対する応答は、反応(例えばメッセージに関連付けられた絵文字を選ぶこと、メッセージに関連付けられた「いいね」ボタンを選ぶこと)、メッセージに埋め込まれたハイパーリンクをクリックすること、メッセージに応答すること(例えば、そのメッセージに対する応答として、メッセージをグループベースコミュニケーションチャンネルインターフェイスにポストすること)、メッセージに関連付けられたファイルをダウンロードすること、あるグループベースコミュニケーションチャンネルから別のグループベースコミュニケーションチャンネルへメッセージをシェアすること、メッセージをピン留めすること、メッセージに星を付けること、及び/又はこれらの類似物を含み得る。ある実施形態では、他のユーザーによるメッセージへの応答に関するデータは、メッセージに含まれ得て、そのメッセージは、応答を決定するためにパースされ得る(例えばPHPコマンドを用いて)。他の実現例では、メッセージへの応答に関するデータは、データベースから取り出され得る。例えば、応答に関するデータは、以下と類似するMySQLデータベースコマンドを介して取り出され得る。
【0053】
SELECT messageResponses
FROM MSM_Message
WHERE messageID = ID_message_10.
例えば、メッセージへの応答に関するデータは、メッセージについてのコンテキスト(例えばメッセージについての、あるユーザーの視点からのソーシャルスコア)を決定するのに用いられ得る。他の例では、メッセージへの応答に関するデータは、ユーザーに関するコンテキストを決定するために分析され得る(例えばあるトピックにおけるユーザーの経験は、そのトピックに関するユーザーのメッセージに対する応答に基づいて決定され得る)。
【0054】
実施形態において、添付物は、メッセージに含まれ得る。もし添付物が存在するなら、ファイルオブジェクトは、そのメッセージに関連付けられ得る。ある実現例では、メッセージは、添付物のファイル名を決定するためにパースされ得る(例えばPHPコマンドを用いて)。例えば、ファイルコンテンツは、メッセージについてのコンテキストを決定するために分析され得る(例えば特許ポリシーの文書は、そのメッセージが「特許」というトピックに関連付けられていると表示し得る)。
【0055】
実施形態において、サードパーティメタデータは、そのメッセージに関連付けられ得る。例えば、サードパーティメタデータは、会社、グループ、グループベースコミュニケーションチャンネル、及び/又はこれらの類似物に特有であるそのメッセージ又はユーザーに関する追加のコンテキストを提供し得る。ある実現例では、メッセージは、サードパーティメタデータを確定するためにパースされ得る(例えばPHPコマンドを用いて)。例えば、サードパーティメタデータは、そのメッセージを送ったユーザーが、グループベースコミュニケーションチャンネルの承認された代表者であるかを示し得る(例えば、承認された代表者は、グループベースコミュニケーションチャンネルにおける質問に対して応答することをその会社によって承認され得る)。
【0056】
実施形態において、会話プリミティブ(conversation primitive)は、メッセージに関連付けられ得る。ある実施形態では、会話プリミティブは、メッセージを分析し、インデックス付けし、記憶し、及び/又はこれらの類似物をするのに用いられる要素である。例えば、メッセージは、それ自身で分析され得て、それ自身の会話プリミティブを形成し得る。他の例では、メッセージは、会話を構成する他のメッセージと共に分析され得て、会話を構成するメッセージは、会話プリミティブを形成し得る。ある実現例では、会話プリミティブは、当該メッセージ、特定の個数(例えば2)の先行するメッセージ及び特定の個数(例えば2)の後続するメッセージとして決定され得る。他の実現例では、会話プリミティブは、当該メッセージ及び他のメッセージ(例えばそのチャンネルにおいて)で議論されているトピック及び/又はこれらメッセージの近接性(例えばメッセージ送信順序の近接性、メッセージ送信時刻の近接性)の分析に基づいて決定され得る。
【0057】
実施形態においては、上で説明されたように決定されたさまざまなメタデータ、及び/又はメッセージのコンテンツは、メッセージをインデックス化し(例えば会話プリミティブを用いて)、及び/又はサーチングのさまざまなファセット(すなわちメッセージ配信サーバー107から結果を返すサーチクエリ)を促進するために用いられ得る。メッセージに関連付けられたメタデータが確定され得て、メッセージはメッセージ配信サーバー(群)110においてインデックス化され得る。ある実施形態において、メッセージは、会社の又はグループのメッセージが別個にインデックス化されるようにインデックス化され得る(例えば他のグループ及び/又は会社とシェアされていないグループ及び/又は会社に関連付けられた別個のインデックスにおいて)。ある実現例では、メッセージは、別個の分散化されたリポジトリにおいてインデックス化され得る(例えばセキュリティの目的のためにデータ隔離を促進するために)。もしメッセージに関連付けられた添付物が存在
するなら、その関連付けられたファイルのファイルコンテンツは、サーチングを促進するために、メッセージ配信サーバー(群)110においてそのようなファイルをインデックス化するために用いられ得る。ある実施形態においては、これらファイルは、別個の配信リポジトリにおいて会社の又はグループのファイルがインデックス化されるように、インデックス化され得る。同様に、ここで論述されるように、さまざまな外部アプリケーションシステム及び/又は処理アクションに関連付けられたアプリデータは、複数のグループに関連付けられたアプリデータが別個に記憶されるように、特定のグループのメッセージに関連付けられて記憶され得る。
【0058】
1つ以上のクライアントデバイス102-106及びグループベースコミュニケーションプラットフォーム118の間での電子メッセージ交換の例は、図1を参照して以下に説明される。
【0059】
図1に示されるように、グループベースコミュニケーションプラットフォーム118は、個別のクライアントデバイス102-106が、互いにメッセージをやりとりし、1つ以上の外部アプリケーションシステム112-116とインタラクトできるようにする。クライアントデバイス102-106の間でメッセージをやりとりするためには、個別のクライアントデバイス102-106は、メッセージ(例えばテキストベースのメッセージ、ファイルオブジェクト、ビデオ及び/又はオーディオストリーム、及び/又はこれらの類似物)をグループベースコミュニケーションプラットフォーム118に送信する。これらメッセージは、1つ以上のメッセージ配信サーバー(群)110に究極的には提供され、これがメッセージをインデックス化し、これらメッセージをそのメッセージの意図された受信者(例えばクライアントデバイス102-106)に配信する。
【0060】
図1の実施形態によれば、クライアントデバイス102-106は、クライアントデバイスのユーザーに利用可能なコンテキスト上関連するユーザーインターフェイスにおいて、受信されたメッセージを表示するよう構成される。例えば、グループベースコミュニケーションチャンネルの一部として第1クライアントデバイス102から送信されたメッセージは、そのグループベースコミュニケーションチャネルの他のメンバーに関連付けられたクライアントデバイス102-106上のユーザーインターフェイスディスプレイ内で表示される。
【0061】
ここでさらに詳細に論述されるように、メッセージは、外部アプリケーションシステム112-116に提供されることによって、それぞれの外部アプリケーションシステム内で実行可能な1つ以上の処理アクションを起動し得る。ある実施形態では、これら処理アクションは、グループベースで(例えば個別の処理アクションは、特定のグループのそれぞれのメンバーに利用可能である)、コミュニケーションチャンネルベースで(例えば個別の処理アクションは、特定のコミュニケーションチャンネルのそれぞれのメンバーに利用可能である)、個別ベースで(例えば個別の処理アクションは、特定の個別クライアントデバイス102-106に利用可能である)、送信ユーザーベースで(例えば個別の処理アクションは、特定のユーザーによって送信された特定のメッセージについてだけ利用可能である、メッセージは、特定の送信ユーザー識別子に関連付けられている、及び/又はこれらの類似物)、クライアントデバイス102-106に利用可能にされる。追加された限定として、ある処理アクションは、処理アクションを実行するよう構成された特定の外部アプリケーションシステムで直接に承認されるクライアントデバイス102-106を介してだけ実行可能であり得る(個別のクライアントデバイス102-106及び例示的外部アプリケーションシステム112の間の破線によって示されるように)。
【0062】
[さまざまな実施形態で利用される例示的装置]
それぞれのメッセージ配信サーバー(群)110は、図2に示される装置200のよう
な1つ以上の計算システムによって実現され得る。装置200は、プロセッサ202、メモリ204、入力/出力回路206、通信回路208、及びメッセージ増幅器回路210を含み得る。装置200は、図3-11についてここで説明された操作を実行するよう構成され得る。これら要素202-210は、機能的な限定について記載されているが、具体的な実現例は、特定のハードウェアの使用を必然的に含むことを理解されたい。これらの要素202-210のいくつかは、同様の又は共通のハードウェアも含み得ることも理解されたい。例えば、回路のうちの2つのセットが同じプロセッサ、ネットワークインターフェイス、記憶媒体等の使用を活用することで、それらの関連付けられた機能を実行し、重複するハードウェアが回路群のそれぞれのセットごとには必要がないようにする。
【0063】
ある実施形態においては、プロセッサ202(及び/又はコプロセッサ又はプロセッサを補助する又はそうでなければプロセッサに関連付けられた任意の他の処理回路)は、装置の要素の間で情報を受け渡しするためにバスを介してメモリ204と通信し得る。メモリ204は、非一時的であり、例えば1つ以上の揮発性及び/又は不揮発性メモリを含み得る。換言すれば、例えばメモリ204は、電子記憶装置(例えばコンピュータで読み取り可能な記憶媒体)であり得る。メモリ204は、装置200が、本発明の例示的実施形態に従ってさまざまな機能を実行できるようにするために、情報、データ、コンテンツ、アプリケーション、命令等を記憶するよう構成され得る。
【0064】
プロセッサ202は、いくつかの異なるやり方で実現され得て、例えば独立して実行するよう構成された1つ以上の処理装置を含み得る。ある好ましく非限定的な実施形態では、プロセッサ202は、命令の独立した実行、パイプライン処理、及び/又はマルチスレッディングを可能にするようにバスを介して並列に構成された1つ以上のプロセッサを含み得る。「処理回路」という語の使用は、装置の内部にあるシングルコアプロセッサ、マルチコアプロセッサ、マルチプロセッサ、及び/又はリモートつまり「クラウド」プロセッサを含むと理解されよう。
【0065】
いくつかの好ましい非限定的な実施形態においては、プロセッサ202は、メモリ204に記憶された又はそうでなければプロセッサ202にアクセス可能である命令を実行するよう構成され得る。ある好ましい非限定的な実施形態においては、プロセッサ202は、ハードコードされた機能を実行するよう構成され得る。よってハードウェア又はソフトウェアのいずれの方法によって構成されようとも、又はそれらの組み合わせによって構成されようとも、プロセッサ202は、そのように構成されている間は、本発明の実施形態による操作を実行することができるエンティティ(例えば回路として物理的に実現される)を表し得る。代替として、他の例として、プロセッサ202がソフトウェア命令の実行者として実現される時、これら命令は、命令が実行される時にプロセッサ202がここに記載されたアルゴリズム及び/又は操作を実行するようにプロセッサ202を具体的に構成し得る。
【0066】
一つの例として、プロセッサ202は、複数のクライアントデバイス102-106を接続する1つ以上の通信チャネルを維持することによって、それらの間でメッセージの共有を可能にするよう構成され得る。プロセッサ202は、特定の通信チャネル内のクライアントデバイス102-106の間でのやりとりが意図されたメッセージが、クライアントデバイス102-106を介して提供されたそれぞれのディスプレイウィンドウ内で表示されるように、それらクライアントデバイス102-106に適切に配布されることを確実にする。
【0067】
さらに、プロセッサ202は、特定の通信チャネルでやりとりされたメッセージを、その中でのメッセージの記憶及び/又はインデキシングのためにデータベースと同期化するよう構成され得る。ある実施形態では、プロセッサ202は、クライアントデバイス10
2-106への配布のために、記憶された及び/又はインデキシングされたメッセージを提供し得る。
【0068】
ある実施形態においては、装置200は、入力/出力回路206を含み得て、これが今度は、出力をユーザーに提供するために、またある実施形態では、ユーザー入力の表示を受け取るためにプロセッサ202と通信し得る。入力/出力回路206は、ユーザーインターフェイスを備え得て、ディスプレイを含み得て、ウェブユーザーインターフェイス、モバイルアプリケーション、クライアントデバイス、キオスク等を備え得る。ある実施形態では、入力/出力回路206は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイクロホン、スピーカ、又は他の入力/出力機構を含み得る。プロセッサを備えるプロセッサ及び/又はユーザーインターフェイス回路は、プロセッサにアクセス可能であるメモリ(例えばメモリ204及び/又はこれらの類似物)上に記憶されたコンピュータプログラム命令(例えばソフトウェア及び/又はファームウェア)を通して1つ以上のユーザーインターフェイス要素の1つ以上の機能を制御するよう構成され得る。
【0069】
通信回路208は、装置200と通信するネットワーク及び/又は任意の他のデバイス、回路、又はモジュールから/へデータを受信及び/又は送信するよう構成される、ハードウェアか、ハードウェア及びソフトウェアの組み合わせかのいずれかで実現されるデバイス又は回路のような任意の手段であり得る。この点で、通信回路208は、有線又は無線の通信ネットワークとの通信を可能にするネットワークインターフェイスを例えば含み得る。例えば、通信回路208は、1つ以上のネットワークインターフェイスカード、アンテナ、バス、スイッチ、ルータ、モデム、及びサポートするハードウェア及び/又はソフトウェア、又はネットワークを介した通信を可能にするのに適切な任意の他のデバイスを含み得る。追加として又は代替として、通信回路208は、アンテナ/アンテナ群を介した送信を行うために、又はアンテナ/アンテナ群を介して受け取られた信号の受信を扱うために、アンテナ/アンテナ群と相互作用するための回路を含み得る。
【0070】
メッセージ増幅器回路210は、1つ以上のクライアントデバイス102-106から他のクライアントデバイス102-106に受け取られた電子メッセージ及び関連付けられたメタデータをデータベースシャード(群)に基づいてコピー及び増幅するよう構成されたハードウェアを含む。メッセージ増幅器回路210は、これらのアクションを実行するためにプロセッサ202のような処理回路を利用し得る。しかし、ある実施形態では、メッセージ増幅器回路210は、ここで記載された機能を実行するための別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ(FPGA)、又は特定用途向け集積回路(ASIC)を含み得ることも理解されたい。メッセージ増幅器回路210は、これらの設計された機能を実現するハードウェア又はソフトウェアのいずれかによって構成された装置200のハードウェア要素を用いて実現され得る。
【0071】
ここで説明されている情報のうちの全て又は一部は、装置200の1つ以上の要素によって受信され、生成され、及び/又は保持されているデータに基づき得る。ある実施形態では、ここで説明されている機能のうちの少なくとも一部を提供するために、1つ以上の外部システム(リモートクラウドコンピューティング及び/又はデータストレージシステムのような)も活用され得る。
【0072】
「回路」という語は、ハードウェア、及び、ある実施形態においてはハードウェアを設定するためのソフトウェアを含むように広く理解されるべきである。したがって、それぞれの装置200の要素について、ここで用いられる「回路」という語は、ここで記載される特定の回路に関連付けられた機能を実行するよう構成された特定のハードウェアを含むように理解されるべきである。例えば、ある実施形態では、「回路」は、処理回路、記憶
媒体、ネットワークインターフェイス、入力/出力デバイス等を含み得る。ある実施形態では、装置200の他の要素は、特定の回路の機能を提供又は補充し得る。例えば、プロセッサ202は、処理機能を提供し得て、メモリ204は、記憶機能を提供し得て、通信回路208は、ネットワークインターフェイス機能を提供し得る等である。
【0073】
理解されるように、任意のそのようなコンピュータプログラム命令及び/又は他のタイプのコードは、コンピュータ、プロセッサ又は他のプログラム可能な装置の回路にロードされることによって、その機械上でコードを実行するコンピュータ、プロセッサ又は他のプログラム可能な回路が、ここで説明されるものを含むさまざまな機能を実現する手段を成すような機械が作り出される。
【0074】
上に説明されたように、及び本開示に基づいて理解されるように、本発明の実施形態は、方法、モバイルデバイス、バックエンドネットワークデバイス等として構成され得る。したがって実施形態は、ハードウェアだけを含む、又はソフトウェア及びハードウェアの任意の組み合わせを含むさまざまな手段を備え得る。さらに、実施形態は、記憶媒体内に実現されたコンピュータ読み取り可能なプログラム命令(例えばコンピュータソフトウェア)を有する、少なくとも1つの非一時的コンピュータ読み取り可能な記憶媒体上のコンピュータプログラム製品の形態をとり得る。非一時的ハードディスク、CD-ROM、フラッシュメモリ、光学記憶デバイス、又は磁気記憶デバイスを含む任意の適切なコンピュータ読み取り可能な記憶媒体が利用され得る。
【0075】
さらに、示されていないが、グループベース通信プラットフォームのさまざまな実施形態は、さまざまなグループベース通信チャネル内でやりとりされたメッセージを記憶及び/又はインデキシングするよう構成された1つ以上のデータベースを備え得る。
【0076】
[例示的データフロー]
図3は、1つ以上のクライアントデバイス102-106に利用可能なさまざまな処理アクションを作るためのさまざまなプロセスを図示するフローチャート300を提供する。ある実施形態では、処理アクションは、関連付けられたクライアントデバイス102-106を介したユーザーによる使用のためにグループベースコミュニケーションプラットフォーム118に利用可能にされ得る。さまざまな実施形態では、処理アクションは、グループベースコミュニケーションプラットフォーム118にアクセスしている任意のクライアントデバイスがさまざまな処理アクションにアクセスし得るように、グループベースコミュニケーションプラットフォーム118に公開され得る。他の実施形態では、処理アクションは、特定の処理アクションに関連付けられた外部アプリケーションシステム112-116を介して提供される追加の機能にアクセスできる特定のグループに利用可能にされ得る。そのような実施形態では、特定の処理アクションについての基礎となる設定データは、特定のグループに関連付けられたデータベースシャード(群)に記憶され、よってこの基礎となる設定データは、特定の処理アクションが、その特定のデータベースシャード(群)に関連付けられた任意のクライアントデバイスに利用可能であるようにする。
【0077】
ブロック302に始まり、グループベースコミュニケーションプラットフォーム118は、処理アクションデータを含む外部アプリケーションシステム112-116からアプリデータを受け取る。このアプリデータは、グループベースコミュニケーションプラットフォーム118から外部アプリケーションシステム112-116に提供されたデータ(例えばコンテナ内のコンテクスチュアルデータ及び/又はペイロードデータ)に基づいて外部アプリケーションシステム112-116において実行され得るさまざまな処理アクションと共に、外部アプリケーションシステム112-116からグループベースコミュニケーションプラットフォーム118に提供され得るさまざまなオブジェクト(例えばファイルオブジェクト)を示すデータを含み得る。図4及び図5を参照して説明されるよう
に、特定の処理アクションに関連付けられたアプリデータの一部は、グループベースコミュニケーションプラットフォーム118及び関連付けられた外部アプリケーションシステム112-116の間のデータ転送のために利用されるために、特定のプロキシエンドポイントを特定するデータを含み得て、特定の処理アクションに関連付けられたアプリデータは、処理アクションに関連付けられた1つ以上の識別子(例えばユーザーに表示されるべき名前及び/又は処理アクションを起動するために実行可能なプログラムを介して利用されるべきコールバック識別子)、処理アクションに関連付けられた記述、処理アクションに関連付けられた画像(例えばアイコン)及び/又はこれらの類似物を特定するデータを追加として含み得る。
【0078】
図3を再び参照して、特定の処理アクションを利用可能にするためのプロセスは、ブロック304で示されるように、続いて、特定のグループに対応するデータベースシャード内にアプリデータを記憶する。ここで説明されるように、アプリデータは、さまざまなグループについて個別に記憶され得て、したがってアプリデータは、特定のグループに関連付けられたデータベースシャード内に記憶されることによって、特定のグループに関連付けられたクライアントデバイス102-106は、記憶されたアプリデータに(したがって特定の処理アクションに関連付けられたアプリデータに)アクセスできる。よって、外部システム112-116によって提供された機能へのアップデートを提供する時には、アップデートは、それぞれのデータベースシャードを介して配布されかつ記憶されることによって、そのアップデートされたアプリデータは、個別のグループに利用可能である。ある実施形態では、アップデートは、特定のグループ及びデータベースシャードに関連付けられた管理者からの承認が得られるときだけ、個別のデータベースシャードに配布され得る。同様に、新しい処理アクションを導入する時、その新しい処理アクションに関連付けられたアプリデータは、特定の外部アプリケーションシステム112-116に関連付けられたアプリデータを有する全てのデータベースシャード(群)に配布される。
【0079】
特定の処理アクションを、特定のグループに関連付けられたクライアントデバイス102-106に利用可能にすることは、図3のブロック306に示されるように続く。ここで図示されるように、グループベースコミュニケーションプラットフォーム118は、特定の外部アプリケーションシステム112-116によって提供されたアプリデータ内で定義された1つ以上の処理アクションを特定する。ある実施形態では、アプリデータは、アプリを介して利用可能であるさまざまな機能を定義するデータとしても一般に提供され得るが、アプリデータは、特定の処理アクションを具体的に参照して外部アプリケーションシステム112-116から提供され得て(例えば既存のアプリのアップデートとして提供される)、処理アクションは、その中の複数の機能のうちの1つとして特定され得る。特定された処理アクションは、特定のグループに関連付けられたクライアントデバイス102-106に利用可能である1つ以上の処理アクションを特定するアクションテーブルに入力するために利用され得る。ある実施形態では、それぞれのデータベースシャード内に複数のアクションテーブルが記憶され得て、それぞれのアクションテーブルは、特定の外部アプリケーションシステム112-116に対応する。例えば、第1アクションテーブルは、第1外部アプリケーションシステム112から利用可能な処理アクションを特定し得て、第2アクションテーブルは、第2外部アプリケーションシステム114から利用可能な処理アクションを特定し得る。さらに他の例では、それぞれのデータベースシャードの中に単一のアクションテーブルが提供され得て、この場合、この単一のアクションテーブルは、複数の外部アプリケーションシステム112-116から利用可能な処理アクションを含め、特定のグループに関連付けられたクライアントデバイス102-106に利用可能な全ての処理アクションを特定する。
【0080】
ある実施形態では、アクションテーブルは、そこで特定されたそれぞれの処理アクションのさまざまな特性を特定する。例えば、このアクションテーブルは、特定の処理アクシ
ョン、特定の処理アクションと共に使用する資格がある特定のメッセージ、特定の処理アクションを使用する資格がある特定のユーザー、及び/又はこれらの類似物がクライアントデバイス102-106に提示されるべきである、インスタンスを特定する。
【0081】
最後に、図3のブロック310に示されるように、グループベースコミュニケーションプラットフォーム118は、特定のクライアントデバイス102-106に利用可能である処理アクション、個別のクライアントデバイス102-106からのリクエストを受信するとクライアントデバイス102-106に利用可能である処理アクションを示すデータを提供する。例えば、クライアントデバイス102-106は、特定の選択要素704を選ぶユーザー入力を受け取り得て(図7に図示されるように、ここでより詳細に説明される)、グループベースコミュニケーションプラットフォーム118に利用可能な処理アクションのキュレートされたリストを求めるリクエストを送信し得る。図6図11を参照してより詳細に説明されるように、グループベースコミュニケーションプラットフォーム118は、クライアントデバイスを介してユーザーインターフェイス要素を介して表示されるべき、利用可能な処理アクション(アクションテーブル内で定義された処理アクション)のうちの少なくともサブセットのキュレートされたリストを提供する。
【0082】
ある実施形態では、アクションテーブルは、グループベースコミュニケーションプラットフォーム118において(例えばデータベースシャードを介して)記憶された状態を維持し得て、通信ネットワーク108を介してクライアントデバイス102-106によって選択可能にアクセス可能であり得る。しかし、ある実施形態では、アクションテーブルの少なくとも一部(例えばキュレートされたリストに入力するために利用されるアクションテーブルの一部)は、クライアントデバイス102-106上にローカルに記憶され得る(例えばクライアントデバイス102-106上でグループベースコミュニケーションアプリのセットアップがなされると入力されるキャッシュメモリを介して)。
【0083】
さらに、アップデートは、それぞれの外部アプリケーションシステム112-116からアクションテーブル(又はアクションテーブル内に示される処理アクション)に提供され得る。ある実施形態では、個別の処理アクションに対するアップデートは、適用可能な外部アプリケーションシステム112-116から個別に提供され得て、又は処理アクションに対するアップデートは、適用可能な外部アプリケーションシステム112-116からグループとして提供され得ることによって、アップデートデータの単一の送信が、特定の外部アプリケーションシステム112-116から提供され得て、その外部アプリケーションシステム112-116に関連付けられた複数の処理アクションについてのアップデートを同時に提供する。
【0084】
図4は、特定の処理アクションの使用を可能にする、デベロッパに提示される(例えばデベロッパによって使用可能なクライアントデバイス102-106を介して)デベロッパユーザーインターフェイスのワイヤーフレーム400を示す。図4に示されるように、デベロッパユーザーインターフェイスは、特定の処理アクションについての外部アプリケーションシステム112-116に関連するリクエストURLを特定するユーザー入力を受け取るよう構成される。このURLは、任意のデータ(例えばコンテナ内に含まれるコンテクスチュアルデータ及び/又はペイロードデータ、インタラクティブダイアログに応答してクライアントデバイス102-106から提供される追加データ、及び/又はこれらの類似物)が外部アプリケーションシステム112-116に提供されることによって、外部アプリケーションシステム112-116がリクエストされた処理アクションを特定し、リクエストされた処理アクションを実行できるようにする。さらに、デベロッパユーザーインターフェイスは、追加として、特定の処理アクションがグループベースコミュニケーションプラットフォーム118のユーザーに利用可能になるようにさせるプロセスを起動するユーザー入力(クライアントデバイス102-106を介して)を受け取るよ
う構成される(ここで図3のフローチャート300を参照して説明されるように)。具体的には、図4の例示的ワイヤーフレーム400で示されるように、ユーザーインターフェイスは、関連するデータをグループベースコミュニケーションプラットフォーム118に例えば図5において図示されここで説明されるワイヤーフレーム500を介して提供するためのプロセスを起動するために選択され得る、インタラクティブな「新しいアクションを作成する」というインターフェイス要素を含む。
【0085】
さらに、図4に示されるように、グループベースコミュニケーションプラットフォーム118は、クライアントデバイス102-106に提示されるべきダイナミックコンテンツに関する追加データを受け取るよう構成される。そのようなダイナミックコンテンツは、外部アプリケーションシステムに固有であり得て、外部アプリケーションシステム112-116内での特定の用法のためのデータ(例えばペイロードデータ)を仕向けるために利用され得る。例えば、ダイナミックデータは、外部アプリケーションシステム112-116内でさまざまな既存のデータを特定し得て、それによって外部アプリケーションシステム112-116は、当該コンテナのコンテンツをそこでの適切な用法に仕向け得る。
【0086】
図4を参照して上述したように、図5のワイヤーフレーム500は、グループベースコミュニケーションプラットフォーム118のユーザー(例えば特定のグループに関連付けられたクライアントデバイス102-106)に利用可能にされるべき処理アクションの機能に関する追加データを受け取るよう構成されたセカンダリーデベロッパユーザーインターフェイスを提供する。図3のフローチャート300を参照して説明されたように、ある実施形態の処理アクションに固有のデータは、処理アクション名及びクライアントデバイス102-106に提示されるべき記述(例えば適切なユーザーインターフェイスを介して)、その処理アクションに関連付けられるべきアイコン又は他の画像、及びコンテナ内に含まれるデータと共に利用されるべき関連する処理アクションを特定するためにコンテナと共に含まれ得るコールバックIDを含む。ある実施形態では、処理アクションの実行可能な部分は、関連する外部アプリケーションシステムにおいてローカルに記憶されることによって、グループベースコミュニケーションプラットフォーム118は、関連するデータを適切なフォーマットで外部アプリケーションシステムに提供し(例えば、処理アクションのセットアップの間に特定されたURLを介してデータを提供するAPIを介して)、処理アクションに関連するさまざまなインタラクティブダイアログ及び/又は他のメッセージをリクエストしているクライアントデバイス102-106に提供する。
【0087】
図6は、ある実施形態によって処理アクションを起動/実行することに関与する例示的ステップを提供するフローチャート600を示す。そこで示されるように、処理アクションを起動するプロセスは、ブロック602において示されるように、特定のメッセージについて処理アクションを求めるリクエストを受け取ると始まる。リクエストを受け取ると、グループベースコミュニケーションプラットフォーム118は、ブロック604で示されるように、利用可能な処理アクションのキュレートされたリストを生成し、かつリクエストしているクライアントデバイス102-106に提供する(例えば、ここで説明されるように図8及び図9のキュレートされたリスト804又はキュレートされたリスト902で表示されるように)。ある実施形態では、初期リクエストは、選択要素704(図7で示されるように)、及び/又は選択要素704とインタラクトすると表示される処理アクションオプション706が選択されると、クライアントデバイス102-106において生成され得る。ここで説明されるように選択要素704は、メッセージに固有であってもよく、その場合、特定のメッセージについて選択要素704とインタラクトし(例えばコミュニケーションチャンネル内でシェアされるテキストベースのメッセージ702、ファイルオブジェクト、複数のテキストベースのメッセージ及び/又はファイルオブジェクト、及び/又はこれらの類似物)、処理アクションを選択すると、処理アクションが選択
されたメッセージについて処理アクションが実行される。
【0088】
図に示されるように、利用可能な処理アクションのキュレートされたリストは、クライアントデバイス102-106において表示されるべき利用可能な処理アクションの定義された個数のリストを含み得る。キュレートされたリスト内に含まれるべき処理アクションの個数は、処理アクションが起動させられるべきメッセージの特性(例えば、そのメッセージに関連付けられた送信ユーザー識別子、メッセージそのもののコンテンツ、メッセージがシェアされたコミュニケーションチャンネル、及び/又はこれらの類似物)、リクエストしているクライアントデバイス102-106の特性(例えば、クライアントデバイス102-106がモバイルデバイス、デスクトップデバイス、及び/又はこれらの類似物であるか)、及び/又はこれらの類似物に基づいて特定され得る。
【0089】
さらに、処理アクションがキュレートされたリスト内で表示される順番と共に、キュレートされたリストのコンテンツ(例えば、キュレートされたリスト内に含まれるべき処理アクション)は、メッセージの特性(例えば送信ユーザー識別子、そのメッセージに関連付けられたチャンネル識別子、及び/又はこれらの類似物)、個別のクライアントデバイス102-106に記憶されたユーザーの好みを示すデータ、クライアントデバイス102-106による過去の処理アクションの使用を示すデータ(例えば最も最近に利用された処理アクション及び/又は最もよく利用される処理アクションを示す)に少なくとも部分的に基づいて特定され得る。グループベースコミュニケーションプラットフォーム118は、クライアントデバイス102-106を介して利用可能な処理アクションのキュレートされたリストの表示の適切な順序を生成するために、1つ以上のアルゴリズム(例えば機械学習アルゴリズム)を利用し得る。
【0090】
ブロック606において示されるように、グループベースコミュニケーションプラットフォーム118は、特定のメッセージについて起動されるべき特定の処理アクションの選択を受け取る。リクエストしているクライアントデバイス102-106は、対応するユーザー入力を受け取ると、リクエストされた処理アクションを特定するデータをグループベースコミュニケーションプラットフォーム118に提供する。ある実施形態では、選択された処理アクションは、キュレートされたリストから選択され得るが、処理アクションは、ここで説明されるアクションテーブル内で示されるように全ての利用可能な処理アクションをナビゲートするために利用され得るサーチインターフェイス内で選択されてもよい。
【0091】
ブロック608で示されるように、グループベースコミュニケーションプラットフォーム118は、選択された処理アクションが使用するのに利用可能かを確定するために検証チェックを実行する。実行のための特定の処理アクションの選択の後に起こるとして図示されているが、ブロック608について説明される検証チェックは、任意の時点で実行され得ることが理解されるべきである。例えば、検証チェックは、リクエストしているクライアントデバイス102-106に提供されるべきキュレートされたリストを生成する前に実行されてもよい。例えば、検証チェックは、特定の処理アクションが関連するデータの送信のための関連付けられたURLを有するか、特定の処理アクションが外部アプリケーションシステムから提供された他のアプリデータ内で反映されているか、及び/又はこれらの類似物を確定し得る。処理アクションが利用不可能であると確定すると、処理アクションを実行するプロセスは、停止し得て、エラーメッセージがクライアントデバイス102-106を介して表示され得る。ある実施形態では、処理アクションは、アクションテーブルからその後、除去され得て、その結果、その後のリクエストに対しては、その後、利用不可能だと示される。
【0092】
さらに、図6では示されていないが、リクエストされた処理アクションに関連付けられ
たグループベースコミュニケーションプラットフォーム118及び/又は外部アプリケーションシステム112-116は、リクエストしているクライアントデバイスが関連付けられたアカウント及び/又は他のユーザーログインを外部アプリケーションシステム112-116について有しているかを確定するために認証チェックを実行し得る。例えば、外部アプリケーションシステム112-116は、ユーザー固有の機能を提供し得て、したがってクライアントデバイスは、そのような機能を提供するために、外部アプリケーションシステム112-116で認証されなければならない。さまざまな実施形態では、認証は、グループベースコミュニケーションプラットフォーム118を介して提供され得ることで、外部アプリケーションシステム112-116が、グループベースコミュニケーションプラットフォーム118を通して提供された処理アクションを実行したいというリクエストを、外部アプリケーションシステム112-116に記憶された既存のユーザーアカウント(及び関連付けられたユーザー固有の機能)に関連付けることができるようにする。グループベースコミュニケーションプラットフォーム118を介した認証は、クライアントデバイス102-106に提供され、外部アプリケーションシステム112-116に記憶されたアカウントのためのユーザー識別子及び/又はパスワードのユーザー入力を受け取るよう構成されたインタラクティブダイアログを介して実行され得る。認証プロセスを介して受け取られたデータは、コンテナ(ここでより詳細に論述される)の一部として外部アプリケーションシステム112-116に渡されることによって、外部アプリケーションシステム112-116は、外部アプリケーションシステム112-116に記憶された認証されたユーザーアカウントを、コンテナで提供されたクライアント識別子(例えばクライアントトークン)に関連付けることが可能になり得る。
【0093】
選択された処理アクションが利用可能であることを確定すると、ブロック610で示されるように、グループベースコミュニケーションプラットフォーム118は、リクエストされた処理アクションのためのコンテクスチュアルデータ及びペイロードデータを含むコンテナを生成する。ここで論じられるように、このコンテナは、リクエストされた処理アクションを特定するために、処理アクションをリクエストしているクライアントデバイスを特定するために、及び/又は処理アクションが実行されるべきメッセージを特定するために、外部アプリケーションシステムによって使用可能なデータを特定するコンテクスチュアルデータ含む。具体的な例として、グループベースコミュニケーションプラットフォーム118は、(1)1つ以上の確証(verification)トークン(例えばグループベースコミュニケーションプラットフォーム118の確証トークン)、(2)グループ識別子、(3)チャンネル識別子、(4)ユーザー識別子(例えば特定の処理アクションをリクエストするクライアントデバイス102-106を特定する、クライアントデバイス102-106に固有のクライアントトークン)、(5)処理アクション識別子(例えば処理アクション名、及び/又は他の特定するストリング)、(6)処理アクションのタイプを定義するアクションタイプ、(7)処理アクションの初期化に応答してクライアントデバイス102-106に提示されるべきインタラクティブダイアログを定義するトリガ、(8)外部アプリケーションシステムが応答(例えば確認(confirmation)応答)をリクエストしているクライアントデバイス102-106に戻すように送信できるようにする応答URL、(9)処理アクションがリクエストされた時を示すタイムスタンプ、及び/又はこれらの類似物を含むコンテナのためのコンテクスチュアルデータをアセンブルする。このコンテナは、処理アクションがリクエストされた対象であるメッセージを含むペイロードデータを追加として含む。
【0094】
コンテナが生成されると、グループベースコミュニケーションプラットフォーム118は、ブロック612で示されるように、コンテクスチュアルデータ内で特定されたプロキシエンドポイントを介してコンテクスチュアルデータで特定された外部アプリケーションシステム112-116にこのコンテナを提供する。プロキシエンドポイントは、コンテナをグループベースコミュニケーションプラットフォーム118から外部アプリケーショ
ンシステム112-116へ渡すAPIを提供することによって、外部アプリケーションシステム112-116が、コンテナ内のコンテクスチュアルデータ及び/又はペイロードデータを消費できるようにしつつ、リクエストされた処理アクションを実行する。ブロック614に示されるように、コンテナを外部アプリケーションシステム112-116に提供することに起因して、外部アプリケーションシステム112-116は、コンテクスチュアルデータにおいて特定された、リクエストされた処理アクションを起動する。
【0095】
ここで論じられるように、処理アクションは、外部アプリケーションシステム112-116が、外部アプリケーションシステム112-116に関連付けられたデータリポジトリ内に記憶されるべき新しいデータオブジェクトを生成し、外部アプリケーションシステム112-116に関連付けられたデータリポジトリ内に記憶された既存のデータオブジェクトを変更し、外部アプリケーションシステム112-116に関連付けられたデータリポジトリ内に記憶された既存のデータオブジェクトを消去し、及び/又はこれらの類似物をするようにさせ得る。例えば、外部アプリケーションシステム112-116は、カレンダーアプリを実行し得て、したがって、処理アクションは、外部アプリケーションシステム112-116に関連付けられたデータリポジトリ内に記憶されるべき新しいカレンダーエントリーを生成するよう構成され得る。さらに別の例では、外部アプリケーションシステム112-116は、ソフトウェアバグトラッキングシステムとして実現され得て、したがって、処理アクションは、グループベースコミュニケーションプラットフォーム118内で共有された特定のメッセージ内で特定された追加情報によって、特定のソフトウェアバグに関連付けられた既存のレコードを編集し得る。
【0096】
ブロック616及びブロック618に示されるように、処理アクションを実行することの一部として、外部アプリケーションシステム112-116は、グループベースコミュニケーションプラットフォーム118がリクエストしているクライアントデバイスにインタラクティブダイアログを提供するようにさせる、グループベースコミュニケーションプラットフォーム118に応答を提供する。図11は、ここでより詳細に論じられるが、処理アクションを実行しながら、利用されるべき追加データをリクエストするために、クライアントデバイス102-106上で表示されるユーザーインターフェイスを介して提示される例示的インタラクティブダイアログ1102を提供する。図6のブロック620に示されるように、ある実施形態では、インタラクティブダイアログは、処理アクションの実行に基づいて編集されるべき、外部アプリケーションシステム112-116に関連付けられたデータリポジトリに記憶された特定のデータオブジェクトを示すデータをリクエストし得る。図6のブロック622に示されるように、インタラクティブダイアログは、ペイロードデータと共に外部アプリケーションシステムに提供されるべき追加のコメントとして追加のデータ(例えば、テキストベースのデータ、画像、及び/又はこれらの類似物)を受け取るよう加えて構成され得る。
【0097】
グループベースコミュニケーションプラットフォーム118は、コンテナを外部アプリケーションシステム112-116に渡す結果、遭遇され得る1つ以上のエラー状態を解釈するよう加えて構成され得る。例えば、もしグループベースコミュニケーションプラットフォーム118が、規定された期間(例えばプロキシエンドポイントを介してコンテナを送信した後、5秒)内に、外部アプリケーションシステム112-116から応答を受け取らないなら、グループベースコミュニケーションプラットフォーム118は、エラーメッセージ(例えば、コミュニケーションインターフェイス内で表示されるアイコン、ダイアログ、又はメッセージの形態である)を提供し得る。さらに他の例として、エラーが発生したことを示す応答を外部アプリケーションシステム112-116から受領すると、グループベースコミュニケーションプラットフォーム118は、受領されたエラー応答を、リクエストしているクライアントデバイス102-106に通信するよう構成され得る。グループベースコミュニケーションプラットフォーム118は、応答の受領を待つが
、クライアントデバイス102-106は、リクエストされた処理アクションを示すオープンダイアログを維持することによって、受領され、クライアントデバイス102-106に渡された全てのエラーが、最近にリクエストされた処理アクションに容易に関連付けられ得るようにし得る。
【0098】
ブロック624に示されるように、いったん外部アプリケーションシステム112-116がリクエストされた処理アクションの実行を完了すると、外部アプリケーションシステム112-116は、確認応答をグループベースコミュニケーションプラットフォーム118に提供し、ブロック626に示されるように、グループベースコミュニケーションプラットフォーム118は、確認メッセージをリクエストしているクライアントデバイスに提供する。ある実施形態では、確認メッセージは、リクエストしているクライアントデバイス102-106のユーザーインターフェイスを介して表示されるダイアログを介して表示され得て、又は確認メッセージは、グループベースコミュニケーションプラットフォーム118を介して交換されるメッセージとして表示され得る。ある実施形態では、確認メッセージは、ペイロードデータのメッセージがもともと共有されていたのと同じコミュニケーションチャンネル内で表示され得る(例えば確認メッセージは、特定のコミュニケーションチャンネルへのアクセスを有する全てのクライアントデバイス102-106に可視であるように、パブリックに共有され得て、又は確認メッセージは、プライベートに共有されることによって、リクエストしているクライアントデバイス102-106だけに可視であり得る)。確認メッセージは、代替としては、リクエストしているクライアントデバイス102-106と外部アプリケーションシステム112-116との間で動作可能な別個のコミュニケーションチャンネルを介してリクエストしているクライアントデバイス102-106に提供され得る(例えばメッセージをクライアントデバイス102-106に提供するアプリを動作させる)。
【0099】
図7は、クライアントデバイス102-106を介して可視であるグループベースコミュニケーションインターフェイスを提供する例示的ワイヤーフレーム700である。図7に示される例は、「#general」コミュニケーションチャンネル内でさまざまなクライアントデバイス102-106の間で共有されるメッセージを図示する。図7で示されるように、選択要素704は、テキストベースのメッセージ702について選択されており、それによって選択されたテキストベースのメッセージ702について実行され得るアクションアイテムの可視メニューを提供する。これらの表示されたオプションのうちの1つは、処理アクション706であり、これは、選択されたテキストベースメッセージ702について実行され得る、利用可能な処理アクションのオプション(例えば図8に示されるようにキュレートされたリスト804)をユーザーインターフェイスに表示させる。
【0100】
図8は、クライアントデバイス102-106を介して可視であるようにグループベースコミュニケーションインターフェイスを提供する別の例示的ワイヤーフレーム800を示す。図8に示される例は、「#random」コミュニケーションチャンネル内でさまざまな
クライアントデバイス102-106の間で共有されるメッセージを図示する。図8に示されるように、選択要素(不図示)がテキストベースメッセージ802について選択されてから、その選択されたテキストベースメッセージ802について実行され得る、表示されるべきアクションアイテムの可視のメニューが生成される。可視メニューの一部として、利用可能な処理アクションのキュレートされたリスト804は、「より多くのメッセージアクション」アイテムを選択することによって、追加の利用可能な処理アクションをレビューするオプションと共に表示される。
【0101】
図9は、グループベースコミュニケーションインターフェイスで提供され得る、特にモバイルデバイスを介して提供され得るような、ユーザーインターフェイスのさらに別の例示的ワイヤーフレーム900を提供する。図9に示される例は、特定のメッセージを選択
するユーザー入力の受領と共に、クライアントデバイス102-106を介して表示され得るアクションアイテムの可視メニューを図示する。図9に示されるように、可視メニューは、「より多くのメッセージアクション」アイテムを選択することによって、追加の利用可能な処理アクションをレビューするオプションと共に、利用可能な処理アクションのキュレートされたリスト902を含む。
【0102】
図10は、グループベースコミュニケーションインターフェイスによって、特にモバイルデバイスを介して提示され得るような、ユーザーインターフェイスの別の例示的ワイヤーフレーム1000を提供する。図10に示される例は、前述の図9に示されるように、「より多くのメッセージアクション」アイテムをユーザーが選択すると表示され得る、例示的メニュー提供する。図10のワイヤーフレーム1000は、特定の処理アクションをサーチするユーザー入力を受け取るよう構成されたサーチ機能を含む。ワイヤーフレーム1000は、選択されたメッセージについての利用可能な処理アクションの完全なリストをさらに含む。ここで論じられるように、ワイヤーフレーム1000で示されるリスティング内で特定された処理アクションは、グループベースコミュニケーションプラットフォーム118に関連付けられたデータリポジトリ内に記憶され、特定のグループ、チャンネル、メッセージ、クライアントデバイス、及び/又はこれらの類似物について利用可能である処理アクションを特定する、アクションテーブルから特定される。
【0103】
図11は、実行されるべき処理アクションをリクエストした後で、クライアントデバイス102-106を介して表示可能である例示的インタラクティブダイアログ1102を図示するワイヤーフレーム1100である。図11に示されるように、インタラクティブダイアログ1102は、コンテナのペイロードデータが関連付けられるべき特定のストーリー(例えばデータオブジェクト)を示すデータを受け取るよう構成される。さらに、インタラクティブダイアログ1102は、コンテナのペイロードデータに関連付けられ、リクエストされた処理アクションを実行するために外部アプリケーションシステムによって利用され得る追加のコメントを受け取るよう構成され得る。
【0104】
[結論]
多くの改変及び他の実施形態には、本開示が関連する技術における当業者なら、前述の記載及び関連する図面において提示された教示を利用し、想到することができよう。したがって、本開示は、開示された特定の実施形態に限定されるべきではなく、改変及び他の実施形態は、添付の特許請求の範囲の範囲内に含まれるよう意図されていると理解されるべきである。ここでは特定の語が採用されているが、それらは一般的な叙述的な意味で用いられているのに過ぎず、限定を目的としたものではない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11