はじめに
皆さん、こんにちは!毎月の経費精算、レシートを見ながら一つ一つ手入力するのって、時間もかかるし面倒ですよね。「この作業、誰か代わりにやってくれないかな…」そう思ったことはありませんか?
実は、そんな願いを叶える方法があるんです!
今回は、Google Driveに領収書の写真をアップロードするだけで、AIが内容を自動で読み取り、Googleスプレッドシートにまとめてくれる、そんな魔法のような「レシート処理ワークフロー」を、ノーコード自動化ツール「n8n(エヌエイトエヌ)」を使って作る方法をステップバイステップでご紹介します。

このワークフローでできること
このn8nワークフローを導入すると、以下のような経費精算の自動化が実現できます。
- レシート画像の自動取り込み: Google Driveの指定フォルダにレシート画像をアップロードするだけで処理が開始されます。
- AIによる情報抽出: アップロードされたレシートから、日付、合計金額、会社名、勘定科目、消費税、登録番号(インボイス番号)といった主要な情報をAIが自動で読み取ります。
- スプレッドシートへの自動記録: 抽出された情報が、指定したGoogleスプレッドシートに自動的に新しい行として追加されます。
- 元画像へのリンク保存: スプレッドシートには、確認用に元のレシート画像へのリンクも一緒に記録されるため、後からの確認も簡単です。
これにより、あなたは…
- 面倒な手入力作業から解放されます!
- 入力ミスや記入漏れのリスクを大幅に減らせます!
- いつでも最新の経費データをスプレッドシートで確認できます!
- 経費精算にかかっていた時間を大幅に削減し、より重要な業務に集中できます!
事前準備
このワークフローを作成・実行するために、事前に以下のものをご準備ください。
- n8nアカウント:
- Googleアカウント:
- Google DriveとGoogleスプレッドシートを使用します。
- OpenAI APIキー:
- レシートの画像解析にOpenAIのAIモデル(今回はGPT-4o-mini)を使用します。APIキーが必要です。
- OpenAIプラットフォーム: https://platform.openai.com/ (APIキーの取得方法については、OpenAIのドキュメントをご確認ください)
準備ができたら、さっそくワークフローを作っていきましょう!

ワークフロー作り方:ステップ・バイ・ステップ解説
n8nの編集画面を開き、以下のノードを順番に配置・設定していきます。

ステップ1: Google Driveトリガー – レシートのアップロードを検知
まず、Google Driveの特定フォルダに新しいファイルがアップロードされたことを検知するトリガーを設定します。
- ノード追加:
Google Drive Triggerノードを追加します。 - 認証設定: お手持ちのGoogleアカウントでn8nを認証します。
- イベント設定:
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内で扱えるようにダウンロードします。
- ノード追加:
Google Driveノードを追加します。 - 認証設定: ステップ1と同じGoogleアカウントで認証します。
- 設定:
Resource:Fileを選択します。Operation:Downloadを選択します。File ID: 前のノード(Google Drive Trigger)から渡されるファイルIDを指定します。Expressionエディタを開き、{{ $json.id }}のように入力します。

ステップ3: OpenAI – AIによる画像解析(レシート情報抽出)
ここが今回のキモ!ダウンロードしたレシート画像をOpenAIのAIモデルに渡し、必要な情報を抽出してもらいます。
- ノード追加:
@n8n/n8n-nodes-langchain.openAiノード(または類似のOpenAI画像解析ノード)を追加します。 - 認証設定: ご自身で用意したOpenAI APIキーを記述して認証します。
- 設定:
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ノードが使用する言語モデルを指定します。
- ノード追加:
@n8n/n8n-nodes-langchain.lmChatOpenAiノードを追加。 - 認証設定: ステップ3と同じOpenAI APIキーで認証します。
- 設定:
Model:gpt-4o-miniを選択。

ステップ5: 領収書エージェント (Langchain Agent) – JSON整形
OpenAIからの出力には不要な改行が含まれることがあるため、これを整形します。
- ノード追加:
@n8n/n8n-nodes-langchain.agentノードを追加。 - LLM接続: 「OpenAI Chat Model」ノードをこのノードの
Language Model入力に接続します。 - 設定:
Prompt Type:Define belowPrompt (User Message): 前の「画像解析」ノードの出力を指定します。例:{{ $json.content }}または{{ $('画像解析').first().json.content }}(ノード名を「画像解析」としている場合)Require Specific Output Format: チェックを入れます。Options>System Message:提供されたJSON形式のデータより、不要な改行を削除してJSON形式で出力してください。

ステップ6: データ整理 (Codeノード) – JSONパース
エージェントから出力された整形済みJSON文字列を、扱いやすいJSONオブジェクトに変換します。
- ノード追加:
Codeノードを追加します。 - JS Code: 以下のJavaScriptコードを記述します。
注意:
// 前の「領収書エージェント」ノードの出力を取得
// ノード名は実際のワークフローに合わせてください。
let invoice_details_str = $('領収書エージェント').first().json.output;
return JSON.parse(invoice_details)$('領収書エージェント')の部分は、実際の「領収書エージェント」ノードの名前に合わせてください。

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

ステップ8: 結合 (Mergeノード) – 全データをひとつに
ステップ6でパースしたレシート情報と、ステップ7で取得した画像リンクを一つのデータにまとめます。
- ノード追加:
Mergeノードを追加します。 - 設定:
Mode:Combineを選択。Combine By:Positionを選択。Number of Inputs:2を選択。- 入力接続:
- Input 1: 「データ整理 (Code)」ノードの出力を接続します。
- Input 2: 「リンクURL取得 (Set)」ノードの出力を接続します。

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

ワークフローのアクティブ化とテスト
全ての設定が完了したら、ワークフローをアクティブ化し、正常に動作するか確認しましょう。
- Google Driveの指定フォルダに、レシートの画像(JPEG, PNGなど)やPDFをアップロードします。
- しばらく待つと(n8nのポーリング間隔や処理時間によります)、ワークフローが自動実行されます。
- 指定したGoogleスプレッドシートを開くと、AIが読み取ったレシート情報(日付、勘定科目、会社名、合計金額、消費税、登録番号)と、元画像へのリンクが新しい行に追加されているはずです!
もし「不明」と記録される項目が多い場合は、OpenAIのプロンプトを調整したり、レシートの撮影品質を上げる(明るい場所で、まっすぐ、はっきりと)などの工夫を試してみてください。
まとめ
今回は、n8n、Google Drive、OpenAIを使って、レシート処理を自動化するワークフローの作り方をご紹介しました。
この仕組みを使えば、面倒な手入力から解放され、経費精算業務が格段に楽になるはずです。
最初は設定が少し複雑に感じるかもしれませんが、一度作ってしまえば、あとはレシートをアップロードするだけ。日々の業務効率化に、ぜひこの「レシート処理自動化ワークフロー」を活用してみてくださいね!
AIエージェント導入を検討中の方!
まずは無料でご相談ください!
・業務改善でAIを使用したい
・AIで業務効率を上げたい
・どのAIを導入すればいいかわからない
・技術的サポートが必要な方





