面倒な経費精算をAIで自動化!Google Driveとn8nで作るレシート処理ワークフロー

※当ページのリンクには広告が含まれています。

はじめに

皆さん、こんにちは!毎月の経費精算、レシートを見ながら一つ一つ手入力するのって、時間もかかるし面倒ですよね。「この作業、誰か代わりにやってくれないかな…」そう思ったことはありませんか?

実は、そんな願いを叶える方法があるんです!
今回は、Google Driveに領収書の写真をアップロードするだけで、AIが内容を自動で読み取り、Googleスプレッドシートにまとめてくれる、そんな魔法のような「レシート処理ワークフロー」を、ノーコード自動化ツール「n8n(エヌエイトエヌ)」を使って作る方法をステップバイステップでご紹介します。

このワークフローでできること

このn8nワークフローを導入すると、以下のような経費精算の自動化が実現できます。

  • レシート画像の自動取り込み: Google Driveの指定フォルダにレシート画像をアップロードするだけで処理が開始されます。
  • AIによる情報抽出: アップロードされたレシートから、日付、合計金額、会社名、勘定科目、消費税、登録番号(インボイス番号)といった主要な情報をAIが自動で読み取ります。
  • スプレッドシートへの自動記録: 抽出された情報が、指定したGoogleスプレッドシートに自動的に新しい行として追加されます。
  • 元画像へのリンク保存: スプレッドシートには、確認用に元のレシート画像へのリンクも一緒に記録されるため、後からの確認も簡単です。

これにより、あなたは…

  • 面倒な手入力作業から解放されます!
  • 入力ミスや記入漏れのリスクを大幅に減らせます!
  • いつでも最新の経費データをスプレッドシートで確認できます!
  • 経費精算にかかっていた時間を大幅に削減し、より重要な業務に集中できます!

事前準備

このワークフローを作成・実行するために、事前に以下のものをご準備ください。

  1. n8nアカウント:
  2. Googleアカウント:
    • Google DriveとGoogleスプレッドシートを使用します。
  3. OpenAI APIキー:
    • レシートの画像解析にOpenAIのAIモデル(今回はGPT-4o-mini)を使用します。APIキーが必要です。
    • OpenAIプラットフォーム: https://platform.openai.com/ (APIキーの取得方法については、OpenAIのドキュメントをご確認ください)

準備ができたら、さっそくワークフローを作っていきましょう!

ワークフロー作り方:ステップ・バイ・ステップ解説

n8nの編集画面を開き、以下のノードを順番に配置・設定していきます。

ステップ1: Google Driveトリガー – レシートのアップロードを検知

まず、Google Driveの特定フォルダに新しいファイルがアップロードされたことを検知するトリガーを設定します。

  1. ノード追加: Google Drive Trigger ノードを追加します。
  2. 認証設定: お手持ちのGoogleアカウントでn8nを認証します。
  3. イベント設定:
    • Poll Times > Mode Type: Every Minute を選択します。
    • Trigger On: Changes Involving a Specific Folder を選択します。
    • Folder: レシート画像をアップロードするGoogle Drive内のご自身で用意した指定のフォルダーIDを記述します。
    • Watch For: File Updated (ファイルが作成または更新された時) を選択します。
    • Options > File Type: all または必要に応じて画像ファイル形式 (Image) を選択します。

これで、指定したフォルダにレシートがアップロードされると、ワークフローが自動的にスタートします。

ステップ2: Google Drive – 画像ファイルのダウンロード

トリガーが検知したファイルをn8n内で扱えるようにダウンロードします。

  1. ノード追加: Google Drive ノードを追加します。
  2. 認証設定: ステップ1と同じGoogleアカウントで認証します。
  3. 設定:
    • Resource: File を選択します。
    • Operation: Download を選択します。
    • File ID: 前のノード(Google Drive Trigger)から渡されるファイルIDを指定します。Expressionエディタを開き、{{ $json.id }} のように入力します。

ステップ3: OpenAI – AIによる画像解析(レシート情報抽出)

ここが今回のキモ!ダウンロードしたレシート画像をOpenAIのAIモデルに渡し、必要な情報を抽出してもらいます。

  1. ノード追加: @n8n/n8n-nodes-langchain.openAi ノード(または類似のOpenAI画像解析ノード)を追加します。
  2. 認証設定: ご自身で用意したOpenAI APIキーを記述して認証します。
  3. 設定:
    • Resource: Image を選択します。
    • Operation: Analyze Image を選択します。
    • Model: gpt-4o-mini(または利用可能な他のモデル)を選択します。
    • Text Input (プロンプト): AIにどのような情報を抽出してほしいか、具体的な指示を出します。以下のような内容を記述します。 あなたは経費精算の専門アシスタントです。 提供されたレシートまたは領収書の画像/PDFから、以下の情報を日本語で抽出してください。 **日付**: YYYY/MM/DD形式。年が不明な場合は現在の年。 **合計金額**: 数値のみ。 **勘定科目**: 食費、交通費など適切なものを提案。 **会社名**: 会社名を抽出。 **登録番号**: Tから始まるインボイス番号。 **消費税**: 合計金額にかかる消費税。 出力はJSON形式で、以下のキーを使用してください。 { "日付": "抽出した日付", "勘定科目": "提案された勘定科目", "会社名": "抽出した会社名", "登録番号": "抽出したインボイス番号", "合計金額": "抽出した合計金額", "消費税": "抽出した消費税" } 情報が読み取れない項目や判断が難しい項目があった場合は、その値に「不明」と記述してください。
    • Input Type: Binary File(s) (前のGoogle Driveノードからバイナリデータが渡されるので、それを受け取れる形式)
    • Input Data Field Name: 前のノード(Google Drive Download)から渡される data (ファイルコンテンツ)を指定します。Expressionエディタで {{ $('画像取得').item.binary.data.data }} のように指定します。(ノード名を「画像取得」としている場合)
    • Simplefy OutPut:「 true 」を選択します。

ステップ4: OpenAI Chat Model (Langchain Agent用)

Langchain Agentノードが使用する言語モデルを指定します。

  1. ノード追加: @n8n/n8n-nodes-langchain.lmChatOpenAi ノードを追加。
  2. 認証設定: ステップ3と同じOpenAI APIキーで認証します。
  3. 設定:
    • Model: gpt-4o-mini を選択。

ステップ5: 領収書エージェント (Langchain Agent) – JSON整形

OpenAIからの出力には不要な改行が含まれることがあるため、これを整形します。

  1. ノード追加: @n8n/n8n-nodes-langchain.agent ノードを追加。
  2. LLM接続: 「OpenAI Chat Model」ノードをこのノードの Language Model 入力に接続します。
  3. 設定:
    • Prompt Type: Define below
    • Prompt (User Message): 前の「画像解析」ノードの出力を指定します。例: {{ $json.content }} または {{ $('画像解析').first().json.content }} (ノード名を「画像解析」としている場合)
    • Require Specific Output Format: チェックを入れます。
    • Options > System Message: 提供されたJSON形式のデータより、不要な改行を削除してJSON形式で出力してください。

ステップ6: データ整理 (Codeノード) – JSONパース

エージェントから出力された整形済みJSON文字列を、扱いやすいJSONオブジェクトに変換します。

  1. ノード追加: Code ノードを追加します。
  2. JS Code: 以下のJavaScriptコードを記述します。

    // 前の「領収書エージェント」ノードの出力を取得
    // ノード名は実際のワークフローに合わせてください。
    let invoice_details_str = $('領収書エージェント').first().json.output;
    return JSON.parse(invoice_details)
    注意: $('領収書エージェント') の部分は、実際の「領収書エージェント」ノードの名前に合わせてください。

ステップ7: リンクURL取得 (Setノード) – 元画像へのリンク作成

スプレッドシートに記録する際、元のレシート画像へのリンクも保存しておくと便利です。

  1. ノード追加: Set ノードを追加します。
  2. 設定:
    • Mode: JSON を選択。
    • JSON: 以下のJSONを記述します。webViewLink はステップ2の「画像取得」(Google Drive Download)ノードの出力から取得します。 { "リンクURL": "{{ $('画像取得').first().json.webViewLink }}" } 注意: $('画像取得') の部分は、実際の「画像取得」(Google Drive Download)ノードの名前に合わせてください。このノードはJSON内で「画像取得」という名前で参照されていますが、実際のワークフローでは「Google Drive」(Download操作)ノードに対応します。

ステップ8: 結合 (Mergeノード) – 全データをひとつに

ステップ6でパースしたレシート情報と、ステップ7で取得した画像リンクを一つのデータにまとめます。

  1. ノード追加: Merge ノードを追加します。
  2. 設定:
    • Mode: Combine を選択。
    • Combine By: Position を選択。
    • Number of Inputs: 2 を選択。
    • 入力接続:
      • Input 1: 「データ整理 (Code)」ノードの出力を接続します。
      • Input 2: 「リンクURL取得 (Set)」ノードの出力を接続します。

ステップ9: Google Sheets入力 – スプレッドシートへ記録

最後に、まとめられたデータをGoogleスプレッドシートに追記します。

  1. ノード追加: Google Sheets ノードを追加します。
  2. 認証設定: ステップ1と同じGoogleアカウントで認証します。
  3. 設定:
    • Operation: Append Row (追記) を選択します。
    • Document: データを記録したいGoogleスプレッドシートのご自身で用意した指定のドキュメントIDを記述します。
    • Sheet: 記録したいシート名(例: シート1GID=0 など)をご自身で用意した指定のシート名を記述します。
    • Mapping Column Mode:
      • Mapping Mode: Map Automatically を選択すると、前のノードからのデータキーが自動的に列名としてマッピングされます。
      • または、Schema で列名(日付, 勘定科目, 会社名, 合計金額, 消費税, 登録番号, リンクURL)を手動で設定し、各列に対応する値をExpressionで指定することも可能です。例えば、「日付」列には {{ $json.日付 }} を指定します。

ワークフローのアクティブ化とテスト

全ての設定が完了したら、ワークフローをアクティブ化し、正常に動作するか確認しましょう。

  1. Google Driveの指定フォルダに、レシートの画像(JPEG, PNGなど)やPDFをアップロードします。
  2. しばらく待つと(n8nのポーリング間隔や処理時間によります)、ワークフローが自動実行されます。
  3. 指定したGoogleスプレッドシートを開くと、AIが読み取ったレシート情報(日付、勘定科目、会社名、合計金額、消費税、登録番号)と、元画像へのリンクが新しい行に追加されているはずです!

もし「不明」と記録される項目が多い場合は、OpenAIのプロンプトを調整したり、レシートの撮影品質を上げる(明るい場所で、まっすぐ、はっきりと)などの工夫を試してみてください。

まとめ

今回は、n8n、Google Drive、OpenAIを使って、レシート処理を自動化するワークフローの作り方をご紹介しました。
この仕組みを使えば、面倒な手入力から解放され、経費精算業務が格段に楽になるはずです。

最初は設定が少し複雑に感じるかもしれませんが、一度作ってしまえば、あとはレシートをアップロードするだけ。日々の業務効率化に、ぜひこの「レシート処理自動化ワークフロー」を活用してみてくださいね!

AIエージェント導入を検討中の方!
まずは無料でご相談ください!

業務改善でAIを使用したい
・AIで業務効率を上げたい
・どのAIを導入すればいいかわからない
・技術的サポートが必要な方