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

今回は、ETCカードや高速道路に関する情報ではなく、「業務の改善・効率化」のために弊社で行っている事例をご紹介させていただければと思います。

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

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

利用するのは、「Gmail」と「Google Apps Script(GAS)」という2つのサービスです。

Gmailは、Googleが提供しているメールサービスで、使った経験のある方が多いのではないでしょうか。

もう1つのGoogle Apps Scriptは、あまり知られていないかもしれませんが、Googleサービスに標準で実装されているアプリケーション開発プラットフォームです。通称、GAS(ガス)と呼ばれています。

Googleは、GmailやGoogleカレンダー、Googleスプレッドシート、Googleドキュメントなど便利なサービスを提供していますが、Google Apps Scriptもその1つです。

Googleは、これらのサービスを、法人向けに基本的に有償で「Google Workspace」という名称で提供し、個人向けに無償で「個人向け Google サービス」として提供しています。

今回は、「業務の改善・効率化」として、「Gmail」と「Google Apps Script(GAS)」 の連携をご紹介したいと思います。

Google Apps Script(GAS)」 には以下の特徴があります。

 ・作業の自動化
 ・定期実行
 ・Goolgeサービスだけでなく外部サービスと連携可能

この 「Google Apps Script(GAS)」 を使った「業務の改善・効率化」の活用例として、毎日特定の時間までに行う必要があるタスクのリマインダー通知をご紹介します。

内容としては非常にシンプルなもので、「自動的に特定時間に特定内容のメールを担当者またはメーリングリストへメール送信する」というものです。

やり方ですが、以下の「Google Apps Script(GAS)」へアクセスします。

https://script.google.com/home

Google Apps Script(GAS)

そして、「新しいプロジェクト」をクリックし、プロジェクトの名前を決め、「コード.gs」というところにスクリプト(プログラム)を記述していくことになります。

Google Apps Script(GAS)

スクリプトは以下です。
 「●●●宛先メールアドレス●●●」
 「●●●メールタイトル●●●」
 「●●●メール本文●●●」
に必要な内容を入れます。

function mail() {
  var today = new Date();
  var array = ['日','月','火','水','木', '金', '土'] 
  var to = '●●●宛先メールアドレス●●●';
  var title ="●●●メールタイトル●●● - " + (today.getMonth()+1) + "月" + today.getDate() + "日" + "("+ array[today.getDay()] + ")";
  var body = "●●●メール本文●●●";
  var aliases = GmailApp.getAliases();
  GmailApp.sendEmail(to, title, body, {'from': aliases[0], 'name': '','cc': '','bcc': ''});
  Logger.log("mail送信を実行しました");
}
function isBusinessDay(date){
  
  if (date.getDay() == 0 || date.getDay() == 6) {
    Logger.log("本日は、土日祝です");
    return false;
  }
  const calJa = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');
  if(calJa.getEventsForDay(date).length > 0){
    Logger.log("本日は、土日祝です");
    return false;
  }
  Logger.log("本日は、営業日です");
  return true;
}

function setTrigger(){
  delTrigger();
  var setTime = new Date();
  setTime.setHours(16);
  setTime.setMinutes(05);
  Logger.log("営業日であれば、16:05にmailを実行するように設定しました");
  if (isBusinessDay(setTime)){
    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]);
        }
    }
}

スクリプト(プログラム)の記載方法は、以下参考です。

始業・終業時に決まりきったメールをGmailとGoogle Apps Script(GAS)で毎日自動的に送る方法魚拓

弊社では、1つの例として、営業日は毎日17時までにデータを送る必要があるタスクがあるので、16時05分に自動メールをメーリングリストへ送信し、担当者はそれに返信して作業報告する形でタスク漏れを防いでいます。

ここで作成したスクリプト(プログラム)を定期実行するには、「Google Apps Script(GAS)」の「トリガー」という仕組みを利用します。

トリガーは、ピンポイントの時間にスクリプトを実行するというのが難しいので、14~15時に、16:05にメール送信するスクリプトのトリガーを設定、実際に16:05になれば、メール送信するスクリプトが実行されるという二段階の処理をしています。

Google Apps Script(GAS)

送信元のメールアドレスは、「Google Apps Script(GAS)」にログインしているGoogleアカウントになります。

あと注意する点としては、タイムゾーンの設定ですね。

デフォルトでは、「”America/New_York”」になっていることがあるので、「”Asia/Tokyo”」にすることを忘れないでください。

タイムゾーンの設定方法は、以下が参考になります。

Google Apps Script タイムゾーンの設定

リマインダーすべきタスクが複数あれば、複数のスクリプトを作成すればいいので、メールを常時確認する環境であれば、作業漏れ対策の1つになるかと思います。参考になれば幸いです。