backlog
自動化
integromat

アプリケーションをつなぐIntegromatが素晴らしい

More than 1 year has passed since last update.

今まで実施していたこと

Zapierを利用し、BacklogのWebhookを利用して自動化を行っていました。
Zapierは、フリープランで以下のような制限があります。

  • Zaps(自動化の設定のこと)が5つまで
  • 1ヶ月のタスク(Zapsの実行)が100回まで

その為、複数アカウントを作成することで制限を超える度にタスク(Zapierの通知設定のこと)を切り替えていました。
また、WebhookでPOSTするJSONのデータを判定して通知の振り分けがしたいと考えていました。

Zapierでは、JSONを判定するような仕組みは無いので、自分で作るかーと思っていました。

Integromatを見つけた

最強連携サービス「Integromat」がZapier/IFTTTをあっさり超えるラスボス感 でなんかスゴいタイトルだったのでなんだなんだと試してみたら。。。

本当にタイトル通り、あっさり超えて来ました。

基本的なことは、上記の記事でわかりますが、
「WebhookでPOSTするJSONのデータを判定して通知の振り分け」ができる!という機能を見つけました。

ラスボスどころか神でした。

ZapierとIntegromatを比較した

[Zapierでできない(または制限があって物足りない)こと]

・フリープランだと、タスクが 100回/月 であること
 →1ヶ月だと120回〜150回程度のタスクが必要そうだったので、物足りない
・Webhookで通知されるJSONパラメータ毎に判定できない
 →単純に通知されたJSONをそのまま通知することしかできない

[Integromatでできること]

・フリープランでも、タスクが 1,000回/月であること
 →十分足りる
・WebHookで通知されるJSONパラメータに判定文を設定できる
 →新規発行された課題の担当者が◯◯さんの場合、Slackに通知する。ということができる。
 →かなり柔軟性があるので、アイデア次第で色々できそう
・ノンプログラミングでかなりのパターンの通知が作れる
・複数のアプリへ同時投稿が可能

[Integromatのデメリット]

・全て英語で、日本のGoogle先生に聞いても情報が少ない
・UIがわかりづらい。慣れるまで時間がかかりそう。
 → Youtubeのチュートリアル動画(英語) でなんとか理解した。

やったこと

Backlogの課題発行時に、任意の担当者にアサインされた場合にSlackに通知する。

設定する前に

とりあえず、前述の記事とYoutubeのチュートリアル動画(英語) をざっと眺めることをお勧めします。

いきなり触ろうとするとなんだかよくわからなくなって疲れます。(疲れました)

WebhookをURLを取得する

Moduleと呼ばれるオブジェクトの中で、Gatewayを選びます。
Gatewayでは、任意のデータ構造(Data structure)を追加し、Webhookを作成できます。

Integromat00001.png

このWebhookを、BacklogのWebhookに登録します。

JSONを判定する

Gatewayを配置した後、SlackのModuleを配置します。
GatewayとSlackの間にあるスパナアイコンをクリックすると、フィルターが設定できます。

Integromat00002.png

フィルター内のConditionにフォーカスを当てると、設定するJSONがホバーされます。
このJSONパラメータから任意のキーをドラッグ&ドロップすると、設定できます。

任意の条件(Operatorsのcontent.assignee.userId)を選び、判定したいユーザIDを入力します。
(画像では、コメントが存在していない場合を追加しています)

テストする

Run once で、1度だけテストすることが可能です。
再生ボタンをクリックし、Backlogで課題を追加すると、Webhookに通知が届き、動作を確認できます。

Integromat00004.png

上手く行かない場合は、問題がある箇所でエラー表示されます。

まとめ

で、どっちがいい?

単純にJSON判定などなく、Webhookをそのまま通知したい場合で、月のタスクが100未満ならZapierの方が使いやすいです。
複雑な条件で色々試したいのであれば、Integromatが神じゃないかと。
私は、Integromatを使い倒したいと思います。

補足

例で出した画像では、
BacklogからWebhook経由でSlackに3パターンの条件分岐を行ない、Trelloにも同時にカード作成してます。
この条件分岐に使ってる Router が肝ですね。

ちょっと走り書きっぽくなりましたが、
いろいろ試したらまた纏めたいなと思っています。