前回の記事ではGoogle Workspace CLIツール「gws」の基本操作を紹介しました。今回はいよいよ、サービス間の連携を実際に組んでみます。
【今回やったこと】
・Gmailの請求メール → スプレッドシートに自動転記
・メール本文からAIが金額・日付・取引先を自動抽出
・ドメイン更新メール → カレンダーに期限を自動登録
・スプレッドシートのデータ → レポートメールを自動送信
・重複防止(同じメールを2回処理しない)
・エラー発生時に通知
【Gmail → スプレッドシート自動転記】
請求メールをスプレッドシートに自動で記録する仕組みです。
まず、Gmailで対象メールにラベル(例: invoice)を付けておきます。gws でラベル付きメールを取得し、本文を読み取り、スプレッドシートに行を追加します。
取得 → 読み取り → 追記、この3ステップをプログラムでつなぐだけです。
【AIによるメール内容の自動抽出】
ここがGASとの最大の差別化ポイントです。
請求メールのフォーマットは送信元ごとにバラバラです。正規表現でひとつずつ対応していたらキリがありません。
そこでAI(LLM)にメール本文を渡して「日付、金額、取引先、説明を抽出して」と指示するだけで、フォーマットに関係なく正確にデータを取り出せます。
実際にAnthropicの請求メール(英語、Stripe経由)を処理した結果がこちらです。
・日付: 2026-03-14
・取引先: Anthropic, PBC
・レシート番号: 2XXX-2XXX-2XXX
・金額: $100.00
・内容: Max plan - 5x
年をまたぐ期間表記(Dec 31, 2025 – Jan 31, 2026)も正しく解釈しました。正規表現では対応が難しいケースです。
GASからAIを呼び出すのは非常に手間がかかりますが、gws + サーバーサイドのプログラムなら数行で実現できます。
【Gmail → カレンダー自動登録】
ドメイン更新の案内メールから、期限日と請求予定日を読み取ってカレンダーに自動登録しました。
さくらインターネットからのドメイン更新メール(日本語)を処理した結果です。
・ドメイン: example.jp
・有効期限: 2026-05-31
・請求予定日: 2026-04-10
この情報をもとに、カレンダーに2件の予定を自動作成しました。
・[ドメイン更新] example.jp 有効期限 → 5月31日
・[ドメイン請求] example.jp 請求案内 → 4月10日
メールを見落としても、カレンダーに期限が入っていれば安心です。
【スプレッドシート → レポートメール自動送信】
スプレッドシートに記録した支出データを読み取り、レポートメールを自動生成・送信しました。
月次支出レポートの例です。
・Anthropic: Max Plan 5x — $100 (支払済み)
・さくらインターネット: ドメイン example.jp — ¥3,982 (保留)
・Vultr: VPS Tokyo — ¥1,500 (支払済み)
・合計: 3件(支払済み: 2件)
テンプレートを用意しておけば、毎月自動でレポートメールが届く仕組みが作れます。
【重複防止】
同じメールを2回処理して二重登録されては困ります。
スプレッドシートにメールのID(message ID)を一緒に記録しておき、次回処理時に「このIDは処理済みか?」をチェックします。処理済みならスキップ。
2回実行しても安全、という安心感は運用において非常に重要です。
【エラー時の通知】
認証切れやAPI エラーが起きた場合は、即座に通知が飛ぶようにしています。
通知先はSlack、Discord、LINE、メールなど自由に選べます。GASのように「いつの間にか止まっていた」ということがありません。
実際のエラー通知の例です。
・Service: Sheets
・Operation: read
・Status: 404
・Error: Requested entity was not found.
何がどこで失敗したか一目瞭然です。
【定期実行】
これらの処理はサーバー上で自動的に定期実行されます。15分ごと、1時間ごと、毎日、毎月初など、用途に応じて自由に設定可能です。
GASのトリガーのような6分制限や1時間最小単位の縛りはありません。
【まとめ】
今回テストした連携です。
・Gmail → Sheets: 請求メールの自動転記(AI抽出)
・Gmail → Calendar: 期限メールからカレンダー自動登録
・Sheets → Gmail: レポートメール自動送信
・重複防止: message IDによるチェック
・エラー通知: 失敗時に即座にアラート
・定期実行: 分単位でスケジュール可能
GASでは実現が難しい、あるいは非常に手間がかかる処理が、gws を使えば自然に組めることが確認できました。
特にAIによるメール内容の自動抽出は、フォーマットが異なるメールを扱う業務では大きな武器になります。
次回は、これらの仕組みを実際の業務で1週間運用してみた結果を報告する予定です。