Microsoft 系のあれこれ

港区の SIer で よくわからんことをしている人です。Xamarin 中心でした。(過去形)

Backlog の更新を Zapier 経由で Microsoft Teams に通知する

一部のプロジェクトの課題管理には Nulab 社の Backlog を利用しています。
オンライン プロジェクト管理 & コラボレーションツール Backlog

標準では通知はメールベースなのでいろんな通知がわんさか来てなにがなんだかわからなくなります。
メールからの脱却みたいな話もありますし。

でチャットコミュニケーションツールには Slack と Microsoft Teams を利用しています。
Slack に関しては様々な記事があがっているので今回は 最近ローンチされた Microsoft Teams に対して通知を飛ばしたいと思います。
Microsoft Teams – Group Chat software

手順

  • Zapier でトリガーを追加する
  • Backlog から Webhook を追加する
  • Microsoft Teams に コネクタを追加する
  • Zapier でアクションを追加する

詳細

Zapier でトリガーを追加する

Zapier とはサービスとサービスを連携してくれるハブサービスです。似たような有名どころで IFTTT とかでしょうか。
Zapier | The easiest way to automate your work

  • サインアップ

適当にサインアップします。
無料枠だと、2ステップまでとか制限がありますが、今回は無料で大丈夫です。
サインアップ後、画面上の「MAKE A ZAP!」ボタンを押します。
f:id:ShunsukeKawai:20170406162913p:plain:w600

  • Trigger 登録

Zapier をキックするトリガーを登録します。
今回ですと、Backlog の更新です。
様々なサービスから Webhooks by Zapier を選択します。
Webhook とは POST リクエストをサクっと呼んでくれる仕組みです。
f:id:ShunsukeKawai:20170406163234p:plain:w600
次の画面で Catch Hook を選択して「Save + Continue」ボタンを押します
f:id:ShunsukeKawai:20170406163626p:plain:w600
次の画面の Pick off a Child Key はブランクのまま「Continue」ボタンを押します。
そうすると Webhook の URL が自動生成されるので、URL をコピーしておきます。
f:id:ShunsukeKawai:20170406163912p:plain:w600
「Test this Step」は後程やるので、ブラウザは開いたままで次の Backlog の設定に進みます。

Backlog から Webhook を追加する

先ほど作成したトリガーを呼び出す仕組みを Backlog 側に追加します。
Backlog のプロジェクト設定画面のメニューから「Webhook」を選択して「Webhookを追加する」ボタンを押します。
f:id:ShunsukeKawai:20170406162057p:plain
適当な名前を付けて、先ほど Zapier 側で生成されて URL を指定します。
イベントは今回は課題の追加に設定しておきます。
f:id:ShunsukeKawai:20170406165150p:plain

送信をテストする

後述する Teams 側に通知する内容を設定するために一回テストします。
Backlog ⇒ Zapier の送信テストをするとアクションで設定する内容が展開されます。

Backlog の Webhook 設定画面の下部にある実行テストを表示しておきます。(まだ押しても意味ないです。)
f:id:ShunsukeKawai:20171219171311p:plain
Zapier の画面に戻って「OK,I did this」ボタンを押します。
f:id:ShunsukeKawai:20171219171708p:plain
そうすると受信を待機している状態になるので、Backlog の画面でテストを実行します。
f:id:ShunsukeKawai:20171219171737p:plain
「Test Successful!」と表示されれば成功です。
f:id:ShunsukeKawai:20171219172304p:plain
Backlog 側の設定は以上です。
Zapier の画面はそのままにして次のステップに進みます。

Microsoft Teams に コネクタを追加する

実際に Teams に投稿するためのコネクタを追加します。
Teams のチャンネルのコンテキストメニューから「コネクタ」を選択します。
f:id:ShunsukeKawai:20170406165624p:plain
コネクタの一覧から Incoming Webhook を追加します。
f:id:ShunsukeKawai:20170406165804p:plain:w600
適当な名前と画像を設定して「作成」ボタンを押します。
f:id:ShunsukeKawai:20170406165933p:plain:w600
そうすると自動的にURLが生成されるので、コピーして「完了」ボタンを押します。
f:id:ShunsukeKawai:20170406170136p:plain:w600
Teams 側の設定は以上です。
※ ちゃんと「完了」ボタンを押しておきましょう。押していない状態でTestしたら飛ばないなぁってしばらく悩んでました…

Zapier でアクションを追加する

Zapier の画面に戻ってアクションを追加します。
こちらもトリガーと同じ様に Webhooks by Zapier を選択します。
f:id:ShunsukeKawai:20170406171244p:plain:w600
次の画面で POST を選択して「Save + Continue」ボタンを押します。
f:id:ShunsukeKawai:20170406171351p:plain
次の画面では実際に Teams に通知する内容を設定します。
URL には先ほど Teams 側で生成された URL を設定します。
Payload Type は Json を設定します。
f:id:ShunsukeKawai:20170406173620p:plain
Data には Teams でどのような内容を通知するかを指定します。
こちらは Teams 側のお作法に準拠してください。以下のサイトが参考になります。
Actionable message card reference | Microsoft Docs

Zapier は STEP1 で設定したトリガー側から送信されるデータ(今回は Backlog の Webhook からのデータ内容)を以下のように選択できるようになっています。めっちゃ便利です。
f:id:ShunsukeKawai:20170406172209p:plain

例として以下の設定にしてみました。
f:id:ShunsukeKawai:20170406175426p:plain
Backlog は Project Key と Content ID の組み合わせで URLが生成されるので、通知から直接リンクできるようにしています。

それ以外の設定はデフォルトのままで大丈夫です。
「Save + Continue」ボタンを押すと自動的にテストが走って、
f:id:ShunsukeKawai:20170406180202p:plain
と Teams に通知されます!
やった!

おまけ

今回はアクションに Webhook を使用していますが、アクションのアプリに Teams が追加される動きもあるみたいです。
Microsoft Teams Integrations | Zapier

以上です。