Google Apps ScriptでGmailからデータを取得して仕事を楽にした
Pythonをやり始めたはずなのに、GASを触っています。
概要:希望者のメルアドリストを作る
ある新商品があって、お客様にお届けするタイミングで、希望者に使い方メールを送ってよりよく活用してもらおう。
という企画がある。ボカして書いているので「そもそも希望者だけでなく全員に送れば」とかその手の指摘はおいておきますぞ。
プログラマに頼んでシステム化するほどではないのですが、人間がやるとめんどくさい。
状況はこんな感じ。
通常の処理フロー
- お客さんのリクエストメールをチェックし、希望の有無を目視確認
- 希望者がいれば、お客様名をシステムで検索し、ID番号をコピーし、希望者リストのエクセルにコピー
- 2で作った希望者リストのID表を元にし、別部署の処理済リストを確認。商品の送付日をチェックし、お客様ID別に送付開始日をチェック
- 送付開始日ごとに「●月●日に送るメアドリスト」みたいなのを作り、メール送信ツールに入れる
たまり続ける希望者リストには、お客さんと連絡がつかずそのままになるものもある。
でも、ある日突然、連絡がついて送信がスタートするかもしれない。つまり、毎日リストを目視でチェックし続けないといけない。地獄のような仕事である。
唯一の救いはメール
複数の社内ツールを使いながら処理するのですが、それらのデータを連動させるシステムを作るのは大変。お試し企画なので、時間も手間ももったいない。
唯一の救いは、各システムの処理時にメールをかませていること。(イケてる会社たちが使っている slack なんてものは誰も使っていない。)
ということで、Gmailからデータをぶっこ抜いてスプレッドシートに情報をまとめられるようにした。
GASでできるようにしたことのビフォーアフター
BEFORE:
お客さんからのリクエストメールをチェックし、希望の有無を目視確認
AFTER:
GASが定期的にリクエストメールをチェックし、希望の有無をGASで抜き出しスプレッドシートの「希望の有無」欄に転記
BEFORE:
希望者がいれば、お客様名をシステムで検索し、ID番号をコピーし、希望者リストのエクセルにコピー。2で作った希望者リストのID表を元にし、別部署の処理済リストを確認。商品の送付日をチェックし、お客様ID別に送付開始日をチェック
AFTER:
別部署が処理完了時に社内システムでメールで「処理済みです」的なメールを流していることに目をつけ、自分にも流してもらうことに。
このメールにお客さんへの商品到着日、メールアドレスが記載されていた。GASでそこからデータを取得。
これも定期的に実行するようにした。
以上。
てな具合です。これで作業が超楽ちんになった。
感想:正規表現とreplaceに迷った
正規表現の理解が難しかったけどその理解は進んだな、と。ただ使いこなしは全然。むずかしいけど超絶便利であることはよくわかった。
あと、replaceの処理が最初の1つしか変わらず「なぜ全部変わらないんだ!」と悶絶していた。これはすぐ忘れそうだけど。
そんなわけでメールからの情報取得で楽になりそうな作業は軒並みGASで自動化しています。
これは良い!!
ここでJavaScriptに興味を持ちまして、今はGoogleの拡張機能を作ってみたいな、なんて思い始めています。