かずきち。の日記

サーバサイドエンジニアのつぶやき

【コードあり】Gmailのメール問い合わせ分析をラベル×GoogleAppsScriptを使って完全に自動化してしまおう!【脱社畜】

会社でメールの分析業務を頼まれる?

会社に勤めていたりすると…
今週の問い合わせメールの分析業務を頼まれたことありませんか?
エクセルを使って人手でやればもちろんできます。
ですが、メールの分析なんか手作業で毎回やっていたら、かったるすぎます
今回はそんな問い合わせ内容を自動で可視化して、コピペでパワポに毎週資料作成なんかしなくていい方法を紹介します。

まずはGmailラベルを設定しよう

f:id:kazukichi_0914:20210217164056p:plain

まずGmailを初期設定のまま使っているという情弱の方はいないですよね?
もうそれだけで、自分が探したいメールにたどり着くのに一苦労です。

f:id:kazukichi_0914:20210217164226p:plain

Gmailにはラベルを付与することができます。
これは毎日たくさん来るメールを分類して、自動的にラベルを付与して整理しようとするGmailの正式機能です。

https://storage.googleapis.com/support-kms-prod/PMq9iYvKiTzf7XYcsMWpn3mtCm0TaIDwV4b7

support.google.com
引用:
https://support.google.com/mail/answer/118708?co=GENIE.Platform%3DDesktop&hl=ja

f:id:kazukichi_0914:20210217164702p:plain
引用:
https://www.g-workspace.jp/googleworkspace-reference/gmail/label/

まずこの機能を使っていないGmail使いは完全にモグリです。
こんな形で自分が探したいメールを分類ができるわけです。
なんだか探したいメールにすぐ辿り着けそうだとは思いませんか?
この機能を使えば、メールにラベル付けができて、Gmailを使いこなすことができるんです。

本題はどんなメールがどれくらいの期間にどれくらい届いているか?が知りたいのです


function getUserLabelsSample() {
  //スプレッドシートのkeyを指定して取得
  var spreadsheet = SpreadsheetApp.openById(自分のスプレッドシートID');

  // ラベルのすべての名前を記録します
  var labels = GmailApp.getUserLabels();
    
  //行追加
  spreadsheet.insertColumnsBefore(2, 1);

  //本日の日付けを(b,1)に転記
    // 現在日時を取得
    var today = new Date();
    SpreadsheetApp.getActiveSheet().getRange(1,2).setValue(today);  
  
  for (var i = 1; i < labels.length; i++) {
    
    Logger.log("label: " + labels[i].getName());
    var label = GmailApp.getUserLabelByName(labels[i].getName());
    var mailCount = label.getUnreadCount();
    var mailBody = '件数:' + mailCount;
    Logger.log(mailBody);
    //スプレッドに書き込む

    //ラベル名
    SpreadsheetApp.getActiveSheet().getRange(i+1,1).setValue(labels[i].getName());    
    //ラベル数
    SpreadsheetApp.getActiveSheet().getRange(i+1,2).setValue(mailCount); 
    
  }  
}

このコードを実行すれば、スプレッドシートに毎日受信しているメールの分類を自動集計して、グラフ化してくれます

こんなグラフが毎週更新されるわけです。
あとは「寝て待て」です。
「今週の問い合わせ状況は?」と聞かれたら、このスプレッドシートを見れば自動で更新されています。
誰が更新してくれているかって?
もちろんGoogleです。
コードさえ書いてしまえば、あとはGoogleが自動でお仕事をしてくれます。

GASを自動実行にしよう

tonari-it.com
引用:
https://tonari-it.com/gas-trigger-set/

プログラミングの初歩の初歩は本当につまらないんです。
モニタに「こんにちわ」と表示してみましょう。
パソコンで1〜10の足し算をしてみましょう。
とかつまらなすぎることを学校で習います。
大抵の人がここで挫折・もしくはつまらなくてやめます。
でも自動車の自動運転もプログラミング言語で書かれています。
問題はそのコードが長いか短いか?の問題だけです。
使っている道具はパソコン1台あれば、難しいことができます。
一般人が思うのは「どうせすごい人は良いパソコンを使ってるからできるんでしょ?」って思ってしまいます。
でも凄腕プログラマも、パソコン初心者も使っているパソコンは同じです。
大事な着眼点は「この作業、毎日人手でやる意味ある?」って思うことです。
小学校の頃、自由研究で朝顔の成長日記とかやったことありませんか?
でも今の時代だったら、24時間に1回シャッターボタンを押すカメラを朝顔の前に設置して夏休みを過ごせばおしまいですよね?
で、夏休みの最終日にカメラを撤収して、印刷してしまえば朝顔の観察日記なんてすぐ終わります。
さぁ今日からプログラミングを使って日常をハックしてみましょう。