初老のパイソナー

40才を手前にはじめてのプログラミングでPythonはじめました

Google Apps ScriptでGmailからデータを取得して仕事を楽にした

Pythonをやり始めたはずなのに、GASを触っています。

概要:希望者のメルアドリストを作る

ある新商品があって、お客様にお届けするタイミングで、希望者に使い方メールを送ってよりよく活用してもらおう。

という企画がある。ボカして書いているので「そもそも希望者だけでなく全員に送れば」とかその手の指摘はおいておきますぞ。

プログラマに頼んでシステム化するほどではないのですが、人間がやるとめんどくさい。
状況はこんな感じ。

通常の処理フロー

  1. お客さんのリクエストメールをチェックし、希望の有無を目視確認
  2. 希望者がいれば、お客様名をシステムで検索し、ID番号をコピーし、希望者リストのエクセルにコピー
  3. 2で作った希望者リストのID表を元にし、別部署の処理済リストを確認。商品の送付日をチェックし、お客様ID別に送付開始日をチェック
  4. 送付開始日ごとに「●月●日に送るメアドリスト」みたいなのを作り、メール送信ツールに入れる

たまり続ける希望者リストには、お客さんと連絡がつかずそのままになるものもある。
でも、ある日突然、連絡がついて送信がスタートするかもしれない。つまり、毎日リストを目視でチェックし続けないといけない。地獄のような仕事である。

唯一の救いはメール

複数の社内ツールを使いながら処理するのですが、それらのデータを連動させるシステムを作るのは大変。お試し企画なので、時間も手間ももったいない。

唯一の救いは、各システムの処理時にメールをかませていること。(イケてる会社たちが使っている slack なんてものは誰も使っていない。)
ということで、Gmailからデータをぶっこ抜いてスプレッドシートに情報をまとめられるようにした。

GASでできるようにしたことのビフォーアフター

BEFORE:
お客さんからのリクエストメールをチェックし、希望の有無を目視確認

AFTER:
GASが定期的にリクエストメールをチェックし、希望の有無をGASで抜き出しスプレッドシートの「希望の有無」欄に転記

BEFORE:
希望者がいれば、お客様名をシステムで検索し、ID番号をコピーし、希望者リストのエクセルにコピー。2で作った希望者リストのID表を元にし、別部署の処理済リストを確認。商品の送付日をチェックし、お客様ID別に送付開始日をチェック

AFTER:
別部署が処理完了時に社内システムでメールで「処理済みです」的なメールを流していることに目をつけ、自分にも流してもらうことに。
このメールにお客さんへの商品到着日、メールアドレスが記載されていた。GASでそこからデータを取得。
これも定期的に実行するようにした。

以上。

  1. Gmail上でラベルで分類
  2. GASで該当のラベル内で未読のメールを定期的にチェックさせる
  3. GASで内容を確認して、必要な情報だけを取得しスプレッドシートに転記

てな具合です。これで作業が超楽ちんになった。

感想:正規表現とreplaceに迷った

正規表現の理解が難しかったけどその理解は進んだな、と。ただ使いこなしは全然。むずかしいけど超絶便利であることはよくわかった。
あと、replaceの処理が最初の1つしか変わらず「なぜ全部変わらないんだ!」と悶絶していた。これはすぐ忘れそうだけど。

そんなわけでメールからの情報取得で楽になりそうな作業は軒並みGASで自動化しています。
これは良い!!

ここでJavaScriptに興味を持ちまして、今はGoogle拡張機能を作ってみたいな、なんて思い始めています。