タスク管理ツールTrelloで、標準のワークフロー自動化ツールButlerによる自動処理の実行を設定したところ、実行回数が月間の上限に早々に達してしまい、そうなると翌月までButlerの自動処理が使えなくなるということが判明したので、この回避方法を検討した結果、Butlerの代替機能として「Microsoft Power Automate」を導入するに至った際のメモ。
発端となった事象
TrelloでButlerの機能を利用してルールやカレンダーコマンドをいくつか設定し、ワークフローの自動化を行っていた。
-
設定していたルール
-
設定していたカレンダーコマンド
しかしある時点から、トリガーを満たす操作がTrelloのボード上で行われたにも関わらず、上記のButlerコマンドが動作しなくなってしまった。
Butlerが動作しなくった原因を調査する
事象が発生したボード上の[Butler]ボタンを良く見ると「!」マークが付いている。
ボタンをクリックしてButler画面を開くと何やら注意文のようなものが出ている。
The command run quota for your current plan has been reached. Open account details
「あなたのプランのコマンド実行クォータは上限に達しました。」とある。
[Open account details]からリンクを開いてみると、以下のような画面が表示された。
かんたんに訳してみると、
Butler will use your personal quota for your automations running on this board.
「Butlerはあなた個人の自動実行のクォータを消費します。」
Butler uses your personal quota for boards that are not part of an enterprise or business class team of which you're a member.
「あなたが所属する"enterpriseや"business class"のチームに属さないボードでは、Butlerはあなた個人のクォータを消費します。」
If you are part of an enterprise or business class team, you can move this board into it to use the organization's pooled quotas.
「もしあなたが"enterpriseや"business class"のチームのメンバーなら、このボードをそのチームに加えることにより組織のプールクォータを利用することができます。」
Your personal quota is 200 command runs and 2000 operations. You've used 200 command runs (100%) and 226 operations (11%) so far this period.
「あなた個人のクォータは200回のコマンド実行と2000回の操作です。あなたはこれまでに200回のコマンド実行(100%)と226回の操作(11%)を使用しました。」
Your account has reached the number of command runs allowed within its quota for the period.
「あなたのアカウントは、期間中のクォータ内で許可されているコマンド実行回数に達しました。」
とのこと。
また、上記画面内のリンクからButlerの機能と上限を開くと下記のようなアカウントタイプごとのクォータ一覧が見て取れた。
要するに、わたしのアカウントのタイプは個人(Trello Goldユーザー)なので「ひと月あたりのコマンド実行数」には「200回」という上限があり、今回はこれに抵触したためButlerが突然動作しなくなったことが原因のようだ。
回避策の検討
現在のButlerの使い方では月間の実行回数は200回を必ず超えてしまう。しかしTrelloを効果的に活用するために自動化をやめるわけにはいかないため、以下のいずれかの方法によりこの上限の抵触を回避する必要がある。
-
- アカウントをアップグレードする
-
- Butlerの機能を使わずに自動化処理を行う
ここではそれぞれの方法での回避方法を検討してみる。
「1. アカウントをアップグレードする」方法の検討
先程も確認したButlerの機能と上限によれば、「ユーザーあたり」の「ひと月あたりのコマンド実行数」はBusiness Classが200、Enterpriseが無制限とのこと。今回は200回の上限をオーバーしてしまったので、Enterpriseオプションが使えないか検討してみる。
Enterpriseは一般ユーザーが使えるのか
価格ページでオプションごとの価格を見てみる。
一瞬、ユーザー当たり月額「$2083」に見えて目玉が飛び出そうになりまったが、良く見ると「$20.83」だった。
そしてTrello Enterpriseページで料金の詳細を見てみると、最低利用人数は20人で、
20人分のEnterpriseオプション(年額$5,000)を契約してまで、ひと月あたりのコマンド実行数を無制限にするのはさすがに割にあわないので、「1. アカウントをアップグレードする」方法の採用はやめておいた。
「2. Butlerの機能を使わずに自動化処理を行う」方法の検討
Butlerの代替として利用できそうなTrelloの処理を自動化する機能をいくつか探してみた。
ちなみに、わたしがButlerで自動化していた処理はTrelloボード上での操作(カード作成など)をトリガーにしたものであるため、代替機能も何らかの方法でその操作を検知し、検知されたカードに対して処理を行う仕組みが実現できる必要がある。
代替方法その1. Webhook
Trello公式で提供しているREST API機能の一つとして「Webhook」が利用できる。
Webhooks provide a way for application developers to receive notifications when a model changes. Although webhooks are only accessible through the API currently, we hope that developers working on third party apps for Trello find them as useful as we do.
このWebhookを利用すれば、以下のような感じで自動化処理を実装できそう。
- Trelloのボード上でトリガーとなる処理(カード作成など)が行われる
- TrelloのWebhookに登録したエンドポイントにコールバックが行われる
- コールバック先のシステム(AWS Lambda)などからTrelloのAPIを利用して自動化したい処理を行う
参考になりそうな例もちらほらある。
代替方法その2. Trello Power-Up
Trelloには「Power-Up」というTrello外部のベンダーやユーザーにより作成されたアドオンのような機能がある。
Trello上での処理を自動化するためのPower-Upもたくさん用意されており、ちゃんと探せば私がButlerで実装していた処理を代替できるPower-Upも見つかるかもしれない。
注意点としては、Goldユーザーであっても1つのボードに最大3つのPower-Upしか追加できず、これが結構痛い。
代替方法その3. Microsoft Power Automate
Power Automateは、コードをほとんど記述することなくGUI操作だけで自動化処理フローを作成・実行できるMicrosoftのSaaSである。フローにはOffice 365やAzureの機能だけでなくMicrosoft以外のサービスとも簡単に接続できるコネクタが標準で用意されており、簡単なOAuth認証で連携をさせて、自動化処理のフローに組み込むことができる。
そして用意されている標準のコネクタの一覧にはもちろんTrelloも含まれている。
どの方法で代替するか
ここまで「2. Butlerの機能を使わずに自動化処理を行う」方法としてあげた3種類の方法のどれでButlerを代替するか考えてみた。
- Webhook:コールバック先となるAPIバックエンドを実装する必要があるため実装コストが高い。
- Trello Power-Up:サードパーティの作成した機能に頼ることになるため要求にフィットするPower-Upが見つかるか分からない(ないかも知れない)。
- Microsoft Power Automate:試しに実装してみた(後述)ところButlerで行っていた自動化処理の一つを簡単に実装できた。
よって、Butlerの代替手段として「Microsoft Power Automate」を一旦採用してみる。
Microsoft Power Automateで自動化処理を実装してみる
「カードがボードに作成されたら、タイトルに本日日付をプレフィクスとして付与する」処理を、Microsoft Power Automateで実装してみる。
※Power AutomateはPowerAppsのアカウントがあれば使えるので、未作成の場合はここから作成してください。
Power Automateで自動化処理を実装するには「フロー」というものを作成する必要があるのでこれを作成していく。
-
Power Automateのホーム画面にアクセスし、[作成]-[自動フロー]をクリック。
-
[フローのトリガーを選択してください]で「trello」で検索し、[新しいカードがボードに追加されたとき(v2)]を選択する。[作成]をクリックする。
-
Microsoft Power PlatformにTrelloアカウントへのアクセスを許可するかどうかを確認する画面が開くので[許可]をクリック。
-
[名前]の入力欄で先程追加された[カード名]の左側を選択すると右に[式]の入力欄が表示されるので、
addHours(utcNow(), 9, 'yyyy-MM-dd ')
と入力して[OK]をクリック。
-
[名前]の入力欄は以下のようになる。名前をこのように指定することにより、カードのタイトルが先頭に現在のJSTの日付が付加された「yyyy-MM-dd <元のタイトル>」というタイトルに更新されるようになる。
動作検証
ボード上に「てすとカード」というタイトルのカードを作成する。
数分(だいたい3分以内)すると作成したPower Automateのフローが作動して、
ちなみに
たまにTrello APIのLimitに抵触して怒られることもある。
その他
そのほか気になった事項を調べてみた。
GoldとBusiness Classで利用できる機能の違いは?
- Trello GoldページとオプションページのBusiness Classの機能欄を見比べてみるとチームメンバーに関する機能以外は同じ機能が使えそう。
個人アカウント(無料またはGold)からEnterpriseに変更する方法は?
調べた結果以下のような理解を得た。
- 個人アカウントでも「チーム」を作成できる。
- チームにはユーザーやボードを所属させられる。
- 「Enterprise」オプションを契約するとチームをEnterpriseにアップグレードできる。
- 変更方法としては、Trelloアカウントでチームを作成し、Enterpriseの機能を使いたいボードとメンバー(自分)をチームに所属させて、そのチームに対してEnterpriseオプションを契約する。その後に不要ならGoldを解約する。
個人アカウントで作ったボードをチームのボードに変更するには?
ボード画面の右上の[…ボードメニューを表示]- […もっと見る]-[設定]-[チームを変更]から変更(または新規作成)ができる。
おわりに
今回は昔とった杵柄でMicrosoft Power Automateを採用したけど、改めて便利だなと思った。
以上