アプリケーションをつなぐ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 が肝ですね。

ちょっと走り書きっぽくなりましたが、

いろいろ試したらまた纏めたいなと思っています。