(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-18
(45)【発行日】2024-04-26
(54)【発明の名称】チャットボット制御装置およびチャットボット制御方法
(51)【国際特許分類】
G06F 21/62 20130101AFI20240419BHJP
【FI】
G06F21/62
(21)【出願番号】P 2021003191
(22)【出願日】2021-01-13
【審査請求日】2023-08-24
(73)【特許権者】
【識別番号】316013389
【氏名又は名称】ウイングアーク1st株式会社
(74)【代理人】
【識別番号】100105784
【氏名又は名称】橘 和之
(72)【発明者】
【氏名】河瀬 康弘
(72)【発明者】
【氏名】渡辺 博憲
(72)【発明者】
【氏名】上條 直人
【審査官】平井 誠
(56)【参考文献】
【文献】特開2018-200602(JP,A)
【文献】特開平11-031132(JP,A)
【文献】特開2019-191958(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
外部チャットシステムを通じてチャットボットに送られてくるユーザからの要求に応じて処理を実行し、その結果として得られる情報を上記チャットボットから上記外部チャットシステムを通じてユーザに提供するシステムにおいて、上記チャットボットの動作を制御する装置であって、
上記外部チャットシステムの利用ユーザである外部ユーザに関する外部ユーザ情報と、上記チャットボットの利用ユーザである内部ユーザに関する内部ユーザ情報との関連付け情報を記憶するユーザ情報記憶部と、
上記内部ユーザによる上記チャットボットに対する接続の実行権限に関する情報と、上記チャットボットに紐付けられた処理の実行権限に関する情報とを上記内部ユーザ情報に関連付けて記憶する実行権限記憶部と、
上記外部チャットシステムから上記チャットボットに対して上記外部ユーザ情報と共に送られてくるユーザからの要求を受けたときに、上記外部ユーザ情報をもとに上記ユーザ情報記憶部を参照して、上記外部ユーザ情報を上記内部ユーザ情報に置換するユーザマッピング部と、
上記ユーザマッピング部により置換された上記内部ユーザ情報をもとに上記実行権限記憶部を参照して、上記チャットボットに対する接続の実行権限を判定し、接続の実行権限がある場合は、上記処理の実行権限を更に判定し、ユーザからの要求に応じた処理を実行するか否かを決定する実行制御部とを備えた
ことを特徴とするチャットボット制御装置。
【請求項2】
上記ユーザ情報記憶部は、上記外部ユーザ情報と上記内部ユーザ情報との関連付けに加え、上記外部ユーザが上記外部チャットシステムにアクセスする情報空間として設定されたテナントである外部テナントに関する外部テナント情報と上記外部ユーザ情報との関連付けに関する情報を記憶し、
上記外部テナント情報と、上記チャットボットが存在する情報空間として設定されたテナントである内部テナントに関する内部テナント情報との関連付け情報を記憶するテナント情報記憶部と、
上記外部チャットシステムから上記チャットボットに対して上記外部ユーザ情報と共に送られてくるユーザからの要求を受けたときに、上記外部ユーザ情報をもとに上記ユーザ情報記憶部を参照して、上記外部テナント情報を取得するテナント情報取得部と、
上記テナント情報取得部により取得された上記外部テナント情報をもとに上記テナント情報記憶部を参照し、上記外部テナント情報を上記内部テナント情報に置換するテナントマッピング部とを更に備えた
ことを特徴とする請求項1に記載のチャットボット制御装置。
【請求項3】
上記チャットボットが実行する処理は、上記ユーザからの要求とは無関係に所定の事象をトリガとして実行してその結果得られる情報を上記外部チャットシステムに提供するプッシュ処理を含み、
上記実行制御部は、上記プッシュ処理に関しては、上記実行権限による制限を行わずに上記チャットボットの実行を常に許可する
ことを特徴とする請求項1または2に記載のチャットボット制御装置。
【請求項4】
上記プッシュ処理を行う際に、上記ユーザマッピング部が上記内部ユーザ情報を上記外部ユーザ情報に置換し、当該置換した外部ユーザ情報を用いて、上記チャットボットから上記外部チャットシステムへのアクセスを行うことを特徴とする請求項3に記載のチャットボット制御装置。
【請求項5】
外部チャットシステムを通じてチャットボットに送られてくるユーザからの要求に応じて処理を実行し、その結果として得られる情報を上記チャットボットから上記外部チャットシステムを通じてユーザに提供するシステムにおいて、チャットボット制御装置が上記チャットボットの動作を制御する方法であって、
上記チャットボット制御装置のユーザマッピング部が、上記外部チャットシステムから上記チャットボットに対して外部ユーザ情報と共に送られてくるユーザからの要求を受けたときに、上記外部チャットシステムの利用ユーザである外部ユーザに関する外部ユーザ情報と、上記チャットボットの利用ユーザである内部ユーザに関する内部ユーザ情報との関連付け情報を記憶したユーザ情報記憶部を参照して、上記外部ユーザ情報を上記内部ユーザ情報に置換する第1のステップと、
上記チャットボット制御装置の実行制御部が、上記内部ユーザによる上記チャットボットに対する接続の実行権限に関する情報と、上記チャットボットに紐付けられた処理の実行権限に関する情報とを上記内部ユーザ情報に関連付けて記憶した実行権限記憶部を、上記ユーザマッピング部により置換された上記内部ユーザ情報をもとに参照して、上記チャットボットに対する接続の実行権限を判定し、接続の実行権限がある場合は、上記処理の実行権限を更に判定し、ユーザからの要求に応じた処理を実行するか否かを決定する第2のステップとを有する
ことを特徴とするチャットボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、チャットボット制御装置およびチャットボット制御方法に関し、特に、外部チャットシステムを通じてチャットボットに送られてくる要求に応じて処理を実行し、その結果として得られる情報をチャットボットから外部チャットシステムを通じてユーザに提供するシステムに用いて好適なものである。
【背景技術】
【0002】
近年、主にテキストを双方向でやり取りするリアルタイムコミュニケーションの仕組みである「チャット」と、人間に代わって一定のタスクを自動実行するためのプログラムが組み込まれた「ロボット」とを組み合わせた自動会話プログラム、いわゆるチャットボットの開発が進み、広く利用されている。人間同士が会話するチャットに対して、チャットボットでは、人間と、人工知能を組み込んだコンピュータとが対話することになる。
【0003】
ビジネス上の様々な業務に使われているビジネスチャットにおいても、このチャットボットを用いているものが少なくない。ビジネスチャットは、電子メールの代わりにチャットを用いることによって社内でのコミュニケーションを円滑にすることを主目的としたものであり、チャットによる業務連絡のほか、業務上のタスク管理、スケジュール管理、効率的な情報共有、ワークフロー管理、書類自動作成などの機能を備えたものも提供されている。
【0004】
ところで、ユーザが使用する端末装置からの要求に応じて情報提供サーバが端末装置に情報を提供するようになされたウェブシステムでは、情報提供サーバにおいて、ユーザIDやパスワードなどの認証情報を用いてアクセス制限を行うことが一般的である。このアクセス制限には、端末装置から情報提供サーバへの接続自体を制限するものの他、情報提供サーバから端末装置へ提供する情報や機能をユーザごとに制限するものがある。ユーザは、情報提供サーバに許可された範囲内で、情報提供サーバの情報資源に対してアクセスを行うことが可能とされる。このようなアクセス制限は、上述のチャットボット(特に、ビジネスチャット)を用いたシステムにも適用されることが多い。
【0005】
例えば、情報提供サーバに格納された情報に対してどのような操作(参照、更新、削除等)を許可するか、情報提供サーバが提供する各種処理のうちどの処理を実行可能とするかなどの実行権限をユーザごとに設定しておき、権限なき使用は許可しないようにするものが知られている(例えば、特許文献1,2参照)。
【0006】
特許文献1に記載のシステムでは、クライアントマシンのWebブラウザ上に表示される画面上で、ユーザによって任意のボタンが操作されることで、この操作に対応するリクエストを受け取ると、このユーザがこのリクエストを要求する権限を有する者であるか否かを判定する。ここで、権限を有すると判定された場合には、メソッド実行部における当該リクエストに対応するメソッドを呼び出して処理を実行させる。一方、権限を有しないと判定された場合には、このメソッド呼出は行わない。
【0007】
特許文献2に記載のシステムでは、情報提供サーバが外部ユーザからの情報取得要求を受けたときに、その外部ユーザに関する外部ユーザ情報と、アクセス権限に応じて内部であらかじめ定義づけられる内部ユーザに関する内部ユーザ情報との写像を作成することにより、外部ユーザを対応する内部ユーザに変換し、変換された内部ユーザのアクセス権限に応じて情報資源を外部ユーザに提供する。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2006-268125号公報
【文献】特許第3545573号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
チャットボットを用いたシステムを構築する場合に、既に広く提供されているチャットシステム(以下、外部チャットシステムという)と連携してシステムを構成したいとするニーズがある。この場合のシステムは、外部チャットシステムから内部のチャットボットに対してアクセスを行い、内部のチャットボットから外部チャットシステムを通じてユーザに情報を提供するものとなる。このようなシステムについて、ユーザに対するアクセス制限をどのように設定するかが課題となる。しかしながら、上記特許文献1,2に記載のシステムでは、チャットボットを用いたシステムに対するアクセス制限については言及していない。
【0010】
本発明は、このような問題を解決するために成されたものであり、外部チャットシステムと内部のチャットボットとを連携したシステムにおいて、外部チャットシステムを通じてチャットボットにアクセスしてくるユーザに対して、アクセス制限を適切に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【0011】
上記した課題を解決するために、本発明では、外部チャットシステムからチャットボットに対して送られてくるユーザからの要求を受けたときに、当該要求と共に送られた外部ユーザ情報(外部チャットシステムの利用ユーザである外部ユーザに関する情報)をもとにユーザ情報記憶部を参照して、外部ユーザ情報を内部ユーザ情報(チャットボットの利用ユーザである内部ユーザに関する情報)に置換する。そして、置換された内部ユーザ情報をもとに実行権限記憶部を参照することにより、内部ユーザによるチャットボットに対する接続の実行権限を判定し、接続の実行権限がある場合は、チャットボットに紐付けられた処理の実行権限を更に判定し、ユーザからの要求に応じた処理を実行するか否かを決定するようにしている。
【発明の効果】
【0012】
上記のように構成した本発明によれば、外部チャットシステムからチャットボットに対する要求を受けたときに、その要求と共に送られた外部ユーザ情報から置換された内部ユーザ情報に対してチャットボットへの接続の実行権限およびそれに紐付けられた処理の実行権限が認められるか否かが判定され、その判定結果に応じて処理の実行が制御される。これにより、本発明によれば、外部チャットシステムと内部のチャットボットとを連携したシステムにおいて、外部チャットシステムを通じてチャットボットにアクセスしてくるユーザに対して、チャットボットに対する接続やチャットボットを通じた処理の実行に関するアクセス制限を適切に行うことができる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態によるチャットボット制御装置を適用したチャットシステムの全体構成例を示す図である。
【
図2】第1の実施形態によるチャットボット制御部の具体的な機能構成例を示すブロック図である。
【
図3】テナント、チャットボットおよびアクションフローの一例を示す概念図である。
【
図4】ユーザ情報記憶部に記憶されるユーザ関連付け情報の一例を示す概念図である。
【
図5】第2の実施形態によるチャットボット制御部の具体的な機能構成例を示すブロック図である。
【
図6】テナント情報記憶部に記憶されるテナント関連付け情報の一例を示す概念図である。
【発明を実施するための形態】
【0014】
(第1の実施形態)
以下、本発明の第1の実施形態を図面に基づいて説明する。
図1は、第1の実施形態によるチャットボット制御装置を適用したチャットシステムの全体構成例を示す図である。
図1に示すように、第1の実施形態によるチャットシステムは、本実施形態のチャットボット制御装置が適用される内部チャットシステム100と、当該内部チャットシステム100と連携された外部チャットシステム200とを備えている。内部チャットシステム100は、機能構成として、チャットボット制御部10、チャットボット実行部20および処理実行部30を備えている。
【0015】
外部チャットシステム200は、例えば、多くのユーザ(以下、外部チャットシステム200の利用ユーザを外部ユーザという)に認知され、かつ利用されているチャットシステムである。外部ユーザは、外部チャットシステム200の内部に設定された情報空間(テナント、ワークスペースなどと呼ばれる。本実施形態では、情報空間またはテナントと表記する)において、外部ユーザどうしでチャットを行うことが可能である。また、外部チャットシステム200は、内部にチャットボットを備えてもよく、外部ユーザはチャットボットとの間でチャットを行うことも可能である。
【0016】
内部チャットシステム100は、当該内部チャットシステム100の利用ユーザ(以下、内部ユーザという)に対してチャットの機能を提供する。内部ユーザは、内部チャットシステム100の内部に設定された情報空間(テナント)において、内部ユーザどうしでチャットを行うことが可能である。また、内部ユーザはチャットボットとの間でチャットを行うことも可能である。チャットボット実行部20は、処理実行部30と連携して動作し、チャットボットに紐付けられた処理を実行し、その結果として得られる情報を内部ユーザに提供する。
【0017】
また、内部チャットシステム100は、外部チャットシステム200を通じてチャットボットに送られてくる外部ユーザからの要求に応じて処理を実行し、その結果として得られる情報をチャットボットから外部チャットシステム200を通じて外部ユーザに提供する機能も有する。内部チャットシステム100のチャットボットにアクセスするために必要な情報(セキュリティ情報を含む)は、あらかじめ内部チャットシステム100から外部チャットシステム200に提供されて外部チャットシステム200に設定されている。また、外部チャットシステム200にアクセスするために必要な情報(セキュリティ情報を含む)は、あらかじめ外部チャットシステム200から内部チャットシステム100に提供されて内部チャットシステム100に設定されている。内部チャットシステム100および外部チャットシステム200は、このようにあらかじめ設定された情報を用いて連携可能とされている。
【0018】
チャットボット制御部10は、チャットボット実行部20および処理実行部30の動作を制御する。
図3に示すように、チャットボット実行部20は、内部チャットシステム100の内部に設定された複数のテナントT1,T2,・・・ごとにチャットボットC1,C2,・・・を有し(以下、この中の何れか任意の1つをテナントT、チャットボットCと表記することがある)、内部ユーザまたは外部ユーザからの要求に応じて、何れかのチャットボットCの動作を実行する。このときチャットボット制御部10は、チャットボットCに対する接続の実行権限の有無を判定し、チャットボットCの実行の許否を決定する。
【0019】
なお、ここでは説明を簡略化するために、1つのテナントTの中に1つのチャットボットCが存在する例を図示しているが、1つのテナントTの中に複数のチャットボットが存在してもよい。また、ユーザがテナントT1,T2,・・・の中にチャットルームを設定し、そのチャットルームの中に任意のチャットボットCを招待することを可能としてもよい。
【0020】
また、
図3に示すように、1つのチャットボットCに対して1つまたは複数のアクションフローA1,A2,・・・が紐付けられており(以下、この中の何れか任意の1つをアクションフローAと表記することがある)、チャットボットCが受け付けたユーザからの要求の内容に応じて、何れかのアクションフローAの処理を実行する。このときチャットボット制御部10は、アクションフローAの実行権限の有無を判定し、アクションフローAによる処理の実行の許否を決定する。複数のアクションフローA1,A2,・・・は、複数種類の処理の内容を定義したものであり、処理実行部30はこの定義の内容に従って処理を実行する。
【0021】
図2は、チャットボット制御部10の具体的な機能構成例を示すブロック図である。
図2に示すように第1の実施形態によるチャットボット制御部10は、機能構成として、接続解決部11、ユーザマッピング部12、実行制御部13、ユーザ情報設定部14および実行権限設定部15を備えている。また、第1の実施形態によるチャットボット制御部10は、記憶媒体として、ユーザ情報記憶部101および実行権限記憶部102を備えている。
【0022】
上記各機能ブロック11~15は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック11~15は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【0023】
ユーザ情報設定部14は、外部チャットシステム200の利用ユーザである外部ユーザに関する外部ユーザ情報と、内部チャットシステム100(チャットボットC1,C2,・・・)の利用ユーザである内部ユーザに関する内部ユーザ情報との関連付け情報(以下、ユーザ関連付け情報という)を設定し、その設定情報をユーザ情報記憶部101に記憶させる。
【0024】
図4は、ユーザ情報記憶部101に記憶されるユーザ関連付け情報の一例を示す概念図である。
図4に示すように、ユーザ情報記憶部101は、内部ユーザ情報としての内部ユーザIDと、内部接続設定情報と、コネクタIDとをプライマリキーとして設定し、かつ、コネクタIDと、外部テナントIDと、外部ユーザ情報としての外部ユーザIDとをユニークキーとして設定したテーブルを有し、コネクタIDを共通キーとして、内部チャットシステム100の内部ユーザIDおよび内部接続設定情報と、外部チャットシステム200の外部テナントIDおよび外部ユーザIDとをユーザごとに関連付けて記憶している。ユーザ情報記憶部101は、
図4のようなユーザ関連付け情報を内部チャットシステム100のテナントごとに記憶する。
【0025】
内部接続設定情報は、外部チャットシステム200から内部チャットシステム100に接続するために必要な情報であり、内部チャットシステム100の名称やIDなどのアカウント情報、チャットボットC1,C2,・・・の識別子(以下、チャットボットIDという)を含む。コネクタIDは、内部チャットシステム100のチャットボットC1,C2,・・・が外部チャットシステム200と連携して処理を行う際に使用する連携プログラムモジュールを識別するIDである。外部テナントIDは、外部ユーザが外部チャットシステム200にアクセスする情報空間として設定されたテナント(以下、外部テナントという)を識別するIDである。
【0026】
内部ユーザID、内部接続設定情報、外部テナントIDおよび外部ユーザIDは、内部ユーザが所定のユーザ設定UI画面を通じて、所望のチャットボットCを選択した上で、手動で設定する。一方、コネクタIDは、内部ユーザが所定のユーザ設定UI画面を通じて所望のチャットボットCを選択した際に、そのチャットボットCに対して外部チャットシステム200からアクセスするために必要な情報として内部チャットシステム100にあらかじめ記憶されている情報が設定される。なお、全ての情報をユーザが手動で設定するようにしてもよい。このようにしてチャットボットCに関して設定されるユーザ関連付け情報は、外部チャットシステム200から内部チャットシステム100のチャットボットCにアクセスして処理の実行が要求された際に、実行制御部13が参照する情報として利用される。
【0027】
実行権限設定部15は、内部ユーザによるチャットボットC1,C2,・・・に対する接続の実行権限に関する情報と、チャットボットC1,C2,・・・に紐付けられたアクションフローA1,A2,・・・の処理の実行権限に関する情報とを内部ユーザ情報に関連付けて設定し、その設定情報を実行権限記憶部102に記憶させる。
【0028】
すなわち、実行権限設定部15は、内部ユーザがチャットボットC1,C2,・・・のどれに対する接続を許可するかを接続の実行権限として設定するとともに、アクションフローA1,A2,・・・のどれに対する処理の実行を許可するかを処理の実行権限として設定する。例えば、
図3の例において、あるユーザU1に対して、複数のチャットボットC1,C2,・・・のうち第1のチャットボットC1に対する接続の実行権限を「有り」に設定し、当該第1のチャットボットC1に紐付けられている2つのアクションフローA1,A2のうち第1のアクションフローA1に対する処理の実行権限を「有り」に設定するといったことが可能である。実行権限を「有り」に設定していないチャットボットCおよびアクションフローAは、それぞれ実行権限が無いものとする。
【0029】
チャットボットC1,C2,・・・に対する接続の実行権限およびアクションフローA1,A2,・・・に対する処理の実行権限は、例えば、内部チャットシステム100の管理ユーザが所定の権限設定UI画面を通じて手動で設定する。このようにして内部ユーザごとに設定される実行権限の情報は、内部ユーザがチャットボットCにアクセスして処理の実行を要求した際に参照されることはもちろん、外部ユーザが外部チャットシステム200から内部チャットシステム100のチャットボットCにアクセスして処理の実行を要求した際にも、実行制御部13が参照する情報として利用される。
【0030】
なお、実行権限の設定は、個々のユーザごとに行うことも可能であるし、グループ階層ごとに行うことも可能である。グループ階層で実行権限の設定を行った場合、当該グループ階層に含まれる複数のユーザに対して一括して実行権限の設定を行うことが可能である。
【0031】
接続解決部11は、外部チャットシステム200から内部チャットシステム100のチャットボットCにアクセスして処理の実行が要求された際に、外部チャットシステム200から内部チャットシステム100に対する接続が許可されているか否かの判定(接続設定解決)を行うとともに、チャットボットCが外部チャットシステム200と連携して処理を行う際に使用する連携プログラムモジュールの特定(コネクタ解決)を行う。
【0032】
第1の実施形態において、外部チャットシステム200から内部チャットシステム100へのアクセスは、例えばWebhookを利用して行う。すなわち、外部チャットシステム200の外部ユーザが内部チャットシステム100のチャットボットCに対するメッセージを、外部チャットシステム200にあらかじめ用意されたWebhookに投稿すると、当該Webhookの機能として、投稿されたメッセージが外部ユーザIDと共に内部チャットシステム100に送信される。
【0033】
この場合、外部チャットシステム200から内部チャットシステム100へのアクセス時に使用されるURL(Uniform Resource Locator)の中には、あらかじめ外部チャットシステム200に記憶されている内部チャットシステム100の内部接続設定情報および内部テナントIDが含まれている。よって、接続解決部11は、内部チャットシステム100が受信するURLによって接続設定を解決し、内部チャットシステム100の中のどのテナントT(以下、内部テナントという)へのアクセスかを特定することができる。また、接続解決部11は、内部接続設定情報をもとにユーザ情報記憶部101のユーザ関連付け情報を参照し、対応するコネクタIDを取得することにより、外部チャットシステム200との連携に使用する連携プログラムモジュールを特定する。
【0034】
ユーザマッピング部12は、外部チャットシステム200から内部チャットシステム100のチャットボットCに対して外部ユーザIDと共に送られてくるユーザからの要求(チャットボットCに対して応答を要求する投稿メッセージ)を受けたとき、接続解決部11による接続設定解決およびコネクタ解決の処理の後に、コネクタIDで特定される連携プログラムモジュールによって投稿メッセージの中から抽出される外部ユーザIDをもとにユーザ情報記憶部101を参照して、外部ユーザIDを内部ユーザIDに置換する(すなわち、外部ユーザIDに関連付けられている内部ユーザIDを取得する)。
【0035】
実行制御部13は、ユーザマッピング部12により置換された内部ユーザIDをもとに実行権限記憶部102を参照して、チャットボットC1,C2,・・・に対する接続の実行権限を判定し、接続の実行権限がある場合は、アクションフローA1,A2,・・・の処理の実行権限を更に判定し、外部ユーザからの要求(投稿メッセージ)に応じた処理を実行するか否かを決定する。例えば、複数のアクションフローA1,A2,・・・には、どのような内容のメッセージが投稿された場合に起動するかの起動条件がそれぞれ設定されている。実行制御部13は、投稿メッセージの内容に基づいて、チャットボットCによってどのアクションフローAが起動されるかを特定し、特定したアクションフローAの実行権限があるか否かを判定する。
【0036】
実行制御部13は、チャットボットCに対する接続の実行権限があり、かつ、投稿メッセージに応じて起動されるアクションフローAによる処理の実行権限もあると判定した場合、そのアクションフローAの処理を実行し、その結果として得られる情報をチャットボットCから外部チャットシステム200を通じて外部ユーザに提供するように、チャットボット実行部20および処理実行部30の動作を制御する。一方、実行制御部13は、チャットボットCに対する接続の実行権限がない場合、および、チャットボットCに対する接続の実行権限は有るものの投稿メッセージに応じて起動されるアクションフローAによる処理の実行権限がないと判定した場合、実行権限がない旨を外部チャットシステム200の外部ユーザに応答する。
【0037】
以上詳しく説明したように、第1の実施形態では、外部チャットシステム200から内部チャットシステム100のチャットボットC1,C2,・・・に対して送られてくるユーザからの要求を受けたときに、当該要求と共に送られた外部ユーザIDをもとにユーザ情報記憶部101を参照して、外部ユーザIDを内部ユーザIDに置換する。そして、置換された内部ユーザIDをもとに実行権限記憶部102を参照することにより、内部ユーザによるチャットボットC1,C2,・・・に対する接続の実行権限を判定し、接続の実行権限がある場合は、チャットボットC1,C2,・・・に紐付けられたアクションフローA1,A2,・・・による処理の実行権限を更に判定し、外部ユーザからの要求に応じた処理を実行するか否かを決定するようにしている。
【0038】
このように構成した第1の実施形態によれば、外部チャットシステム200から内部チャットシステム100のチャットボットC1,C2,・・・に対する要求を受けたときに、その要求と共に送られた外部ユーザIDから置換された内部ユーザIDに対してチャットボットC1,C2,・・・への接続の実行権限およびそれに紐付けられたアクションフローA1,A2,・・・の実行権限が認められるか否か判定され、その判定結果に応じて処理の実行が制御される。これにより、第1の実施形態によれば、外部チャットシステム200と内部の内部チャットシステム100のチャットボットC1,C2,・・・とを連携したチャットシステムにおいて、外部チャットシステム200を通じてチャットボットC1,C2,・・・にアクセスしてくる外部ユーザに対して、チャットボットC1,C2,・・・に対する接続やチャットボットC1,C2,・・・を通じた処理の実行に関するアクセス制限を適切に行うことができる。
【0039】
(第2の実施形態)
以下、本発明の第2の実施形態を図面に基づいて説明する。第2の実施形態によるチャットボット制御装置を適用したチャットシステムの全体構成例は、
図1と同様である。上記第1の実施形態では、外部チャットシステム200から内部チャットシステム100へのアクセスを、Webhookを利用して行う例について説明した。これに対して、第2の実施形態では、Global Webhookを利用して外部チャットシステム200から内部チャットシステム100へのアクセスを行う。
【0040】
Webhookの場合は、1つの外部チャットシステム200に対して、内部チャットシステム100に設定されている内部テナントT1,T2,・・・ごとにURLを設定することが可能である。このため、接続解決部11は、内部チャットシステム100が受信するURLを確認するのみで、どの内部テナントTに対するアクセスであるかを特定することが可能であった。これに対して、Global Webhookの場合は、1つの外部チャットシステム200に対して内部チャットシステム100のURLを1つ設定できるのみであり、内部テナントT1,T2,・・・ごとにURLを設定することができない。よって、第2の実施形態では、外部チャットシステム200からどの内部テナントTに対するアクセスであるかを特定する必要がある(テナント解決)。
【0041】
図5は、第2の実施形態によるチャットボット制御部10’の機能構成例を示すブロック図である。この
図5において、
図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
図5に示すように、第2の実施形態によるチャットボット制御部10’は、機能構成として、テナント設定部16、テナント情報取得部17およびテナントマッピング部18を更に備えるとともに、接続解決部11に代えて接続解決部11’を備える。また、第2の実施形態によるチャットボット制御部10’は、記憶媒体として、テナント情報記憶部103を更に備える。
【0042】
テナント設定部16は、外部ユーザが外部チャットシステム200にアクセスする情報空間として設定された外部テナントに関する外部テナント情報と、チャットボットC1,C2,・・・が存在する情報空間として内部チャットシステム100の内部に設定された内部テナントに関する内部テナント情報との関連付け情報(以下、テナント関連付け情報という)を設定し、その設定情報をテナント情報記憶部103に記憶させる。
【0043】
図6は、テナント情報記憶部103に記憶されるテナント関連付け情報の一例を示す概念図である。
図6に示すように、テナント情報記憶部103は、内部テナント情報としての内部テナントIDと、コネクタIDとをプライマリキーとして設定し、かつ、コネクタIDと、外部テナント情報としての外部テナントIDとをユニークキーとして設定したテーブルを有し、コネクタIDを共通キーとして、内部チャットシステム100の内部テナントIDと外部チャットシステム200の外部テナントIDとを内部テナントごとに関連付けて記録している。テナント情報記憶部103は、
図6のようなテナント関連付け情報を、テナントを超えたセントラルデータベースとして記憶する。
【0044】
内部テナントIDは、内部チャットシステム100にあらかじめ記憶されている情報が設定される。また、コネクタIDは、外部チャットシステム200からアクセスするために必要な情報として内部チャットシステム100にあらかじめ記憶されている情報が設定される。一方、外部テナントIDは、内部ユーザが所定のテナント設定UI画面を通じて手動で設定する。なお、全ての情報をユーザが手動で設定するようにしてもよい。このようにして設定されるテナント関連付け情報は、外部チャットシステム200から内部チャットシステム100のチャットボットCにアクセスして処理の実行が要求された際に、テナントマッピング部18が参照する情報として利用される。
【0045】
テナント情報取得部17は、外部チャットシステム200からチャットボットに対して外部ユーザIDと共に送られてくるユーザからの要求を受けたときに、外部ユーザIDをもとにユーザ情報記憶部101を参照して、外部テナントIDを取得する。
【0046】
上述したように、第2の実施形態において、外部チャットシステム200から内部チャットシステム100へのアクセスは、Global Webhookを利用して行う。すなわち、外部チャットシステム200の外部ユーザが内部チャットシステム100のチャットボットCに対するメッセージを、外部チャットシステム200にあらかじめ用意されたGlobal Webhookに投稿すると、当該Global Webhookの機能として、投稿されたメッセージが外部ユーザIDと共に内部チャットシステム100に送信される。
【0047】
この場合、外部チャットシステム200から内部チャットシステム100へのアクセス時に使用されるURLは固定のアドレスであり、第1の実施形態と異なり、内部接続設定情報および内部テナントIDは含まれていない。テナント情報取得部17は、内部チャットシステム100が受信する投稿メッセージに含まれているチャットボットIDをもとにユーザ情報記憶部101を参照し、当該チャットボットIDが含まれる内部接続設定情報を特定してそれに対応するコネクタIDを取得するとともに、内部接続設定情報に関連付けられている外部テナントIDを取得する。
【0048】
テナントマッピング部18は、テナント情報取得部17により取得された外部テナントIDをもとにテナント情報記憶部103を参照し、外部テナントIDを内部テナントIDに置換する。テナントマッピング部18は、置換した内部テナントIDを接続解決部11’に供給する。接続解決部11’は、テナントマッピング部18から供給された内部テナントIDを用いてテナント解決を行う。
【0049】
以上のように、第2の実施形態によれば、1つの外部チャットシステム200に対して内部チャットシステム100の複数のテナントT1,T2,・・・ごとにURLを設定できないチャットシステムにおいても、外部チャットシステム200を通じてチャットボットC1,C2,・・・にアクセスしてくる外部ユーザに対して、チャットボットC1,C2,・・・に対する接続やチャットボットC1,C2,・・・を通じた処理の実行に関するアクセス制限を適切に行うことができる。
【0050】
なお、上記第1および第2の実施形態では、外部チャットシステム200からの要求に応じてチャットボットC1,C2,・・・およびアクションフローA1,A2,・・・が動作し、処理の結果として得られる情報を外部チャットシステム200に応答する例について説明したが、これに限定されない。例えば、チャットボットC1,C2,・・・が実行する処理は、外部ユーザからの要求とは無関係に所定の事象をトリガとして実行してその結果得られる情報を外部チャットシステム200に提供するプッシュ処理を含んでもよい。例えば、センサ等の検出信号を用いて所定の状態を検出したときに、そのことを外部ユーザに知らせるメッセージをチャットボットC1,C2,・・・から送信する処理を行うようにしてもよい。あるいは、あらかじめ設定したタイミングとなるたびに、チャットボットCで生成したメッセージを自動送信するようなプッシュ処理を行うようにしてもよい。
【0051】
このようなプッシュ処理を行う場合、例えば、チャットボットCで生成したメッセージを、外部チャットシステム200にあらかじめ設定した特定のチャットルームに投稿するようにする。あるいは、チャットボットCで生成したメッセージを、チャットボットCが外部ユーザIDを指定して外部チャットシステム200に投稿するようにしてもよい。更に別の例として、ユーザマッピング部12がユーザ情報記憶部101を参照して、内部ユーザIDを外部ユーザIDに置換し、チャットボット実行部20が、ユーザマッピング部12により置換された外部ユーザIDを用いて、内部チャットシステム100から外部チャットシステム200へのアクセスを行うようにしてもよい。
【0052】
このプッシュ処理に関して、実行制御部13は、チャットボットC1,C2,・・・およびアクションフローA1,A2,・・・の実行権限による制限を行わずに、チャットボット実行部20および処理実行部30の実行を常に許可するようにしてもよい。このように、外部チャットシステム200から内部チャットシステム100に対するアクセス時には実行権限による制限を行う一方で、内部チャットシステム100から外部チャットシステム200に対するアクセス時には実行権限による制限を行わないようにすることが可能である。
【0053】
その他、上記第1および第2の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0054】
10,10’ チャットボット制御部
11,11’ 接続解決部
12 ユーザマッピング部
13 実行制御部
14 ユーザ情報設定部
15 実行権限設定部
16 テナント設定部
17 テナント情報取得部
18 テナントマッピング部
20 チャットボット実行部
30 処理実行部
100 内部チャットシステム
101 ユーザ情報記憶部
102 実行権限記憶部
103 テナント情報記憶部
200 外部チャットシステム