Slackのワークフローを使って日によって都度内容の違うリマインドを行う
SlackのワークフロービルダーでSpreadsheet連携(Select Spreadsheet Row)を使うと特定の行を取り出し後続のステップに変数として含めることができる
さらに、スプレッドシートに工夫をすることで、日によってリマインド内容を変えるリマインダーを作成可能そうということでやってみた
スケジュール(ワークフロー)
これは単に設定するだけ
スケジュールで扱える後続ステップでの実行時刻の変数は2022-03-07T00:00:00
といった感じで出力される
ワークフロー内でフォーマットは行えないようなのでスプレッドシート側で工夫しないと対象行を特定できない
Spreadsheet側での工夫
こちらは先週書いた記事のようにタスク、期限、担当者のリストを日付でグループ化してリマインド対象の文字列を整形した結果
今回は上記をもとに話を進める
ワークフロービルダーの設定側で日付の列に対して「今日の日付」を指定できるのか試みたができなそうだった
そのため今日がリマインド対象の行であることを明示的に示す列を用意してする
dateが今日であるならremind
という文字列を表示するような式を入れた
- remind
=IF(TODAY()=G2,"remind","-")
後の設定ではremindカラムの値がremind
な行を選択する
こうすることで、日によって違う対象行を選定することが可能となる
Select Spreadsheet Row
ワークフロービルダーのSelect Spreadsheet Row
で対象行を選定する
特定のカラムの内容がマッチする行を取得できる
ただし、条件にマッチする1行目が対象となるよう
リマインダー用途の場合、1日に複数のタスクがある場合はまとめる必要がありそう(上記Spreadsheet側での工夫で実施済み)
ワークフロービルダーの設定では「remind
の列がremind
の行を取得する」という設定を行うだけ
メッセージをカスタマイズする
あとはメッセージ送信
のステップでスプレッドシートのカラムの内容を使えるのでカスタマイズする
マッチしない日はエラーとなるのでメッセージは送信されない
この方法だと、メンションを個別に送ることはできないのでカバーできる範囲のグループメンションを固定でメッセージに付与してお茶を濁す感じになりそう
サンプルで送ってみた感じが下記
おおむね期待通り
まとめ
- SpreadsheetとSlackワークフロービルダーを用いてリマインドメッセージを流せるようにした
- Spreadsheetで日付周りの計算を任せることで日付によって選択される行が変わるようにした