LoginSignup
9
6

More than 3 years have passed since last update.

Trelloの標準自動化ツール「Butler」を「Microsoft Power Automate」で代替してButlerの月間実行回数上限を回避するまでの顛末

Last updated at Posted at 2020-03-20

タスク管理ツールTrelloで、標準のワークフロー自動化ツールButlerによる自動処理の実行を設定したところ、実行回数が月間の上限に早々に達してしまい、そうなると翌月までButlerの自動処理が使えなくなるということが判明したので、この回避方法を検討した結果、Butlerの代替機能として「Microsoft Power Automate」を導入するに至った際のメモ。

発端となった事象

TrelloでButlerの機能を利用してルールやカレンダーコマンドをいくつか設定し、ワークフローの自動化を行っていた。

  • 設定していたルール

    • "Ready"リストにメール受信によりカードが作成されたら、"受信メール"ラベルを付与する
    • "ブログ"リストにカードが作成されたら、"ブログ"ラベルを付与する
    • カードがボードに作成されたら、タイトルに本日日付をプレフィクスとして付与する。 image.png
  • 設定していたカレンダーコマンド

    • 毎日12:00amにタイトルが本日日付の空のリストを作成する image.png

しかしある時点から、トリガーを満たす操作がTrelloのボード上で行われたにも関わらず、上記のButlerコマンドが動作しなくなってしまった。

Butlerが動作しなくった原因を調査する

事象が発生したボード上の[Butler]ボタンを良く見ると「!」マークが付いている。
image.png

ボタンをクリックしてButler画面を開くと何やら注意文のようなものが出ている。
image.png

The command run quota for your current plan has been reached. Open account details

「あなたのプランのコマンド実行クォータは上限に達しました。」とある。

[Open account details]からリンクを開いてみると、以下のような画面が表示された。
image.png

かんたんに訳してみると、

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の機能と上限を開くと下記のようなアカウントタイプごとのクォータ一覧が見て取れた。
image.png

要するに、わたしのアカウントのタイプは個人(Trello Goldユーザー)なので「ひと月あたりのコマンド実行数」には「200回」という上限があり、今回はこれに抵触したためButlerが突然動作しなくなったことが原因のようだ。

回避策の検討

現在のButlerの使い方では月間の実行回数は200回を必ず超えてしまう。しかしTrelloを効果的に活用するために自動化をやめるわけにはいかないため、以下のいずれかの方法によりこの上限の抵触を回避する必要がある。

  • 1. アカウントをアップグレードする
  • 2. Butlerの機能を使わずに自動化処理を行う

ここではそれぞれの方法での回避方法を検討してみる。

「1. アカウントをアップグレードする」方法の検討

先程も確認したButlerの機能と上限によれば、「ユーザーあたり」の「ひと月あたりのコマンド実行数」はBusiness Classが200、Enterpriseが無制限とのこと。今回は200回の上限をオーバーしてしまったので、Enterpriseオプションが使えないか検討してみる。

Enterpriseは一般ユーザーが使えるのか

価格ページでオプションごとの価格を見てみる。
image.png

一瞬、ユーザー当たり月額「$2083」に見えて目玉が飛び出そうになりまったが、良く見ると「$20.83」だった。

そしてTrello Enterpriseページで料金の詳細を見てみると、最低利用人数は20人で、
image.png

それ以下の人数では利用ができないようだ。
image.png

20人分のEnterpriseオプション(年額$5,000)を契約してまで、ひと月あたりのコマンド実行数を無制限にするのはさすがに割にあわないので、「1. アカウントをアップグレードする」方法の採用はやめておいた。

「2. Butlerの機能を使わずに自動化処理を行う」方法の検討

Butlerの代替として利用できそうなTrelloの処理を自動化する機能をいくつか探してみた。

ちなみに、わたしがButlerで自動化していた処理はTrelloボード上での操作(カード作成など)をトリガーにしたものであるため、代替機能も何らかの方法でその操作を検知し、検知されたカードに対して処理を行う仕組みが実現できる必要がある。

代替方法その1. Webhook

Trello公式で提供しているREST API機能の一つとして「Webhook」が利用できる。

  • TRELLO REST API Webhooks
    image.png

  • Webhooks

    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を利用すれば、以下のような感じで自動化処理を実装できそう。

  1. Trelloのボード上でトリガーとなる処理(カード作成など)が行われる
  2. TrelloのWebhookに登録したエンドポイントにコールバックが行われる
  3. コールバック先のシステム(AWS Lambda)などからTrelloのAPIを利用して自動化したい処理を行う

参考になりそうな例もちらほらある。

代替方法その2. Trello Power-Up

Trelloには「Power-Up」というTrello外部のベンダーやユーザーにより作成されたアドオンのような機能がある。

Trello上での処理を自動化するためのPower-Upもたくさん用意されており、ちゃんと探せば私がButlerで実装していた処理を代替できるPower-Upも見つかるかもしれない。
image.png

注意点としては、Goldユーザーであっても1つのボードに最大3つのPower-Upしか追加できず、これが結構痛い。

代替方法その3. Microsoft Power Automate

Power Automateは、コードをほとんど記述することなくGUI操作だけで自動化処理フローを作成・実行できるMicrosoftのSaaSである。フローにはOffice 365やAzureの機能だけでなくMicrosoft以外のサービスとも簡単に接続できるコネクタが標準で用意されており、簡単なOAuth認証で連携をさせて、自動化処理のフローに組み込むことができる。

そして用意されている標準のコネクタの一覧にはもちろんTrelloも含まれている。
image.png

どの方法で代替するか

ここまで「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のホーム画面にアクセスし、[作成]-[自動フロー]をクリック。 image.png
  • [フローのトリガーを選択してください]で「trello」で検索し、[新しいカードがボードに追加されたとき(v2)]を選択する。[作成]をクリックする。
    image.png

  • まだ一度もTrelloとの接続をしていないフローを作成する場合はサインインを求めれれるので[サインイン]をクリック。
    image.png

  • Microsoft Power PlatformにTrelloアカウントへのアクセスを許可するかどうかを確認する画面が開くので[許可]をクリック。
    image.png

  • 許可をすると戻ったフローの画面で許可したTrelloアカウントのボードを選択できるようになっている。
    image.png

  • カードが追加されたときに処理したいボードの名前を選択。
    image.png

  • これで、「新しいカードが「ボード」ボードに追加されたときにこのフローを実行する」というトリガーを作成できた。
    image.png

  • 次に実際にカードに対する処理(フローでは「アクション」という)を作成する。[新しいステップ]をクリック。
    image.png

  • [Trello]で検索してアクション一覧から[カードの更新]をクリック。
    image.png

  • [カードの更新]アクションが追加される。
    image.png

  • [ボードID]で先程選択したのと同じボード名を選択。
    image.png

  • [カードID]で[v]をクリックして表示されるカード名一覧の一番下の[カスタム値の入力]を選択。
    image.png

  • 右に[動的なコンテンツ]の選択欄が表示されるので、[カードID]を選択。
    image.png

  • [名前で]入力欄を選択すると右に[動的なコンテンツ]の選択欄が表示されるので、[カード名]を選択。
    image.png

  • [名前]の入力欄で先程追加された[カード名]の左側を選択すると右に[式]の入力欄が表示されるので、addHours(utcNow(), 9, 'yyyy-MM-dd ')と入力して[OK]をクリック。
    image.png

  • [名前]の入力欄は以下のようになる。名前をこのように指定することにより、カードのタイトルが先頭に現在のJSTの日付が付加された「yyyy-MM-dd <元のタイトル>」というタイトルに更新されるようになる。
    image.png

  • 左上でフロー名を指定し、[保存]をクリックしてフローの作成を完了させる。
    image.png

動作検証

ボード上に「てすとカード」というタイトルのカードを作成する。
image.png

数分(だいたい3分以内)すると作成したPower Automateのフローが作動して、
image.png

今日の日付がタイトル先頭に付加された。
image.png

ちなみに

たまにTrello APIのLimitに抵触して怒られることもある。
image.png
image.png

その他

そのほか気になった事項を調べてみた。

GoldとBusiness Classで利用できる機能の違いは?

個人アカウント(無料またはGold)からEnterpriseに変更する方法は?

調べた結果以下のような理解を得た。

  • 個人アカウントでも「チーム」を作成できる。
  • チームにはユーザーやボードを所属させられる。
  • 「Enterprise」オプションを契約するとチームをEnterpriseにアップグレードできる。
  • 変更方法としては、Trelloアカウントでチームを作成し、Enterpriseの機能を使いたいボードとメンバー(自分)をチームに所属させて、そのチームに対してEnterpriseオプションを契約する。その後に不要ならGoldを解約する。

個人アカウントで作ったボードをチームのボードに変更するには?

ボード画面の右上の[…ボードメニューを表示]- […もっと見る]-[設定]-[チームを変更]から変更(または新規作成)ができる。

image.png

おわりに

今回は昔とった杵柄でMicrosoft Power Automateを採用したけど、改めて便利だなと思った。

以上

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6