今まで実施していたこと
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を作成できます。
このWebhookを、BacklogのWebhookに登録します。
JSONを判定する
Gatewayを配置した後、SlackのModuleを配置します。
GatewayとSlackの間にあるスパナアイコンをクリックすると、フィルターが設定できます。
フィルター内のConditionにフォーカスを当てると、設定するJSONがホバーされます。
このJSONパラメータから任意のキーをドラッグ&ドロップすると、設定できます。
任意の条件(Operatorsのcontent.assignee.userId)を選び、判定したいユーザIDを入力します。
(画像では、コメントが存在していない場合を追加しています)
テストする
Run once で、1度だけテストすることが可能です。
再生ボタンをクリックし、Backlogで課題を追加すると、Webhookに通知が届き、動作を確認できます。
上手く行かない場合は、問題がある箇所でエラー表示されます。
まとめ
で、どっちがいい?
単純にJSON判定などなく、Webhookをそのまま通知したい場合で、月のタスクが100未満ならZapierの方が使いやすいです。
複雑な条件で色々試したいのであれば、Integromatが神じゃないかと。
私は、Integromatを使い倒したいと思います。
補足
例で出した画像では、
BacklogからWebhook経由でSlackに3パターンの条件分岐を行ない、Trelloにも同時にカード作成してます。
この条件分岐に使ってる Router が肝ですね。
ちょっと走り書きっぽくなりましたが、
いろいろ試したらまた纏めたいなと思っています。