Blue Prism から Webhook 経由で MS Teams へ通知する
こんにちは、「レッドブーツ88」です。
個人的に少し前に Twitter で流れていたドラムセンサーが気になります。昔、真面目にドラムを練習していた頃にこれが有ればなと思いました。ドラムの打ち込みにも活用できそうなのも良いです。
さて、今回は、Blue Prism から Webhook 経由で MS Teams へメッセージを送信するための手順を紹介いたします。(実はあるお客様の方が先に実現されていたので、それに影響されて私も VBO を用意してみました)
- MS Teams 側でチームを作成
- Webhook コネクタを追加
- Webhook への URL をコピー
- Teams オブジェクトを用意
- (解説)コレクション型で送信するメッセージデータを用意
- (解説)コレクションから JSON データへ変換
- (解説)MS Teams が期待する JSON データへ変換
- (解説)URL、Body、Context Type などを指定し実行
- まとめ
MS Teams 側でチームを作成
チームを作成後、チャネルを追加します。ここではデフォルトで作成されてる [一般] チャネルを利用しています。
Webhook コネクタを追加
追加したチャネルへ新しいコネクタとして Incoming Webhook を追加します。
(補足) 私の環境ではチーム作成後のチャネルメニューへ [コネクタ] が表示されるまでに時間が掛かりました。(10分くらい)
Webhook への URL をコピー
Incoming Webhook コネクタ管理画面にある URL をコピーします。
Teams オブジェクトを用意
Blue Prism 上で以下のような Teams オブジェクトを用意します。
なお、今回用意した Teams オブジェクトでは Utility - HTTP VBO を利用してベタで HTTP リクエストを呼び出していますが、今風な定義にするなら以下のブログで紹介している Web API 機能を用いるのが良いと思います。
(解説)コレクション型で送信するメッセージデータを用意
Teams へ送信する JSON データに対応するコレクション型のデータを用意します。
(解説)コレクションから JSON データへ変換
Utility - JSON VBO の [Collection to JSON] アクションを用いてコレクションから JSON データへ変換します。
(解説)MS Teams が期待する JSON データへ変換
留意する点として、変換した JSON データと MS Teams が期待する JSON データで差異があるため、AVO.Regex VBO の [Regex Replace] アクションなどを用いて先頭の "[" と最後の "]" を削除する必要があります。
(補足)正規表現としては "[\[\]]" な感じで対応できました。
(補足) Utility - JSON VBO が変換した JSON データ
[{"title":"テスト","text":"テストメッセージ"}]
(補足) MS Teams が期待する JSON データ
{"title":"テスト","text":"テストメッセージ"}
なお、AVO.Regex VBO は以下のページなどで紹介されております。
(解説)URL、Body、Context Type などを指定し実行
あとは適宜、Utility - HTTP VBO の [HTTP Request] アクションの [Address URL] へ Incoming Webhook コネクタへ URL、[Body] へ用意した JSON データ、[Context Type] へ "application/json"、[Method] へ "POST" などを指定し実行します。
ちなみに、モバイル版 Teams アプリからも確認可能ですので、以下のように Blue Prism からの通知を iPhone 上で確認するようなことも可能です。
まとめ
- Utility - HTTP VBO を活用すると Webhook 経由で Teams への通知が可能です
- Web API 機能から Webhook を呼び出す方が今風でカッコ良いです
- サンプル定義をユーザーコミュニティ上で共有しました (ログインが必要です)
昨年末から対応しようと思ってましたが、やっと投稿することができました。このような感じで様々なシステムと Webhook 経由による連携が可能となるため、Blue Prism をシステム連携製品のように活用するのも面白いと思います。