こんにちは、スタテク開発部の本田です。
突然ですが、タスクの締切管理って面倒ですよね、、、
締切日に間に合わせることが必須のタスクであれば、リマインドしながら管理したいものです。
そこで今日はスプレッドシードで管理しているデータが締切になったら、Google Apps ScriptでSlackにリマインド通知を送ってみようと思います!
目次
Google Apps ScriptでSlackにリマインド通知を送ってみよう
スプレッドシードの作成
タスク管理をするスプレッドシードを作成します。
今回はシンプルに
- タスク名(A列)
- 担当者(B列)
- 締切日(C列)
- ステータス(D列)
が管理できるスプレッドシードを作成しました。

Google Apps Scriptの作成
Google Apps Scriptを作成します。
スプレッドシードのツール→スクリプトエディタで起動することができます。

ここからGoogle Apps Scriptを書いていきます。

今回はタスクの中で
- 今日が締切
- ステータスが完了以外
のタスクをSlack通知の対象としようと思います!
以下コード
function taskRemind() {
// シート取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1')
// ループ数定義
var firstRow = 2
var lastRow = sheet.getLastRow()
// アラート対象日フォーマット
var date = new Date()
var remindDate = Utilities.formatDate(date, 'JST', 'yyyy/MM/dd')
for(var i = firstRow; i <= lastRow; i++) {
// 各項目取得
var title = sheet.getRange('A' + i).getValue()
var contactPerson = sheet.getRange('B' + i).getValue()
var closingDay = sheet.getRange('C' + i).getValue()
var formatClosingDay = Utilities.formatDate(closingDay, 'JST', 'yyyy/MM/dd')
var status = sheet.getRange('D' + i).getValue()
// リマインド時
if (formatClosingDay === remindDate && status !== '完了') {
var postUrl = '--Slack Webhook URL--'
var message = `【リマインダー】今日が納期です!\n■依頼タイトル:${title}\n■担当者:${contactPerson}\n■納期:${formatClosingDay}`
var payload = JSON.stringify({ "text" : message })
var options = { method: 'post', contentType: 'application/json', payload: payload }
UrlFetchApp.fetch(postUrl, options)
}
}
}
Slack Incoming Webhookの作成
最後にSlackのWebhookを設定していきます。
以下URLにアクセスして設定していきます。
https://slack.com/services/new/incoming-webhook

通知対象のチャンネル名を選択し、Incoming Webhookインテグレーションを追加します。

インテグレーションの設定をお好みで編集して設定を保存すれば完了です!
設定した内容で動くか確認してみます!

スプレッドシードの内容をリマインドすることができました!
さいごに
今回はGoogle Apps Scriptを使ってSlackにリマインド通知を送ってみました。
これでリマインド作業の自動化ができて、他の作業に集中することができそうです。
今後もローコードを使用して作業を自動化していきたいと思います。
それではまた!