オンプレミスエージェント (OPA) の更新を検知して Teams に通知する

# はじめに
Workatoでは、オンプレミスのシステムとクラウドをシームレスに接続するための[オンプレミスエージェント(On-Prem Agent (OPA))](https://docs.workato.com/on-prem.html) というコンポーネントがあります。機能追加や不具合対応のために、On-Prem Agent (OPA) は更新される場合があります。更新の有無をいち早く知りたい場合、にどのようにすればよいのでしょうか？

# RSS Feed Reader 2.0 コネクターを使えば Workato の製品更新情報を取得できます
Workato の製品更新情報は、[公式サイト](https://www.workato.com/product-hub/changelog/) で発信されており、OPAに関する更新情報も含まれます。そして、この情報は RSS (Really Simple Syndication) としても公開されています。

そこで、Workato の RSS Feed Reader 2.0 コネクターを使用してRSSを読み込み、**OPAに関する更新があった場合に、TeamsやSlack、あるいは、メールなどで通知を行うレシピを作ることができます。**

# RSS を監視して OPA の更新を通知するレシピの作成
### 作成するレシピの概要

今回作成するレシピは、Workatoの製品更新情報のRSSを監視し、OPAに関する情報の場合、更新情報を Google Translate で翻訳を行い、Workbot を使って Microsoft Teams のチャネルに記事を投稿するものです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/f55d58ed-84b4-dd8d-d1b3-25ba2acf16de.png)

### RSS Feed Reader 2.0 コネクターのインストール

RSS Feed Reader 2.0 コネクターは、標準コネクターではなくコミュニティコネクターとして公開されています。そのため、まず初めにコネクターのインストールが必要です。

[Community library] を開き、[Custom connectors] から RSS を入力すると、すぐに見つけることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/6e921174-1549-9018-2f4d-54f9b03572e5.png)

コネクターを選び、右上の [Install] ボタンを押すことで、自分のワークスペースに取り込むことが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/73786201-6aac-39b8-28a7-4e1f36c4d2e8.png)

ちなみに、コミュニティコネクターではありますが、作成者が「Workato Customer Success」となっておりますので、通常のコネクター同様のサポートを受けることができます。

### トリガーの作成

先ほどインストールした RSS Feed reader 2.0 コネクターを選択します。
[Feed URL] には、「[https://www.workato.com/product-hub/changelog/feed/](https://www.workato.com/product-hub/changelog/feed/)」を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/ef8e3444-3a90-fc34-d952-9a1289424103.png)

### カスタムスキーマを使う

トリガーのみ作成したら、右上の[Test recipe] からレシピをテスト実行してみます。
次のような、レシピの実行結果が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/e32633f5-d662-3e78-dd9a-b5574eee230f.png)

Workatoが公開する RSSには RSSの標準的なフィールド(Title, Pub Dateなど) に加えて、「content_encoded」という属性（緑色で囲った部分）に記事のスニペットがHTML形式で入っています。この情報を、Teamsに通知したいので、トリガーの [Custom feed schema] を設定して、この情報を取得できるようにします。

右上の [Copy raw JSON] を押して、JSON形式でRSSのサンプルをコピーします。続いて、トリガーの [Custom feed schema] のサンプルデータとして、コピーした情報をペーストし、スキーマを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/835ff202-e647-067f-3f63-a6b81a24fc17.png)

### トリガーコンディションを設定

OPAのリリースは、「On-prem Agent (OPA) xx.x Release」というタイトルで記事が公開されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/9cb881f1-bd31-49fd-2cc5-048b8f11adc0.png)

OPAに関する更新のみ通知するように、トリガーコンディションを設定します。
「Title」に「(OPA)」という文字が含まれ、末尾が「Release」で終わる条件を指定します。（念のため、releaseが小文字で来ても問題がないように、Formulaモードを使って小文字に変換してから比較しています。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/56ad8ab5-8ad9-b52f-1447-dbcd7d73372b.png)


### 記事タイトルと記事のサマリーを翻訳

翻訳には、Google Translate コネクターを使用します。あらかじめ、Googleアカウントを用意しておいてください。（Google Translateには無料枠があるので、この程度の少量の翻訳であれば無料で利用できます。）

記事タイトルは、トリガーアウトプットの「Title」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/e58ae7db-0dee-6e9f-06b4-018a76e5a516.png)

記事のサマリーは、トリガーアウトプットの「Content encoded」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/c2f24f98-200d-2297-ad74-239a4ec9c603.png)

### 記事の投稿日を日本時間に変換

Teamsに投稿する際、日本時間で表示したいので、変数を用意してタイムゾーンの変換と書式設定（YYYY/MM/DD形式) を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/1c2a56ca-7fbf-d8b5-8944-5d3a40849431.png)

### Teamsのチャネルに投稿
Teamsのチャネルに投稿するには、Workbot for Teams を使用します。
今回は、「Post simple message」アクションを使用して、HTML形式で表示を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/ad4e2549-8648-b821-7586-2b2f1f70b8c6.png)

### 実行結果

実際にレシピを実行すると、OPAに関する記事がTeamsのチャネルに投稿されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/45c3dfc0-66e2-62b0-b1ae-f420dda14abf.png)

トリガーコンディションをオフにすれば、他の製品更新情報を表示することも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/240013cf-4194-30e3-3e45-1c74c3cc32fe.png)

# まとめ
まとめると、以下のようになります。

* OPAを含めた製品更新情報は RSS で公開されている
* RSS Feed Reader 2.0 コネクターを使うことで RSS の監視が可能
* RSS のカスタム属性を取得したい場合は、カスタムスキーマを使用する
* Google Translate コネクターを使えば、記事の翻訳も可能

# おわりに
いかがでしょうか？ RSSとレシピを活用することで、OPAの更新情報を簡単に取得することが可能です。今回は、Teams を使いましたが、Slack や メールなど別な通知に切り替えることも簡単にできます。

弊社の内部でも近い仕組みを用いて、製品担当SEやサポートチームの間での情報共有を行っております。このような自動化も、レシピを用いることで簡単に行うことが可能です。

Workatoの導入・導入後の活用などでお困りの場合、Workatoリセラーにご相談する方法もございます。お困りごとがございましたら、認定リセラーの[日立ソリューションズ](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato/?utm_source=sns&utm_medium=qiita&utm_campaign=0c9b9bd8b08779a6d9a7)へ是非ご相談ください。

# 参考リンク

* 株式会社 日立ソリューションズ
    * [Workato ご紹介サイト](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato/?utm_source=sns&utm_medium=qiita&utm_campaign=0c9b9bd8b08779a6d9a7)
* Workato 公式サイト
    * [On-prem Connectivity](https://docs.workato.com/on-prem.html)
* 本記事のサンプルレシピ
    * JPデータセンター利用者向け 
        * [[Example] OPA update notification](https://app.jp.workato.com/recipes/370610?st=c407a6bad4cb4ff832bcdc96a5f6f902a2f8dcd55ba3455d84dded9ccb4f58af)
    * USデータセンター利用者向け
        * [[Example] OPA update notification](https://app.workato.com/recipes/46144927?st=9fbae5515a5476347e95760f33558d9c2780aeae11698dbd3dee1364cddb19a0)