業務の改善」または、「業務の効率化」を目指している方、こんにちは。

今回は、「Google Apps Script(GAS)」を使った業務の改善・効率化の事例紹介の第三弾です。

弊社は、協同組合様や運送事業者様向けにETCカードの管理・請求書・走行明細書発行システム「ETCクラウド」を提供していますが、システムだけでなく、運用業務のアウトソーシング(事務代行)もお受けしております

そのアウトソーシングでお受けしている運用業務の効率化、ミス削減のために行っている事例をご紹介させていただければと思います。

前回は、「Googleスプレッドシートで業務管理&アラートメールを送る」方法をご紹介しましたが、今回は、 「Google Apps Script(GAS)」 と「LINE」の連携による「業務の改善・効率化」の事例をご紹介します。

アラート通知として仕事でメールを利用している方は多いと思いますが、常時メールを確認できる環境ではない場合もよくあります。そのような場合は、メールではなく「LINE」で通知を行えば確認できるケースも多くあります。「Google Apps Script(GAS)」では、LINEにメッセージを送信するスクリプトを作ることができます。

第一回の事例でご紹介したリマインダースクリプトや、第二回の事例でご紹介したアラートスクリプトは「メールでメッセージを送る」というものでしたが、今回は、それを「LINEにメッセージを送る」へ変更したものです。

スクリプトの作り方は以下が参考になります。

GASでLINEにメッセージを送るためのMessage APIの基礎知識魚拓

LINEにメッセージを送る方法ですが、LINE社から提供されている「Messaging API」の仕組みを利用します。

Messaging APIの概要 – LINE Developers

毎月1,000通まで無料で送信可能です。なので、たくさん業務で使ったり、多くの人に送信しなければ、十分無料で利用できます。

Messaging API」を利用するために、「LINE Developers」へアクセスします。ログインは、LINEビジネスID、または個人LINEアカウントで行います。

「LINE Developers」にログインできれば、「Google Apps Script(GAS)」からLINEを操作するための通路である「チャネル」を作成します。今回は、以下のように「個人タスク通知くん」というチャネルを作りました。

LINE Developers コンソールの画面

自分の「ユーザーID」と、チャネルを動かすパスワードである「チャネルアクセストークン」を取得し、「個人タスク通知くん」のQRコードがあるので、自分のスマホのLINEアプリからQRコードリーダーにて「友達登録」をします。

Googleスプレッドシートは、以下のような感じです。

ここまで準備ができれば、「Google Apps Script(GAS)」にて、LINE Messaging APIでメールを送るスクリプトを書きます。

内容としては、「Googleスプレッドシートに記載されているタスクの納期が当日で、状況が完了になっていなければ、タスクの内容をLINE送信する」というものです。

スクリプトは以下です。

function mail() {
  //シートを取得
  var bk = SpreadsheetApp.getActiveSpreadsheet();
  var sh = bk.getActiveSheet();
  
  var last_row = sh.getLastRow(); //最後の行を取得(繰り返し処理の回数)
  var begin_row = 2; // 処理を開始する行 (1行目は項目名なので2から)
  
  //今日の日付を取得し文字列を成型する
  var today =  new Date();  
  var formatDate = Utilities.formatDate(today, "JST","yyyy/MM/dd");

  //繰り返し処理(1行づつ処理し、行の数だけ繰り返す)
  for(var i = begin_row; i <= last_row; i++) {
  //それぞれのセルの中身を取得していく
    //納期(日付は成型する)
    var sell1 = "A"+i;
    var value1 = sh.getRange(sell1).getValue();
    var value1 = Utilities.formatDate(value1, "JST","yyyy/MM/dd");
    //状況
    var sell2 = "B"+i;
    var value2 = sh.getRange(sell2).getValue();
    //依頼者
    var sell3 = "C"+i;
    var value3 = sh.getRange(sell3).getValue();
    //依頼タイトル
    var sell4 = "D"+i;
    var value4 = sh.getRange(sell4).getValue();
    //依頼内容
    var sell5 = "E"+i;
    var value5 = sh.getRange(sell5).getValue();
    
  //今日の日付と納期が同じで、なおかつ状況が完了でない場合メールを送る
    if(formatDate == value1 && value2 !== "完了"){
      GmailApp.sendEmail('●●●宛先メールアドレス●●●',
                         '【納期アラート】' + value4,
                         '■依頼者:' + value3 + '\n\n■依頼内容:'+ value5 + '\n\n■状況:'+ value2 + '\n■納期:'+ value1);

  //LINEを送る
      const url = 'https://api.line.me/v2/bot/message/push';
      const token = '●●●●●●'; //「個人タスク通知くん」のチャネルアクセストークン

      const message = '【納期アラート】' + value4 + '\n■依頼者:' + value3 + '\n\n■依頼内容:'+ value5 + '\n\n■状況:'+ value2 + '\n■納期:'+ value1;
      const payload = {
        to: '●●●●●●', //ユーザーID
        messages: [
          { type: 'text', text: message }
        ]
      };
      const params = {
        method: 'post',
        contentType: 'application/json',
        headers: {
          Authorization: 'Bearer ' + token
        },
        payload: JSON.stringify(payload)
      };
      UrlFetchApp.fetch(url, params);
      Logger.log("LINE送信しました");
      Logger.log("送信内容は、" + "\n・納期=" + value1 + "\n・状況=" + value2 + "\n・依頼者=" + value3 + "\n・依頼タイトル=" + value4 + "\n・依頼内容=" + value5 + "\nでした。" );
    }    
  }
 }

function setTrigger(){
  delTrigger();
  var setTime = new Date();
  setTime.setHours(7);
  setTime.setMinutes(10);
  Logger.log("7:10にLINE送信を実行するように設定しました");
  ScriptApp.newTrigger('mail').timeBased().at(setTime).create();
}

function delTrigger() {
    var triggers = ScriptApp.getProjectTriggers();
    for(var i=0; i < triggers.length; i++) {
        if (triggers[i].getHandlerFunction() == "mail") {
            ScriptApp.deleteTrigger(triggers[i]);
        }
    }
}

スクリプトの書き方は、以下参考です。

GASを使ってLINEでプッシュメッセージを送るスクリプト魚拓

LINE送信のタイミングですが、トリガーの設定によって、毎日朝に送信されるようにしています。

これによって、リマインダースクリプトやアラートスクリプトのメール送信を、LINE送信に変更することによって、業務上のリマインダーやアラートをLINEへ送ることができるようになります。

LINEアプリの画面は、以下のような感じですね。

「Google Apps Script」から「チャネル」を通じてLINE通知

メールを常時確認する環境でなくても、スマホがある環境であれば、作業漏れ・作業効率化対策の1つになるかと思います。参考になれば幸いです。