[備忘録] SlackのメッセージをTrelloのカードに追加する方法

前回Slackのワークフローを使用してリクエストフォーマットを作成したので、それをTrelloに自動的にカード追加できるようにしたいです。

 

・理想

Slackでこのように投稿したら、、、

f:id:totin_3:20210511191235p:plain

Trelloの「情シスQ&A」の「PC -Repair」に、こんな感じでカードが作成されて欲しい(緊急度に応じて、ラベルも色分けできると良いなあ)。

f:id:totin_3:20210511191252p:plain

 

しかし残念ながら、Slackのワークフローに追加できるアプリはこれらのみ。Trelloがありませんね…

f:id:totin_3:20210511170135p:plainf:id:totin_3:20210511170155p:plain

 

それならば…Zapierをかまして、Slack→Zapier→Trelloに連携できるか試してみました。

Zapierにログイン後、画面左上の「+」にカーソルを合わせると、「MAKE A ZAP」に変わるのでクリック。

f:id:totin_3:20210511172049p:plain

 

Slack→Trelloなので、「1. Trigger」は「App Event」の「Slack」を選択。

f:id:totin_3:20210511172444p:plain

 

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から投稿してみると、下記のようになりました。

f:id:totin_3:20210511191557p:plainf:id:totin_3:20210512142501p:plain

 

Zapierの「Set up action」の設定時から気付いてはいたのですが、、、時間がズレてますね。
実際のメッセージ投稿日時は「2021.5.11 19:08」ですが、「2021-5-11T10:08:16Z」となっています。

それとメッセージ投稿者が「表示名」ではなく、「ユーザー名」になっていました。Slackのアカウント設定で変更できるので、ユーザー名と表示名は揃えておいた方が良さそうです。

そして「New Message Posted to Channel」としたばかりに、スレッドに自動投稿された返信メッセージまで登録されています。これだと、その後スレッドでやりとりした内容も新規カードとして追加されてしまいます。

 

それならば、更にスプレッドシートを間にかまして、下記のように試してみました。

f:id:totin_3:20210512173049p:plain

こんな感じでスプレッドシートにシートを作って、、、

f:id:totin_3:20210512153703p:plain

f:id:totin_3:20210512153711p:plain

 

GASで、B列にデータが入力されたらA列に日時が入るように作って、このままだと手動でセルにデータを入力しても日時が入らないのでトリガーを「編集時」に設定して、、、

f:id:totin_3:20210514111942p:plain

 

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

f:id:totin_3:20210512162513p:plain

f:id:totin_3:20210512162518p:plain

 

Trelloにはこんな感じで登録されました(PC故障時、Zapierの「Set up action」で「Custom Labels」に緊急度を設定したのですが、カードを開かないと見えないんですね。見えるのは色を設定した時のみのようです)。

f:id:totin_3:20210512163241p:plain

f:id:totin_3:20210512163727p:plainf:id:totin_3:20210512164040p:plain

 

ちなみに、Slackでリクエスト送信後、スプレッドシートへはすぐに登録されたのですが、Trelloへの反映は1分くらいかかりました。