システム連携ネタでよくブログを書いている日下です。
※ちなみにこれまでのネタはこちら
3月にリリースした Questetra Ver.11.6 より、他サービスからの webhook(json データ付)を受信できるようになりました!
個人的には待っていた機能の1つです。今回紹介する Backlog 以外にも、kintone や PayPal や LINE などなど、かなり多くの Web サービスで webhook の機能は準備されています。
- webhook とは、http リスエストを送信する仕組みのことで、一般的には body 部に json データが付くケースが多いです。
- webhook の受信は slack でいうところの Incoming Webhooks だと言えます。ちなみに Questetra は、以前からも http リクエストを受信することはできたのですが、body 部の json を受け取ることが Ver.11.6 まではできませんでした。
逆に、Questetra から http リクエスト送付することもできます。「メッセージ送信中間イベント(HTTP)」というものを使います。こちらは slack でいうところの Outgoing Webhooks だと言えます。
どう設定すればそれらを受けられるようにできるかを説明します。
2: 実現方法の詳細
2.1: Questetra 側の準備
2.2: Backlog 側の準備
3: まとめ
1: Questetra と Backlog webhook との連携の概要
今回は、特定のキーワードが含まれるコメントがついたら Questetra の業務フローが開始するように設定するものとします。
Backlog の webhook では、特定のキーワードが含むといったフィルタリングの設定はないようですので、正確にいうと、キーワードの有無にかかわらず Backlog の webhook で Questetra の業務フローを開始して、Questetra 側でフィルタリングをします。
さらに Questetra での処理結果を Backlog に戻すよう設定すれば、
Backlog でのやりとりから処理起動 → 承認処理を Questetra で実施 → その結果を Backlog に戻す
といったことも実現できます。今回の記事では戻す部分には触れないですが、以前に書いた記事が参考になるかと思います。
Questetra ブログ:Backlog とワークフローの連携をカンタンに実現する方法
2: 実現方法の詳細
2.1: Questetra 側の準備
以下のような「メッセージ開始イベント(Webhook)」で開始する業務フローを準備します。
「json処理」スクリプト工程で受信した json データを解析して、その次のゲートウェイで、処理が必要なケースかどうか(キーワードを含むか)を判定させています。「承認依頼」タスクから先は、処理内容にあわせて変更する想定で、今回の例ではカンタンな依頼・承認のみとしています。
「メッセージ開始イベント(Webhook)」の設定としては、以下のように受信データを「application/json」で受けて、文字データ項目に格納すれば OK です。
json データをパースするスクリプトは以下となります。
var json = engine.findDataByNumber("0");
var object = JSON.parse(json);
out = object.content.comment.content;
engine.setDataByNumber("1", out);
このスクリプトでは、json データはデータ番号”0″の項目に格納されていて、そこから取得したものをデータ番号”1″の項目に格納しています。実際には何を取得したいかによって3行目のロジックを見直せば OK です。
ちなみに Backlog から送付される json データフォーマットは以下ページの情報を参考にしました。
Qiita:Backlogのwebhookの中身
2.2: Backlog 側の準備
以下のページを参考にして、課題にコメントをつけたときに webhook されるよう設定します。
Backlog マニュアル:Webhook の追加
その設定の際に「Webhook URL」には、Questetra側の「メッセージ開始イベント(Webhook)」のプロパティから取得した「受信URL」(以下のような書式のもの)を設定すれば OK です。
3: まとめ
少しスクリプトの準備が必要になりますが、それほどややこしいものではありませんので、カンタンに連携できることがおわかりいただけたかと思います。他のサービスと連携したい場合には、受信する json データフォーマットにあわせてスクリプトを改良すれば対応できます。
「メッセージ開始イベント(Webhook)」をさらなる効率化・自動化による業務改善にご活用ください。
もし、ご質問等がありましたら、お問い合わせフォームからご連絡ください。
無料からスタートできる Questetra BPM Suite
こちらの Web フォームからお申込みいただきますと Questetra の無料お試しアカウントが作成できます。上記のものを含め、全ての機能が使えますので、ぜひお試しください。
関連記事
ピンバック: クラウド BPM ワークフローの他システム連携事例集(2019年6月版) - Questetra