【EndlessReminder】曜日指定投稿機能を追加しました!

1. EndlessReminder(エンドレスリマインダー)とは?

EndlessReminderは、あらかじめ登録したタスクが完了するまで、エンドレスにタスクの状況確認をするツールです。Slack(またはChatwork)のグループチャンネル(またはルーム)に参加しているメンバー間で、タスクの進捗状況の可視化・共有・スケジュール管理に利用できます。
EndlessReminderを導入すると、以下の効果が期待できます。
 
  1. 定期的かつたまに発生するタスクの失念防止に役立つ
  1. グループチャンネルの参加メンバーにタスクの進捗状況が可視化・共有され、タスクの属人化を防止・抑制する効果がある
  1. 繰り返しの状況確認・連絡の手間を省ける
 

1-1. タスクの失念防止効果

EndlessReminderは、明確に「完了」を知らせる内容を投稿するまで、エンドレスにリマインドし続けてくれます。そのため、忘れそうになるたびに思い出させてくれます。
 
図1. 忘れていたことに気づく人の図
図1. 忘れていたことに気づく人の図
 

1-2. タスクの属人化の防止・抑制効果

EndlessReminderは、複数人が参加するグループチャンネルで使用することで、タスクの属人化を防止・抑制する効果を発揮します。グループチャンネルに、自動的にタスクの進捗状況を確認するメッセージを送って返信を求めるため、誰がどんなタスクを抱えているか、どのような進捗状況かといったことが、グループチャンネル内で可視化・共有されます。
「自動的に進捗状況を確認する」「完了の連絡があるまで、エンドレスに状況を確認し続ける」という点がポイントです。これらの振る舞いにより、グループチャット内に記録を残す行動を後押しし、情報の記録・可視化・共有の習慣化に役立ちます。
 
図2. 情報の記録・可視化・共有により効率的で働き易い職場環境を実現
図2. 情報の記録・可視化・共有により効率的で働き易い職場環境を実現
 
複数の人と一対一で連絡し合うよりも、グループチャンネルで複数人に対して一度に情報を記録・可視化・共有する方が効率的です。
一対一の個別のやりとりが多い場合は「Aさんから個別に連絡があった〇〇の件をBさんに相談しよう。そのためには背景を含めて説明資料をまとめて……」なんてことになりますが、同じグループチャンネルに記録が残っていれば「この件で相談させてください(リンク共有)」で済みます。
 

1-3. 繰り返しの状況確認・連絡の手間の削減効果

EndlessReminderをあらかじめ設定しておけば、状況確認の連絡・繰り返しのリマインドを自動化でき、それらにかかる手間が削減できます。この効果については、前回の記事前々回の記事でも解説しています。詳細についてはそちらを参照してください。
 
図3. 状況確認・連絡で忙しい人の図。自動化したらいいのに……
図3. 状況確認・連絡で忙しい人の図。自動化したらいいのに……
 

2. 曜日指定投稿機能

EndlessReminderの導入先からの「特定の曜日にSlackで投稿するタスクを自動化したい」という要望にお応えして、そのための機能を追加しました。
従来のEndlessReminderは、メッセージの投稿日時は指定できましたが、投稿の曜日を指定することはできませんでした。今回のアップデートにより、「毎週金曜日に週報の提出を求める」「毎週水曜日の10時に定例会議の開始連絡をする」などの、週次で発生する細かな連絡業務を自動化できるようになりました。
以下では、投稿曜日の指定方法を紹介します。
 

2-1. 投稿管理用スプレッドシート

EndlessReminderでは、「投稿管理用スプレッドシート」で投稿日時・内容等を設定します。
まずは「投稿管理用スプレッドシート」をご自身のGoogle Driveにコピーして、シートの内容を確認してください。
スプレッドシートをコピーすると、スプレッドシート中に「main」「holiday_calendars」「completion_keywords」「settings」の 4 つのシートが含まれていると思います。
今回のアップデートは、これらのうち「main」シートに関係します。以下では、アップデート内容である「曜日指定投稿機能」に関する内容に絞って説明します。その他の設定内容について知りたい場合は、前回の記事前々回の記事も参照してください。
 
「投稿管理用スプレッドシート」を開き、「main」シートを表示してください。以下のスクリーンショットのように表示されると思います。1行目はヘッダ、2行目と3行目は設定例です。2行目と3行目は削除していただいて構いません。
この「main」シートで設定可能な項目は、表1の通りです。
 
図4. 投稿管理用スプレッドシートの「main」シート(一部抜粋)
図4. 投稿管理用スプレッドシートの「main」シート(一部抜粋)
 
表1. 「main」シートの設定項目一覧
設定項目記述内容
A列No.管理用の番号です。1以上の整数を入力します。重複は不可。
B列Yearsメッセージを投稿する「年」のリストです。西暦の数値をカンマ区切りで入力します。リスト中に「*」が含まれる場合は、毎年繰り返し投稿します。
C列Monthsメッセージを投稿する「月」のリストです。1〜12の数値をカンマ区切りで入力します。リスト中に「*」が含まれる場合は、毎月繰り返し投稿します。
D列Daysメッセージの「投稿日」または「投稿曜日」です。 「投稿日」の場合は、1〜31の整数を入力します。 「投稿曜日」の場合は、「sun」「man」「tue」「wed」「thu」「fri」「sat」といった各曜日を意味する英単語の略語を入力します。
E列Except holidays休日に投稿するか決定するフラグです。TRUEまたはFALSEを入力します。 ■D列が「投稿日」の場合 TRUEを入力すると休日には投稿しません。FALSEを入力すると休日にも投稿します。 また、TRUEの場合は、D列の値を、休日を除く「営業日」として解釈されます。例えば、D列に「1」を、E列に「TRUE」を入力すると、指定月の最初の営業日に投稿されます。 ■D列が「投稿曜日」の場合 TRUEを入力すると休日には投稿しません。 FALSEを入力すると、その曜日が休日の場合には直前の営業日に投稿します。
F列Sending timeメッセージを投稿する「時刻」です。時(hh)・分(mm)・秒(ss)を「:」区切りで入力します(hh:mm:ssという形式で入力します)。分(mm)・秒(ss)は省略可能です。例えば、E列に「12:00」と入力すると午後12時に投稿されます。
G列Channelメッセージの投稿先のチャンネル名(Slackの場合)またはルーム名(Chatworkの場合)を入力します。
H列Send toメッセージの送信先をカンマ区切りで入力します。Slackの場合は、「氏名」「表示名」「メンバーID」「channel」「here」などです。ここで、「メンバーID」は、Slackのユーザーのプロフィール欄の「メンバーIDをコピー」から入手可能なIDです。 Chatworkの場合は、「all」「toall」でルームの参加者全員に対してタスクを割り当てることができます。ただしその場合でも、L列の「Not remind to」に列挙した宛先は、タスクの割り当て先から除外できます。
I列Message送信するメッセージの内容です。タスクの依頼内容を記述してください。
J列Waiting minutesI列のメッセージ送信時点からK列の催促メッセージ送信までの待機時間です。
K列Reminder messageタスクを未完了の人に対して定期的に送信するメッセージ(対応催促のメッセージ)を入力してください。何も入力しない場合は、タスクの対応状況を確認せず、催促のメッセージは送信されません。
L列Not remind toH列のメッセージ送信先のうちK列の催促メッセージの送信先から除外したい人の「メンバーID」(もしくは「氏名」か「表示名」)を入力してください。 Slackの場合は、H列に「channel」を入力すると、基本的に、G列に入力したチャンネルの参加者全員を対象として、タスクを未完了の人にK列の催促メッセージを送信し続けます。しかし、例えば、L列に管理職の人の「メンバーID」を入力すると、管理職の人に対しては催促メッセージを送信しないようにできます。 Chatworkの場合は、H列に「all」を入力すると、基本的に、G列に入力したルームの参加者全員に対してタスクを割り当て、タスクを未完了に人にK列の催促メッセージを送信し続けます。しかし、例えば、L列に管理職の人の「表示名」または「Chatwork ID」を入力すると、管理職の人に対してはタスクを割り当てず、催促メッセージも送信しないようにできます。
M列disabled投稿の設定を一時的に無効化するためのフラグです。「TRUE」または「FALSE」を入力します。「TRUE」の場合は、一時的に設定が無効化され、その行に定義されているメッセージの送信を強制的に停止できます。何も入力しない場合は「FALSE(設定有効)」として解釈されます。
 
この「main」シートのD列とE列が、今回のアップデートに関係する設定項目です。
 

2-1-1. 「main」シートD列:Days

D列は、メッセージの「投稿日」または「投稿曜日」です。
「投稿日」を設定したい場合は、1〜31の整数を入力します。「投稿曜日」を設定したい場合は、「sun」「man」「tue」「wed」「thu」「fri」「sat」といった各曜日を意味する英単語の略語を入力します。
 

2-1-2. 「main」シートE列:Except holidays

E列は、休日に投稿するか決定するフラグです。TRUEまたはFALSEを入力します。
E列の値は、D列に「投稿日」を入力した場合と、「投稿曜日」を入力した場合とで解釈が異なります。それぞれ、以下の通り解釈されます。 ■ D列が「投稿日」の場合のE列の値の解釈 TRUEを入力すると休日には投稿しません。FALSEを入力すると休日にも投稿します。 また、TRUEの場合は、D列の値を、休日を除く「営業日」として解釈されます。 例えば、D列に「1」を、E列に「TRUE」を入力すると、指定月の最初の営業日に投稿されます。 ■ D列が「投稿曜日」の場合のE列の値の解釈 TRUEを入力すると休日には投稿しません。 FALSEを入力すると、その曜日が休日の場合には直前の営業日に投稿します。
 

2-2. 曜日指定投稿機能の動作確認

EndlessReminderを初めて使用する場合は、Slackの認証トークン、またはChatworkのAPIトークンが必要です。それらの入手方法と設定方法については、前回の記事または前々回の記事を参照してください。
また、「holiday_calendars」シートは、ヘッダ行だけ残して他の行は全て削除してください。また、「completion_keywords」シートに、「完了しました」などの文字列を追加してください。
 
その上で、「main」シートの各列の値を、表1を参考に設定します。D列に投稿曜日を表す文字列( sat や fri や mon など)、E列には TRUE または FALSE を入力してください。
F列には投稿する時刻(未来の時刻)を、G列には投稿先のチャンネル名、H列には投稿相手のSlackのメンバーID(または表示名、または channel など)を入力してください。
 
I列には以下のテキストを入力してください。
 
今週の週報を本日中に提出してください。 提出が完了している人は、本スレッドのコメント欄で「完了しました」とお知らせください。
 
また、K列には以下のテキストを入力してください。
 
完了しましたか?完了している場合、本スレッドで「完了しました」とお知らせください。
 
その他の列には以下の通り入力してください。
 
A列:1以上の整数(重複は不可)
B列:*
C列:*
J列:1
L列:(空欄)
M列:FALSE
 
正しく設定されていれば、設定した曜日・時刻に、図5 のように投稿されることを確認できると思います。図5はSlackの場合です。Chatworkの場合はタスクとして投稿されます。
 
図5. Slackへの投稿内容
図5. Slackへの投稿内容
 
図5の動作確認時は、素早く動作確認するため、2回目以降のリマインド間隔(「settings」シートの「TIME_INTERVAL」)は1分に設定しました。また、「settings」シートの「DEBUG」をTRUEに設定し、スプレッドシートに関連づけられているGASをエディタから直接実行しました。
GASのエディタの使い方や動作確認方法については長くなってしまうので割愛します。
Google検索で「Google Apps Script」「使い方」などのキーワードで検索すれば、分かりやすい解説記事が見つかると思います。そちらを参照してください。
 

3. まとめ

  • EndlessReminderの以下の導入効果について紹介しました
    • タスクの失念防止効果
    • タスクの属人化の防止・抑制効果
    • 繰り返しの状況確認・連絡の手間の削減効果
  • EndlessReminderに「曜日指定投稿機能」を追加しました
  • 「曜日指定投稿機能」の設定方法について解説しました
 
EndlessReminderは、GoogleWorkspaceとSlack(またはChatwork)をご利用中の会社であれば、無料で導入・運用可能です。2023年2月現在、導入のサポートを無料で実施しています。必要に応じて、お問い合わせフォーム または Twitter からご連絡ください。
 
ぜひ、EndlessReminderを仕事の効率化に役立てていただけるとうれしいです。