[備忘録] SlackのメッセージをTrelloのカードに追加する方法
前回Slackのワークフローを使用してリクエストフォーマットを作成したので、それをTrelloに自動的にカード追加できるようにしたいです。
・理想
Slackでこのように投稿したら、、、
Trelloの「情シスQ&A」の「PC -Repair」に、こんな感じでカードが作成されて欲しい(緊急度に応じて、ラベルも色分けできると良いなあ)。
しかし残念ながら、Slackのワークフローに追加できるアプリはこれらのみ。Trelloがありませんね…
それならば…Zapierをかまして、Slack→Zapier→Trelloに連携できるか試してみました。
Zapierにログイン後、画面左上の「+」にカーソルを合わせると、「MAKE A ZAP」に変わるのでクリック。
Slack→Trelloなので、「1. Trigger」は「App Event」の「Slack」を選択。
Triggerのその他項目は、下記のように設定。
・Choose app & event - Trigger Event:New Message Posted to Channel
・Choose account - Slack account:自分のアカウント
・Set up trigger - Channel:help-情シス
- Trigger For Bot Messages?:Yes
・Test triger:テストとして表示させたいメッセージを選択
「2. Action」は「Trello」を選択(検索すると出てきます)。
その他項目は下記のように設定(設定項目のみ記載)。
・Choose app & event - Action Event:Create Card
・Choose account - Trello account:自分のアカウント
・Set up action - Board:情シスQ&A
- List:PC -Repair
- Name:Thread Ts Time, Text(カードのタイトル部分に表示される)
- Description:Text(カードの説明部分に表示される)
- Card Position:Top(リストの一番上にスタックしていく)
- URL Attachements:Permalink
(カードの説明の下に対象のSlackメッセージのURLが表示される)
実際にSlackから投稿してみると、下記のようになりました。
Zapierの「Set up action」の設定時から気付いてはいたのですが、、、時間がズレてますね。
実際のメッセージ投稿日時は「2021.5.11 19:08」ですが、「2021-5-11T10:08:16Z」となっています。
それとメッセージ投稿者が「表示名」ではなく、「ユーザー名」になっていました。Slackのアカウント設定で変更できるので、ユーザー名と表示名は揃えておいた方が良さそうです。
そして「New Message Posted to Channel」としたばかりに、スレッドに自動投稿された返信メッセージまで登録されています。これだと、その後スレッドでやりとりした内容も新規カードとして追加されてしまいます。
それならば、更にスプレッドシートを間にかまして、下記のように試してみました。
こんな感じでスプレッドシートにシートを作って、、、
GASで、B列にデータが入力されたらA列に日時が入るように作って、このままだと手動でセルにデータを入力しても日時が入らないのでトリガーを「編集時」に設定して、、、
ZapierでTriggerを「1. New Spreadsheet Row in Google Sheets」、Actionを「Create Card in Trello」と適宜設定して、、、
Slackから投稿するとなぜか依頼日が入っておらず(下図16行目は手動で入力したもの。手動入力だと日時が自動で入りましたが、17行目のSlackから入力したものに関しては日時が入りませんでした)、、、
※上記不具合は、トリガーを「編集時」→「変更時」に修正すると手動入力でもSlackから自動で入力されても無事日時が自動入力されました。セルにデータが新規で入るから「編集時」かと思っていたのですが、行が追加されるってことで「変更時」なのかもしれません。
参考?:https://developers.google.com/apps-script/guides/triggers/events
Trelloにはこんな感じで登録されました(PC故障時、Zapierの「Set up action」で「Custom Labels」に緊急度を設定したのですが、カードを開かないと見えないんですね。見えるのは色を設定した時のみのようです)。
ちなみに、Slackでリクエスト送信後、スプレッドシートへはすぐに登録されたのですが、Trelloへの反映は1分くらいかかりました。