🎸

【n8n×Gemini】経理の悲鳴をゼロに。電帳法対応「PDF請求書の自動リネーム&保存ボット」の作り方

に公開

はじめに

電子帳簿保存法(電帳法)の検索要件を満たすために、取引先からメールで送られてくるPDF請求書をいちいち開き、「日付・取引先名・金額」を確認してファイル名を変更する……。
「20260315_株式会社〇〇_150000.pdf」

この終わりの見えない手作業のリネームが、経理担当者の膨大な時間を奪い、現場の悲鳴に繋がっていませんか?

今回は、この「誰もやりたくない退屈な作業」を、n8nと生成AI(Gemini 2.5 Flashのマルチモーダル機能)を使って完全自動化するワークフローの作り方をご紹介します。

💡 このツールでできること

取引先から「請求書送付の件」といったメール(PDF添付)を受信すると、バックグラウンドで以下の処理が全自動で走ります。

  • AIがPDFを「目視」で読み取り: Geminiが請求書PDFから「発行日・会社名・請求金額」を正確に抽出。

  • 電帳法フォーマットに自動リネーム: 抽出データを元に、法要件を満たすファイル名(例:20260315_株式会社〇〇_150000.pdf)を自動生成。

  • Googleドライブの所定フォルダへ保存

  • Slackで経理チームへ完了通知

人間はSlackに流れてくる「処理完了しました!」という通知を見るだけ。PDFを開く必要すらありません。

🛠️ ワークフローの全体像と「LLMの気まぐれ」対策

全体のノード構成は非常にシンプルです。

Gmail TriggerGemini (PDF解析)Code (ファイル名生成)Google DriveSlack

⚠️ 実践Tips:Geminiが勝手に「```json」をつける問題の回避策

開発時にもっとも苦労したのが、Geminiからのデータ受け取り(パース)です。
プロンプトで「必ずJSON形式のみで出力してください。Markdownの装飾は不要です」と強く指示しても、LLMの気まぐれで出力の前後に ````json` と ````` のバッククォート装飾が混入し、後続のCodeノードでJSONパースエラーを起こすことが多々ありました。

そこで、Codeノード内に 「出力されたテキストから、最初の { と最後の } の中身だけを強制的に切り抜いてJSON化する」 という安全装置(スクリプト)を挟みました。

この「泥臭い防波堤」を1つ用意するだけで、本番運用における自動化パイプラインの安定性が劇的に向上します。

🤖 Geminiへのプロンプト設定

Geminiノードには、以下のシステムプロンプトを設定しています。
マルチモーダル対応のモデル(今回は gemini-2.5-flash を使用)であれば、バラバラなフォーマットの請求書からでも驚くほど正確に数値を拾ってくれます。

あなたは優秀な経理アシスタントです。
添付された請求書のPDFを読み取り、以下の3つの情報を抽出して、必ずJSON形式のみで出力してください。

{
  "date": "YYYYMMDD",
  "company": "取引先企業名",
  "amount": "金額の数字のみ"
}

🎁 おわりに(JSONテンプレート配布)

「法改正への対応」という後ろ向きな作業こそ、真っ先にAIで自動化し、人間はより付加価値の高い業務に集中すべきです。

今回作成した「電帳法対応:PDF請求書リネーム&自動保存ボット」のワークフロー(JSON)は、以下のGitHubリポジトリで公開しています。
https://github.com/alternativescom/n8n-automation-workflows/blob/main/35-invoice-pdf-renamer
ご自身の環境にインポートして、ぜひ業務効率化に役立ててください!

https://alternativecomputers.org/lp

Discussion