クラウド型 ワークフロー

backlog の webhook でクラウド型ワークフローを動かす

backlog の webhook で 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 だと言えます。

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

今回は、特定のキーワードが含まれるコメントがついたら Questetra の業務フローが開始するように設定するものとします。

backlog の webhook では、特定のキーワードが含むといったフィルタリングの設定はないようですので、正確にいうと、キーワードの有無にかかわらず backlog の webhook で Questetra の業務フローを開始して、Questetra 側でフィルタリングをします。

 

さらに Questetra での処理結果を backlog に戻すよう設定すれば、
 backlog でのやりとりから処理起動 → 承認処理を Questetra で実施 → その結果を backlog に戻す
といったことも実現できます。今回の記事では戻す部分には触れないですが、以前に書いた記事が参考になるかと思います。
 Questetra ブログ:backlog とワークフローの連携をカンタンに実現する方法

以下のような「メッセージ開始イベント(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の中身

以下のページを参考にして、課題にコメントをつけたときに webhook されるよう設定します。
 backlog マニュアル:Webhook の追加

その設定の際に「Webhook URL」には、Questetra側の「メッセージ開始イベント(Webhook)」のプロパティから取得した「受信URL」(以下のような書式のもの)を設定すれば OK です。

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

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

 

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


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

FreeQues

 

関連記事

Kusaka Tsuyoshi の紹介

営業をやってますが、もともとエンジニアなので、プログラミングもやります。
Kusaka Tsuyoshi の投稿をすべて表示

あわせて読みたい
50.Questetra Tips の前の記事 スクリプトタスクのデバッグに、ログ出力を使用する
50.Questetra Tips の次の記事 Questetra の API の一覧
Kusaka Tsuyoshi の他の記事 PDF 帳票自動生成でページ数を切り替える(ページングする)方法

アーカイブ

 RSS