おはようございます、こんにちは、こんばんは。サーバーサイド開発部(PHP)のチバです。
社内で一番ヤバイやつ、真面目だけどクズ、なんて周りからは言われていますが私は元気です。 私が一番普通だと思っているので納得はできてないですけれど。 こんな記事を書いたりしているので興味がある方は読んでみてください。
話題は変わりますが、Chatwork のタスクの管理ってみなさんどうされてますでしょうか。
ものぐさな私は Chatwork のタスクが溜まりがちです。
やらなければならないタスクを確認するために、毎朝もしくは毎晩、タスク一覧を確認すれば良いだけなのだけれど…この行為すらものぐさな私にはハードルが高い。どうしたらタスクが溜まらないのだろうか…
やれって話ではあるんですが無理なんですよ、だってものぐさなんだもん。
ということで、ものぐさな私にでもタスクの確認ができるような仕組みがあったら良いのではないだろうかと思いつきました。
毎日の習慣に組み込もう
仕組みを作ったところでタスクを毎日確認しにいかなければ意味がない。 自ら見に行くのは無理だということは分かっている。ものぐさだし。
じゃあどうしようか…どうしたらいいんだ…
ふと思いついた。私は業務開始の一番最初に前営業日の退勤後から今までになにが起こったかを確認している。退勤後にも社内のチャットは活発に動いている。退勤後に何が起こっていたのか、返信しておくことはないか、という感じで未読メッセージがあるものを確認している。毎朝のルーティンだ。
あれ?このルーティンにタスクの確認を組み込んでしまえば良いんじゃない?
毎朝行っていることだから新たに特別にやることが発生するわけではないし、習慣になっているから苦でもない。チャットを見たときにやるべきタスクが見えるし!見るし!特定のチャットに私のやるべきタスクを送信するようにすればいいじゃんか。
これならものぐさな私でも自然にタスクの確認をすることができる
朝見る、終わらせられるものは終わらせる。終わっていないものは次の日も来る。毎日チャットを見るくらいならできる。
あーはん。これですね
コードを書いたら負け
とはいえです。とはいえ。タスクリマインダーを作るとはいえです。そもそも、自分専用のこのようなものに対してコードを書きたくないのです。自分一人のために丁寧な晩御飯を作るのがめんどくさいからポテチを食べるお母さんの感覚です。
コードを書いたりデプロイしたりというのがもう面倒。ものぐさな私には無理だ。楽をするための仕組みを作るんだから、作るとこから楽したい。
つーか、誰か作ってくれないかなって思ってしまう程度に私はものぐさだ。
タスクリマインダーを作る
私が大好きな Integromat というサービスを使ってノーコードでタスクリマインダーを作ることにします。ありがたいことに、先日 Integromat に Chatwork モジュールが出来たので、超簡単に作ることができそうです。
仕様を決める
どのようなタスクリマインダーがあったら良いだろうか。
例えば期限が指定されているタスク、それらがメッセージとして投稿されたら良い?でも、今日以降だと期限切れになっちゃったタスクが出てこない。じゃあ、2週間など一定期間前に期限が設定されているものも含めちゃおう
それで、1タスク1メッセージにしてしまおう。毎日確認する際に未読数 = やるべきタスク数になる。やるべきタスクの数もわかるし、タスクの内容もわかる。
ついでにタスクが発生したメッセージへのリンクもつけちゃおう
やってみよう
仕様も決まった。 アカウント登録の時間を除けば30分もかからないはずだ。
グループチャットを作る
マイチャットに投稿するというのも楽で良いですが、タスクの数を把握したいのでそのためのグループチャットをを作りましょう。
やらなければいけないタスクの数が未読メッセージ数として表示されるため、タスクを把握するのに便利です
ログインする
まずは Integromat にログインしましょう。アカウントがなければ作りましょう。
アカウント作成についてはやまごしが書いた【ノーコード】通知用ルームに自分へのメンションをまとめてChatworkを使いこなそう!を参考に頑張ってください。
Integromat のシナリオを作る
Integromat にログインできたらタスクリマインダー用のシナリオを作りましょう。
完成形はこちらです
タスクを取得して、毎日定時にメッセージを送信するだけです。それでは作っていきましょう。
タスクを取得する
まずは Chatwork モジュールをセットします。
セットする際は List My Tasks を選択してください
タスク取得のモジュールが設定できたら、Chatwork の OAuth の仕組みを使って使ってタスクを取得する Chatwork アカウントと Integromat を接続しましょう。モジュールをクリックするとダイアログが出てくるので、Add ボタンを押してください。
ボタンを押すとまた別のダイアログが出てくるので、接続用の名前を設定し continue ボタンを押しましょう。
以下のような画面が出てくるので、許可ボタンを押してください。
このままだと、完了済みのタスクも取得してしまうので、Status を Open に変更します。Open にすることで未完了のタスクのみの取得が可能になります。Limit の欄は適当に変えてください。上の画像だと接続名が「私」なのに、この画像では「俺」になっているっていうのはものぐさな私がスクリーンショットを取り直すのを面倒くさがっているだけなので気にしないでください。
これでタスクの取得は完璧です。
タスクをリマインドする
タスクの取得ができたので、次は取得したタスクをメッセージとして投稿する部分を作っていきましょう。ゴールはもうすぐです。
最初に作ったモジュールにさらにメッセージを投稿するための Chatwork モジュールを追加します。
最初に作った Chatwork モジュールにマウスを乗せると + というのが出てくるのでクリックしてください。
クリックするとまたモジュールの追加のダイアログが表示されるので、Chatwork を選択。
ここでは Create a Room Message を選んでください。
モジュールの追加ができたらモジュールの設定をします
まずはメッセージを投稿するルームを選択しましょう。Room ID の項目から最初に作成したタスクリマインド用のグループチャットを選択します。
投稿するルームの選択が終わったら、その下の Set the Message Status を Unread にしてください。これで自分自身が送信してもメッセージは未読の状態になります。本当はタスクリマインダー用の bot を作ってメッセージを投稿すれば良いのですが、アカウントを切り替えて OAuth の設定してなんて…ものぐさな私にはとてもとても…
次は投稿するメッセージ内容を考えます。Message Body に色々書いていきましょう。
私はこんな感じのメッセージにしました。
[info][title]期限:{{formatDate(parseDate(1.limit_time; "X"; "Asia/Tokyo"); "YYYY-MM-DD HH:mm")}}[/title]{{1.body}} [hr] 👉 https://www.chatwork.com/#!rid{{1.room.room_id}}-{{1.message_id}}[/info]
これで、メッセージの投稿ができるようになりました。
試しにこのようなタスクを登録し、タスクリマインダーを実行したところこんな感じになりました。
リマインドするタスクを絞り込む
完成だ!と思ったけれど、昔のタスクが出てきちゃってる…2週間前以降という仕様を満たしていない…
ということで、タスクの期限を元に投稿するタスクを絞り込んでいきます。
2つのチャットワークモジュールをつなげている線の間にあるアイコンをクリックして Filter を作ります。
クリックをするとメニューが出てくるので Set up a Filter を選んでください。選択すると以下のようなダイアログが表示されるので、絞り込みのための条件を書いていきましょう
今回はタスクの期限を元に判定するのでこんな感じでいってみましょう。
実は入力欄の間の文字列の部分も選択できます。クリックすると変更できるので変更必須です。Datetime の Later than を選んでください
条件の部分は取得したタスクの Limit Timeを基準にして、Limit Time が14 日前以降だったら投稿するって感じですね。14日っていうのは私の場合なので、使いやすいように適当に決めちゃってください。
今回の設定はこんなです。コピーして使えると思います。
{{addDays(now; -14)}}
この設定を反映したところ、先程は投稿されていた古いタスクは投稿されなくなりました。
ここまでで、タスクリマインダーの基本機能は完成です。
リマインドする時間を設定する
機能は完成したとはいえ、毎日教えてよーというところまではできていません。
なので、何曜日にリマインドするか、何時にリマインドするかという設定をしましょう。これで完璧に行けるはず。
最初に追加した Chatwork モジュールに時計のアイコンが付いているのでそこをクリックしてください。そうするとダイアログが出てくるので設定をしていきましょう。
まずは Run scenario を Days of the week に変更します。そうすると、リマインドする曜日を選択できるので、土日にはリマインドしないということができるようになります
次に Time をクリックし、通知して欲しい時間を決めます。ここは自分でリマインドして欲しいタイミングで自由に決めちゃってください。
これで完成。一発実行してみましょう。画面の左下にある再生ボタンを押しましょう。
最後に
完成しちゃいましたね。タスクリマインダーが完成しちゃいました。
後はシナリオを保存して
有効化しましょう
まとめ
これで、毎日決まった時間にタスクのリマインドが来るようになりました。
期限切れの古いタスクや、期限が設定されていないタスクはリマインドされませんが、そこは Filter の部分を調整すればなんとかなるでしょう。
毎朝チャットを見るくらいならものぐさな私でもできそうだ。
あと、待ってる人がいるからちゃんとタスクは期日までに完了させようね!
ついでに
Chatworkではメンバーを絶賛募集中です!
こんなにものぐさなやつが開発できているんだ…できるんだよ!できるよ!もし興味があればカジュアルに話を聞きにきちゃってください。