ElcamyTECH
Articles
n8n

【n8n入門シリーズ 1】PDFデータの自動抽出

Techn8nn8n2026/04/10

はじめに

月末の請求書処理では、PDFを開いて会社名をコピーし、スプレッドシートに貼り付け、合計金額を確認してまた貼り付ける、という作業が発生しがちです。

PDFはシステムにとって「画像」や「テキストの塊」にすぎず、人間が手作業で構造化データ(JSON)に変換しているケースが多いのではないでしょうか。

本記事では、PDFをアップロードするだけで欲しい情報を抽出するツールを、n8nで構築します。以前Difyで実装したPDF要約ワークフローの n8n版です。

作るもの

専用のURLにアクセスしてPDFをアップロードすると、数秒で「会社名」「請求番号」「合計金額」など、あらかじめ指定したデータが整理されて画面に表示されるシンプルなWebアプリです。

作業環境

項目バージョン / 種別
n8n2.14.2(クラウド版、またはセルフホスト版)
LLM APIGoogle Gemini API(OpenAIなど他のLLMでも可)

n8nとは?

複数のアプリやAPIを繋いで業務を自動化する、ノーコード・ローコードツールです。ZapierやMake(旧Integromat)と同じカテゴリのツールです。

強みは自由度の高さとデータ処理のしやすさにあります。DifyなどのAI特化プラットフォームでも似たツールは作れますが、n8nなら「画面の作成(フォーム)」から「バイナリデータ(PDF自体)の処理」、そして「他SaaSへのデータ送信」まで、一つのキャンバス上で完結できます。

完成イメージ

完成イメージ

ワークフローの全体像

今回組むノードは4つです。


作業手順

事前準備:APIキーの取得

まずはLLMのAPIキーを用意します。今回はGoogleのGeminiを使用します。 Google AI Studio(aistudio.google.com)にアクセスし、「Get API key」から新しいキーを発行してコピーしておいてください。

ワークフローの新規作成

n8nの画面を開き、新しくワークフローを作成します。 最初のスタート地点(トリガー)として、On new n8n Form event をキャンバスに配置してください。

  1. add first stepをクリック

add first stepをクリック

  1. n8n Formを選択

n8n Formを選択

  1. On new n8n Form eventを選択

On new n8n Form eventを選択

Step 1. 入口(フォーム)を作る

配置したフォームトリガーを開き、タイトルを「PDF解析ツール」と設定します。 ファイルを受け取るためのフォーム要素も追加します。

Add Form Element をクリックして、以下のように設定します。

  • Element Type: File

フォーム設定

Step 2. PDFからテキストを抽出する

アップロードされたPDFは、そのままではAIが読めないため、テキストに変換する必要があります。 Extract from File ノードを追加し、

Extract from Fileノード追加

Extract From PDF に設定します。

Extract From PDF設定

注意

注意点として、n8nはデフォルトで data という名前のバイナリフィールドを参照しますが、フォームで作成したフィールド名は file です。このままではエラーになるため、次の手順で修正します。

Input Binary Field の値を data から file に変更します。左側のINPUTエリアにある太字の PDF のフィールド名を確認し、Input Binary Field の枠へ入力してください。

Input Binary Field修正

Step 3. AIでデータを抽出する

テキストになったデータをAIに読み込ませます。 Information Extractor ノードを追加し、下にGeminiのモデルを繋ぎます。ここで事前準備で取得したAPIキーを設定します。

Information Extractorノード追加

Geminiモデル接続

API設定

  • Text 欄に、左から text をドラッグ&ドロップ(または {{ $json.text }} と入力)。
  • Schema Type は From Attribute Descriptions に。

次に Add Attribute で、AIに「何を抜き出してほしいか」を指示します。

  • vendor_name (String):請求書の発行元会社名
  • total_amount (String):最終的な合計金額(税込)
  • invoice_number (String):請求書番号
  • ceo_name (String):代表者の氏名

Attribute設定

Step 4. 結果を返す

最後に、抽出したデータをアップロード画面にテキストとして返します。 n8n Form (Actionノード) を使い、Page Typeを Form Ending に設定してください。

Form Ending設定

Page Type設定

Completion Message に結果を埋め込みます。左側の「INPUT」を展開して、vendor_name などの変数を文章の中へドラッグ&ドロップで配置します。

Completion Message設定

動作確認

最初のフォームの「Test URL」からブラウザを開き、手元にある請求書PDFをアップロードしてみてください。

今回はAdobeが提供している 請求書テンプレート を使用してみます。

テスト用PDF

数秒待つと、指定したデータが整理されて画面に表示されます。

抽出結果


応用:さらに自動化するには

今回は画面表示のみですが、AIノードと完了画面の間にノードを追加することで、さらに自動化を拡張できます。

  • Google Sheets ノードを挟めば、解析データを台帳へ自動追記
  • Slack ノードで、処理完了を通知
  • HTTP Request ノードで、自社データベースへAPI経由で直接格納

用途に応じて柔軟に拡張できます。

おわりに

PDFの転記作業が、ファイルをアップロードするだけで完結するようになりました。 非構造化データをJSONに変換する仕組みができれば、後続の処理も自動化しやすくなります。ぜひ自社の業務に合わせてカスタマイズしてみてください。

Elcamyについて

AI・データエンジニアリング・クラウドを中心に、技術で事業課題を解決しています。 お気軽にご相談ください。