\無料配布/ サーバー不要 社内ポータル作成キット>

​【Gmail × Slack】「重要メール」だけをチャットに飛ばす。埋もれた問い合わせを0秒で拾う「0円通知ボット」の作り方

​朝起きると、未読メールが50件。

そのうち49件はメルマガやシステム通知、どうでもいいCC共有。

でも、その中にたった1件だけ、今日中に返信しないとマズい「重要案件」が混ざっている。

​これを見つけるのは、もはや「ウォーリーをさがせ」です。

忙しい時に限って見落とし、数時間後に「あのメール見た?」と電話がかかってきて冷や汗をかく。

​そんなスリルはもう要りません。

今回は、Gmailに届いたメールの中から「本当に重要なメール」だけをピックアップして、あなたが普段見ているSlack(チャット)に通知するボットを作ります。

​「メールは見ないけど、Slackなら即気づく」

そんな現代のビジネスパーソンに捧ぐ、コピペで終わる0円DXです。

目次

​1. 何を作るの?(完成イメージ)

​今回は「ラベル」という機能を使います。

  1. ​Gmailで「特定の条件(例:社長からのメール)」に、自動で「Slack通知」というラベルが付くように設定する。(これはGmailの標準機能)
  2. ​プログラムが5分おきに「Slack通知」ラベルが付いたメールを回収する。
  3. Slackに内容を投稿しメールからラベルを外す(完了)。

​この仕組みなら、「件名に【緊急】が含まれる時だけ」とか「あのお客さんから来た時だけ」といった細かいワガママ設定が可能です。

​Step 1:Slackの「郵便受け(Webhook)」を用意する

​まずは、通知を受け取るSlack側の準備です。

「ここに向かってボール(情報)を投げれば届くよ」というURLを取得します。

  1. ​PCでSlackを開き、通知させたいチャンネル名を右クリック > 「チャンネル詳細を開く」
  2. ​「インテグレーション」タブ > 「アプリを追加する」
  3. ​検索窓に「Incoming Webhooks」と入力して、「インストール(または設定)」をクリック。
  4. ​ブラウザが立ち上がるので、「Slackに追加」をクリック。
  5. ​投稿先のチャンネルを選んで「Incoming Webhook インテグレーションの追加」をクリック。
  6. ​画面に表示された 「Webhook URL」 (https://hooks.slack.com/services/… から始まる長い文字列)をコピーして、メモ帳に貼っておく。

​※これが「パスワード」兼「住所」になります。誰にも教えないでください。

​Step 2:Gmailに「目印(ラベル)」を作る

​次にGmail側の準備です。

  1. ​Gmailを開き、左メニューの「もっと見る」>「新しいラベルを作成」。
  2. ​ラベル名を 「Slack通知」 にして作成。(一字一句この通りにしてください!)

​これで準備完了。「このラベルが付いたメール=Slackに飛んでいくメール」になります。

​Step 3:魔法の書(スクリプトエディタ)を開く

​前回同様、Googleの裏側へ行きます。

  1. ​Googleドライブを開く(またはスプレッドシートでもOK)。
  2. ​左上の「+ 新規」>「その他」> 「Google Apps Script」
  3. ​開いた画面の文字を全部消して真っ白にする。

​Step 4:魔法の呪文(コード)をコピペする

​以下のコードをコピーして、貼り付けてください。

※貼り付けた後、1行目の “ここにURLを貼り付け” の部分だけ、さっきStep 1で取得したSlackのURLに書き換えてください!

function notifyGmailToSlack() {
  // ■設定エリア(ここだけ変更してください)------------------
  const slackWebhookUrl = "https://hooks.slack.com/services/xxxxx/yyyyy/zzzzz"; // Step1で取得したURL
  const targetLabelName = "Slack通知"; // Step2で作ったラベル名
  // -----------------------------------------------------

  // 指定したラベルが付いているメール(スレッド)を取得
  const label = GmailApp.getUserLabelByName(targetLabelName);
  
  // もしラベル自体がなかったらエラーを表示して終了
  if (!label) {
    console.log(`「${targetLabelName}」というラベルが見つかりません。Gmailで作ってください。`);
    return;
  }

  // 未読・既読にかかわらず、そのラベルが付いたメールを取得
  const threads = label.getThreads();

  // 対象メールがなければ終了
  if (threads.length === 0) {
    console.log("通知対象のメールはありません。");
    return;
  }

  // メールを1件ずつ処理
  for (let i = 0; i < threads.length; i++) {
    const thread = threads[i];
    const messages = thread.getMessages();
    const lastMessage = messages[messages.length - 1]; // スレッドの最新の1通を取得

    const subject = lastMessage.getSubject(); // 件名
    const from = lastMessage.getFrom(); // 送信者
    const body = lastMessage.getPlainBody().substring(0, 200); // 本文(長いので先頭200文字だけ)
    const date = Utilities.formatDate(lastMessage.getDate(), Session.getScriptTimeZone(), "MM/dd HH:mm");

    // Slackに送るメッセージを作る
    const payload = {
      "text": `📩 *Gmailから重要なメールが届きました*`,
      "attachments": [{
        "color": "#D00000", // 赤いライン
        "fields": [
          { "title": "件名", "value": subject, "short": false },
          { "title": "送信者", "value": from, "short": false },
          { "title": "受信日時", "value": date, "short": true },
          { "title": "本文(抜粋)", "value": body + "...", "short": false }
        ]
      }]
    };

    // Slackに送信実行!
    const options = {
      "method": "post",
      "contentType": "application/json",
      "payload": JSON.stringify(payload)
    };
    UrlFetchApp.fetch(slackWebhookUrl, options);

    // 二重送信を防ぐため、ラベルを外す(処理完了)
    thread.removeLabel(label);
  }
}

書き換えたら、フロッピーアイコン(💾)で保存。「Gmail通知」など名前をつけておきましょう。

​Step 5:テスト実行と「承認」

  1. ​Gmailに行き、適当なメール(どうでもいいやつ)に、手動で「Slack通知」ラベルを付けてみてください。ドラッグ&ドロップで付きます。
  2. ​Apps Script画面に戻り、「▷ 実行」 をクリック。
  3. 「承認画面」が出ます(前回と同じ手順で突破してください)。
    • ​権限を確認 > アカウント選択 > 詳細 > 安全ではないページへ移動 > 許可
  4. ​実行完了後、Slackを見てください。「📩 Gmailから重要なメールが届きました」と通知が来ていれば成功です!
  5. ​Gmailに戻ると、さっきのメールから「Slack通知」ラベルが消えているはずです(これが「処理済み」の証拠です)。

​Step 6:自動化(トリガー)と「振り分け設定」

​最後に仕上げです。

1. プログラムを定期実行させる

Apps Script画面の左側「時計マーク(トリガー)」から、以下のように設定して保存します。

  • ​イベントのソース:「時間主導型」
  • ​タイプ:「分ベースのタイマー」
  • ​間隔:「5分おき」(または10分おき)

​これで、5分に1回「ラベル付きメール」を回収しに来てくれます。

2. Gmailの「フィルタ」を設定する(ここがキモ!)

手動でラベルを付けるのは面倒なので、Gmailの機能で自動化します。

  • ​Gmailの検索窓の右にある調整ボタンをクリック。
  • ​条件を入れる(例:Fromに 社長のアドレス、または件名に 【緊急】 至急 など)。
  • ​「フィルタを作成」をクリック。
  • 「ラベルを付ける」にチェックを入れ、「Slack通知」を選ぶ。
  • ​「フィルタを作成」完了。

​これで完成です!

今後、条件に一致するメールが届くと、自動でラベルが付き、5分以内にボットが回収し、Slackに通知してくれます。

​応用編:SlackじゃなくてLINEやChatworkがいい!

​「うちはSlack禁止なんです……」

「LINEに通知してくれたら、外出先でも気づけるのに」

​安心してください。今回のコードの「送信部分」を少し書き換えるだけで、LINEChatwork、あるいはMicrosoft Teamsにも通知可能です。

​ただ、それぞれのツールで「URLの取得方法」や「メッセージの書き方」が微妙に違います。全部書くと記事が辞書みたいに分厚くなってしまうので、ここでは割愛しました。

​「私の会社で使っている〇〇ツールに通知したい!」

「本文をもっと長く表示したい!」

「特定のキーワードが入っている時だけ、メンション(@)を飛ばして叩き起こしたい!」

​そんなカスタマイズをご希望の方は「うしろぽっけ」にお任せください。

あなたの会社のチャット文化に合わせた、世界に一つの通知ボットを作成します。

\ LINEやChatworkに通知したいなら / ⚡️ 通知先ツールの変更・
カスタマイズを相談する
よかったらシェアしてね!
  • URLをコピーしました!
目次