backlog の webhook でクラウド型ワークフローを動かす
チケット管理システム backlog から Questetra のフローを起動する方法の紹介です。

 

システム連携ネタでよくブログを書いている日下です。
※ちなみにこれまでのネタはこちら

 

3月にリリースした Questetra Ver.11.6 より、他サービスからの webhook(json データ付)を受信できるようになりました!
個人的には待っていた機能の1つです。今回紹介する backlog 以外にも、kintonePayPalLINE などなど、かなり多くの Web サービスで webhook の機能は準備されています。

  • webhook とは、http リスエストを送信する仕組みのことで、一般的には body 部に json データが付くケースが多いです。
  • webhook の受信は slack でいうところの Incoming Webhooks だと言えます。ちなみに Questetra は、以前からも http リクエストを受信することはできたのですが、body 部の json を受け取ることが Ver.11.6 まではできませんでした。
    逆に、Questetra から http リクエスト送付することもできます。「メッセージ送信中間イベント(HTTP)」というものを使います。こちらは slack でいうところの Outgoing Webhooks だと言えます。

どう設定すればそれらを受けられるようにできるかを説明します。

 

目次
1: Questetra と backlog webhook との連携の概要
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 です。

https://xxxhostxxx.questetra.net/System/Event/MessageStartHttp/999/9/xxxkeyxxx/start

 

3: まとめ

少しスクリプトの準備が必要になりますが、それほどややこしいものではありませんので、カンタンに連携できることがおわかりいただけたかと思います。他のサービスと連携したい場合には、受信する json データフォーマットにあわせてスクリプトを改良すれば対応できます。
「メッセージ開始イベント(Webhook)」をさらなる効率化・自動化による業務改善にご活用ください。

 

もし、ご質問等がありましたら、お問い合わせフォームからご連絡ください。

 

Questetra の無料版(スタータープラン)登録はこちら

こちらの Web フォームからお申込みいただきますと Questetra の無料お試しアカウントが作成できます。上記のものを含め、全ての機能が使えますので、ぜひお試しください。

 

関連記事

コメントを残す

This site uses Akismet to reduce spam. Learn how your comment data is processed.