税理士事務所の所長あてに来るメールを1ヶ月数えたら2,874通だった——Claudeで仕分けたら月130円だった話
東京で税理士事務所を15年運営しています。スタッフ数名の小さな事務所です。
「メールが多い」。昔はすべてのメールを既読にする作業を自分で行っていましたが、いつの頃からか必要のありそうなメールだけを開くようになっていました。でも「多い」というのは感覚の話で、実際に何通なのかは数えたことがありませんでした。
そこで、Google Apps Script(GAS)を使って、1ヶ月分の受信メールを自動カウントしてみることにしました。
結果は2,874通。1日平均96通、送信元は208ドメインでした。
メールの半分以上は「読まなくていいメール」だった
2,874通を送信元ドメインごとに15のカテゴリに分類してみると、はっきりとした傾向が見えました。
全体の52.9%がノイズ——通知メール、メルマガ、広告など、自動配信されてくるものです。1日に約50通は、ほぼ読まなくても業務に支障がないメールということになります。もともと必要なメールだけを開くようになっていたので、わかっていたことではありますが、実際に数字にするとやはり多いです。
内訳で驚いたのは、士業向けの営業メルマガ・セミナー案内が月400通(全体の14%)もあったこと。税務署やe-Tax、eLTAXなどの役所関連メール(10%)よりも多いのです。税理士業界向けのマーケティングがどれだけ活発かが、数字で可視化されました。
顧問先メールは意外と少ない
「顧客対応で1日が終わる」という感覚は、多くの士業の方に共感いただけると思います。
でも実際に数えてみると、顧問先企業からのメールは月287通、全体のわずか10%でした。
ただ、1通あたりのメールを返信するには相当の時間を要しますので、まずは必要なメールを素早く探し出し、1秒でも早く返信や対応に取り掛かる必要があると実感しました。
自分のアドレスが受信メールの最多ドメインだった
ドメイン別ランキングのトップは、他でもない自事務所のドメインでした。596通、全体の20.7%です。
これはGmailの仕様によるもので、自分やスタッフがスレッド内で返信したメールも受信メールとしてカウントされます。「受信メール数」と「処理すべきメール数」はまったくの別物です。
Gmailのフィルタだけでは限界がある
受信メールの構造がわかったところで、次にやりたくなるのは「読まなくていいメールと必ず読んで対応しなければならないメールを自動で振り分ける」ことです。
Gmailのフィルタを使えば、ドメイン単位で自動ラベル付け・アーカイブはできます。実際にうちの事務所でもフィルタは100件以上設定していました。はじめのうちは手動でラベルを設定していましたが、手動ではキリがありませんでした。
ただ、同じドメインから届くメールでも「読むべきもの」と「通知だけのもの」が混在するケースが少なくありません。たとえばe-Taxからのメールでも、申告受理の通知と単なるシステムメンテナンスのお知らせでは重要度がまったく違います。
件名や本文の内容まで見て判断しないと、精度が上がらない。そこで、生成AIに分類を任せることにしました。
生成AIでメールを3段階に自動分類する
まずGmailフィルタを使って、機械的に判定の必要なメールを絞り込みます。絞り込んだ後に残るのが月に約600通です。この600通をGASで取得し、Anthropic社のClaude API(Haikuモデル)に件名・送信者・本文の冒頭を送って、「要対応」「目を通す」「対応不要」の3段階に自動分類しています。
「要対応」と判定されたメールだけがSlackに通知される仕組みです。1日あたり約20〜30回のAPI呼び出しで済んでいます。
「月6円」のはずが、実際は月130円だった
生成AIを利用されている方なら月額固定の料金である程度利用できるのではないかと考える方もいるかもしれません。しかしAPIを利用した生成AIの利用は従量課金となっていて、トークンという単位で計算され、課金されます。このためあらかじめ使用料を見積もる必要があります。
この仕組みの設計にもClaude(生成AI)を使ったのですが、その際に「月6円程度で運用できます」と試算が出ていました。
ところが、3週間ほど運用して実際の請求額を確認したところ、月額換算で約130円。見積もりの20倍以上です。
原因を調べてみると、2つのことがわかりました。
1つ目は、AIモデルの世代交代による単価変更です。
当初の試算はClaude 3 Haikuの料金(入力100万トークンあたり0.25ドル)で計算していたようですが、実際にコードに組み込んだのはその後継モデルであるClaude 3.5 Haiku(入力100万トークンあたり1ドル)でした。入力・出力ともに単価が約4倍になっています。新しいモデルのほうが性能は高いのですが、コストも上がっていたわけです。
2つ目は、プロンプト(AIへの指示文)が想定より大きかったことです。
設計時は「メール1通あたり300トークン程度」と見積もっていましたが、実際にはメール分類の判断基準を丁寧に書いたシステムプロンプトだけで約750トークンあり、メール本文と合わせると1回あたり800〜900トークンを消費していました。
それでも月130円は安い——さらに下げる余地もある
月130円という金額だけ見れば、当初の見積もりからは大きく増えています。ただ、冷静に考えてみると——。
人が1通10秒でメールの要否を判断するとして、月600通なら100分。月130円で100分の判断作業を自動化していると考えれば、時給換算で78円です。十分すぎるほど安い。
さらに、まだ実装はできていませんが、もう1段階最適化の余地もあります。
Claude APIには「プロンプトキャッシュ」という機能があります。毎回同じ内容を送っているシステムプロンプト(分類ルールの説明部分)をキャッシュとして保持し、2回目以降はキャッシュから読み込むことで、その部分の入力コストを約90%削減できる仕組みです。
現在のシステムプロンプトは約750トークンで、キャッシュが適用される最低ラインをわずかに下回っています。分類ルールにFew-shot(実例)を数パターン追加してプロンプトを拡充すれば、キャッシュの恩恵を受けられるようになります。キャッシュ適用後は、月額50円以下まで下がる見込みです。
分類精度の向上とコスト削減が同時に実現できるので、これは近いうちに対応するつもりです。
数えてみて、仕分けてみて変わったこと
まず受信トレイを開いたときの「うんざり感」が減りました。
さらにSlackに「要対応」だけが届くようになったことで、顧問先メールへの反応が早くなりました。以前は受信トレイの中から探す必要がありましたが、今はほとんどSlackを見るだけで済みます。
メールの処理で本当に大事なのは、数多くのメールの中から本当に必要なわずかなメールを素早く見つけ出すことです。この仕組みでは、フィルタに登録済みの顧客メールは機械的に拾うので、見逃す心配がありません。それ以外のメールもAIが「要対応」「目を通す」に分類してくれるので、その2つだけ確認することで重要なメールを見落とすリスクを限りなく減らすことができました。
まとめ
メールの見逃しが怖いけど、それでも全部確認するのは難しいという人はAIに手伝ってもらうことをお勧めします。
GASによるフィルターを利用した振り分けは無料ですし、AIによる自動仕分けは、月130円——最適化すれば50円以下——で実用的に動きます。専門的なプログラミングの知識がなくても、GASとAPIの組み合わせで十分構築できました。
同じ悩みを持つ士業の方や中小企業の方の参考になればうれしいです。
鎌原輝明税理士事務所では、税務申告や経理のご相談はもちろん、業務効率化のためのツール選びやIT活用のアイデアもお伝えしています。 お問い合わせは kamaharatax.com から。
