見出し画像

GAS学習note:Day7 通知機能で“報告まで自動化”〜メール&Slackで知らせてくれるGAS〜

はじめに

前回(Day6)では、トリガーを使って GASを自動で動かす方法 を学びました。
今回はさらに一歩進んで、

✅ 「チェック結果を自動で知らせる」
つまり、通知機能の追加です。

たとえばこんなことができるようになります👇

  • ✅ 期限切れタスクをメールで報告

  • ✅ 在庫が少ない商品をSlack通知

  • ✅ 自分宛てに日報を自動送信

「自動で動く」から「自動で知らせる」へ。
AIが本格的にあなたの業務を“代行”し始めるステップです。


1️⃣ メールで結果を自動送信する

まずは一番シンプルな「メール通知」から。

以下は、Day4で作成した dueAlert() に通知を加えた例です👇

function dueAlertAndMail() {
  const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("タスク管理");
  const last = sh.getLastRow();
  const today = new Date();
  today.setHours(0, 0, 0, 0);

  let alertList = []; // 期限切れ一覧を保存

  for (let r = 2; r <= last; r++) {
    const due = sh.getRange(r, 6).getValue();
    const task = sh.getRange(r, 5).getValue();
    const status = sh.getRange(r, 7).getValue();

    if (!(due instanceof Date)) continue;
    due.setHours(0, 0, 0, 0);

    if (due < today && status === false) {
      sh.getRange(r, 8).setValue("期限切れ");
      sh.getRange(r, 6, 1, 3).setBackground("#f4cccc");
      alertList.push(`・${task}(期限:${Utilities.formatDate(due, "Asia/Tokyo", "MM/dd")})`);
    }
  }

  if (alertList.length > 0) {
    const body = "以下のタスクが期限切れです。\n\n" + alertList.join("\n");
    MailApp.sendEmail({
      to: "you@example.com",
      subject: "【自動通知】期限切れタスク一覧",
      body: body,
    });
  }
}

📨 ポイント

  • MailApp.sendEmail() で簡単に送信可能。

  • Utilities.formatDate() で日付をきれいに整形。

  • トリガーと組み合わせれば、毎朝メール通知が届く仕組みに!


2️⃣ Slack通知に挑戦!

Slackを使っている方は、Webhook連携でGASから直接メッセージを送れます。

  1. Slackのワークスペースで「App管理」→「Incoming Webhook」を追加

  2. 通知したいチャンネルを選び、Webhook URLをコピー

  3. 下記のようなコードを追加👇

function sendSlackMessage(text) {
  const url = "https://hooks.slack.com/services/XXXX/YYYY/ZZZZ"; // あなたのWebhook URL
  const payload = JSON.stringify({ text: text });
  UrlFetchApp.fetch(url, {
    method: "post",
    contentType: "application/json",
    payload: payload,
  });
}

これを dueAlertAndMail() の最後に追記します👇

if (alertList.length > 0) {
  const message = "🚨期限切れタスク一覧\n" + alertList.join("\n");
  sendSlackMessage(message);
}

💬 結果
期限切れのタスクがSlackチャンネルに自動投稿されます🎉


3️⃣ ChatGPTと一緒に通知文を改善してみよう

自動送信できるようになると、
「メール本文が味気ない」「Slack通知をもう少し見やすくしたい」
と思うようになります。

そこでChatGPTに相談👇


💬 実際のやり取り(スクショ風)

📘 あなた(質問)

ChatGPT、Slack通知をもう少し読みやすくしたいです。
絵文字や改行を入れて目立たせたい。

🤖 ChatGPT(提案)

いいですね!Slackは絵文字やMarkdownが使えます。
こんな形にしてみてください👇

const message =
  "⚠️ *期限切れタスク一覧*\n" +
  alertList.map(t => `• ${t}`).join("\n") +
  "\n\n_※確認後、ステータスを更新してください。_";

📘 あなた

実際に送ったら見やすくなりました✨
「期限切れ」の赤背景と合わせて、かなりわかりやすいです!


💡 ChatGPT活用のコツ

  • 通知文の調整はAIが得意な分野。

  • 「もう少し柔らかく」「社内向けに」「英語で」など、トーンを変えられる。

  • コード+表現の両方をAIに相談できる。


4️⃣ GAS × トリガー × 通知 の全体像


この4つを組み合わせることで、
「AI+GASによる半自動オフィスシステム」 が完成します✨


まとめ:Day7で身についた力

Day7では、チェック結果を人間に知らせる仕組みを作りました。

  • ✅ MailApp.sendEmail() でメール通知

  • ✅ UrlFetchApp.fetch() でSlack通知

  • ✅ ChatGPTを使って表現を改善

💡 Day6が「動く」なら、Day7は「伝える」ステップ。
AIが“報告役”まで担うことで、業務の自動化レベルが一気に上がります。

いいなと思ったら応援しよう!

この記事が参加している募集