【GAS】スプレッドシート と Slackを活用した自動連携アプリの構築

社内連携 DX

チーム内で勉強を促す!スプレッドシートとSlackの組み合わせテクニック

セクション内で共有したい、またはこれは知っておいてほしいといった情報を定期的に投稿したい!
そんなお悩みはありませんか?もう心配は不要です。

その重要な投稿を指定したスプレッドシートに自動でまとめる仕組みを作れば、問題は解決します。

では早速実装させる方法を以下にて説明します。

実現イメージ!!

スプレッドシートの入力情報

Slackへのアウトプットイメージ

Slackとスプレッドシートの連携にあたって準備するもの

  1. Google スプレッドシート(フリーアカウントでも可)
  2. Slack側の設定

Slack側の準備

Slack API画面へ

https://api.slack.com

上記、Webhook URLをコピーしておく。

Googleスプレッドシート側の準備

Apps Scriptの画面へ

スプレッドシート及びGoogle Apps Script側の準備を記載していきます。

function postToSlack() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getDataRange();
  const values = range.getValues();
  const today = new Date();
  today.setHours(0, 0, 0, 0); // 時間を0に設定して日付のみの比較をする

  const webhookUrl = 'XXXX'; // SlackのWebhook URLに置き換えてください

  values.forEach((row, index) => {
    const dateCell = row[0]; // A列の値
    const message = row[1]; // B列の値
    const isChecked = row[2]; // C列の値(チェックボックス)
    const rowDate = new Date(dateCell);
    rowDate.setHours(0, 0, 0, 0);

    // 今日の日付と一致し、まだチェックされていない行を探す
    if (rowDate.getTime() === today.getTime() && !isChecked) {
      // Slackにポスト
      const payload = JSON.stringify({text: message});
      const options = {
        'method' : 'post',
        'contentType': 'application/json',
        'payload' : payload
      };
      UrlFetchApp.fetch(webhookUrl, options);

      // チェックボックスにチェックを入れる
      sheet.getRange(index + 1, 3).setValue(true); // 1ベースのインデックスのため+1
    }
  });
}

上記 8行目にSlack のAPI画面で作成した Webhook URLを挿入します。

トリガーの設定

スプレッドシートのGoogle App Scriptの画面で設定を行います。

上記設定を行うと、毎日9-10時ごろに設定しておいたテキスト情報をSlackへ毎日投稿することが可能となります。

ぜひお試しください。


『もう諦めなくていいんです』驚きの低価格でECサイトを作ります。
※自社ECサイト構築をお考えのショップオーナー様・WEB担当者様へ朗報です

daredemoECでは、Shopify ECサイト制作サービスを本格開始しました。”売れる”オンラインショップで販路を広げるチャンスです ▼