Power Automateで独自の請求書フォーマットに対応したカスタムAIアナライザーを構築する:Dropboxを使った3ステップのワークフロー

A カスタムAIアナライザーテンプレート これは、PDF4me 開発者ポータルで定義する名前付き JSON スキーマで、特定のドキュメントタイプから抽出するフィールドを AI に指示します。このチュートリアルでは、PDF4me 独自の SaaS サブスクリプション請求書 (33 フィールド: ベンダー住所ブロック、スイスの MWST レート、サブスクリプション ID、明細項目、割引の詳細) 用のアナライザーを作成し、Dropbox から PDF を読み取り、構造化された JSON を返す 3 ステップの Power Automate フローからそれを呼び出します。
内蔵 default_invoice_extraction 一般的な請求書はカバーできますが、実際の経理チームは、ベンダー固有のレイアウト、カスタム明細列、管轄区域固有の税金フィールド、およびサブスクリプションメタデータなど、一般的なスキーマでは対応できない要素を抱えています。カスタムアナライザーを一度構築すれば、フィールドごとのプロンプト表示やレスポンスのクリーンアップのための後続ロジックが不要になり、完全一致抽出が永続的に可能になります。
アナライザーを一度設定します: ログイン先 pdf4me.comサイドバーでAIドキュメントパーサーを開き、「追加」をクリックし、アナライザーに名前を付けます(テスト請求書)、タイプを選択してください 解析抽出したいすべてのフィールドを記述した JSON スキーマを貼り付けて保存します。次に、Power Automate フローを構築します。 手動でトリガーする、 パスを使用してファイルコンテンツを取得します (/pdf4me.pdf) AI - ドキュメントパーサー アナライザー名が渡され、 カスタマイズに関する注意事項出力は、スキーマで宣言されたすべてのフィールドを含むJSON形式です。このチュートリアルのサンプルスキーマでは、ベンダー住所、スイス付加価値税(MWST)、サブスクリプションID、請求期間、明細項目、割引詳細など、33個のフィールドが抽出されます。
なぜ?という問いに対する質疑応答
カスタムアナライザーではなく デフォルトの請求書抽出? 組み込みテンプレートは、一般的な仕入先請求書を対象としています。実際の買掛金管理チームでは、仕入先固有のレイアウト、管轄区域税項目(スイスのMWST、ドイツのUmsatzsteuer、米国の売上税)、サブスクリプションメタデータ(サブスクリプションID、請求期間、次回の請求日)、またはデフォルトのスキーマでは認識されない業界別明細列などを使用します。カスタムアナライザーは、これらすべてを一度にキャプチャします。
Power Automateで「カスタマイズメモ」というフィールド名が使われているのはなぜですか? カスタマイズノートのパラメータ AI - ドキュメントパーサー アクションはアナライザー ID 名 (開発者ポータルでアナライザーを作成したときに設定した文字列と同じ) を受け入れます。名前は履歴情報であり、役割は「このドキュメントに対して実行するアナライザー テンプレートを選択する」です。空白のままにすると、 デフォルトの請求書抽出カスタムスキーマを呼び出すには、アナライザー名を入力してください。
なぜ使うのか fieldMethod: 生成 複合フィールドで? いくつかのフィールド(ベンダー、 billToAddress)は文書に直接印刷されません。AI は、他の抽出されたフィールドからそれらを組み立てます(ベンダーストリート + ベンダーの都市 + ...) fieldMethod: 生成 マーカーは、AIエンジンに対し「この値を関連フィールドから合成し、文書内を検索しない」ように指示します。住所ブロック、氏名、連結された識別子の正規化に役立ちます。
なぜ両方なのか 請求書発行日 (日付)と invoiceDateString (弦)? スキーマでは両方を宣言していますが、それは日付が最も曖昧なフィールドであることが多いからです。 請求書発行日 これは解析された日付型です(後続の処理で日付計算を行うことができます)。 invoiceDateString これは、文書から印刷された生のテキスト(「2026年1月26日」)をそのまま保持したものです。パーサーが日付を誤って読み取ったり、正規化したりした場合、文字列のコピーによって監査と修正を行うことができます。
得られるもの
入力: アナライザーが想定する形式のPDF請求書をDropboxに保存します。このチュートリアルでは、PDF4me SaaSサブスクリプション請求書(Ynoox GmbH / スイス、MWST 8.1%、サブスクリプションメタデータ、Pdf4me Base 1000プラン)を使用します。 出力: スキーマの33個のフィールドすべてを含む構造化されたJSONレスポンス。Power Automateの動的コンテンツとして利用でき、次のアクション(SharePointリストへの書き込み、Slackへの投稿、Excel Onlineへの追加、承認へのルーティングなど)に使用できます。
入力請求書のサンプル
このチュートリアルで使用されているものと同じサンプル請求書をダウンロードしてください。 pdf4me-invoice-sample.pdf
サンプル出力JSON(実際の実行結果からの抜粋)
{
"documentTitle": "INVOICE",
"invoiceNumber": "Pdf4me-202601-32324",
"invoiceDate": "Jan 26, 2026",
"currency": "USD",
"paymentStatus": "PAID",
"vendorName": "Ynoox GmbH",
"vendorAddress": "Riedstrasse 2B, Hedingen, Zürich 8908, Switzerland",
"vendorTaxRegNumber": "CHE-360.751.198",
"billTo": "Chandra Arora",
"subscriptionId": "2e46662a-32e0-4e79-ba06-b13fe2c113ac",
"billingPeriodString": "Jan 26 to Feb 26, 2026",
"nextBillingDate": "Feb 26, 2026",
"mwstRate": 8.1,
"discountCode": "F_yn_100!",
"discountAmount": 35,
"lineItems": [
{ "description": "Pdf4me Base 1000", "price": 35, "discount": 35, "amount": 0 }
]
}
全33項目の回答は、下記のセクションからダウンロードできます。
必要なもの
- PDF4meアカウント。 開発者ポータルを開く そしてログインします(メールアドレスとパスワード、またはMicrosoft、Google、Facebook、Apple、GitHubのSSO)。
- パワーオートマタ。 Power Automateを開くプレミアムコネクタ付きのプラン(PDF4me Connectはプレミアムプランです)。
- Dropbox入力PDFソースの場合、SharePoint、OneDrive、Google Driveはそれぞれのコネクタで同様に動作します。
- 正確なスキーマとサンプルPDF以下の両方をダウンロードして、すべてのスクリーンショットをミラーリングしてください。
まず、スキーマ、サンプルPDF、および期待される出力結果を入手してください。 これらを使用して、すべてのスクリーンショットをバイト単位で再現します。
スキーマ:アナライザーが抽出する33のフィールド
アナライザースキーマは、カスタム抽出の中核となる部分です。各フィールドは、Power Automateが認識する名前、Power Automateが受け取る型、およびAIが値を探す場所を指示する説明を宣言します。
| 分野 | タイプ | 抽出するもの |
|---|---|---|
documentTitle | 弦 | 請求書の上部にラベルを貼ってください。例: INVOICE |
invoiceNumber | 弦 | 請求書ID。例: Pdf4me-202601-32324 |
invoiceDate | 日付 | 解析された請求書発行日 |
invoiceDateString | 弦 | 生の印刷された日付文字列。例: Jan 26, 2026 |
invoiceAmount | 番号 | ヘッダーサマリーの合計金額 |
currency | 弦 | ISO通貨コード。例: USD |
paymentStatus | 弦 | PAID、 UNPAID、 または DUE |
vendorName | 弦 | 販売会社名。例: Ynoox GmbH |
vendorStreet | 弦 | 露店街のライン |
vendorCity | 弦 | ベンダーの都市 |
vendorState | 弦 | ベンダーの州/カントン/県 |
vendorPostalCode | 弦 | 販売業者の郵便番号 |
vendorCountry | 弦 | ベンダーの国 |
vendorAddress | 弦 (fieldMethod: generate) | 上記の部品から組み立てられた複合アドレス |
vendorTaxRegNumber | 弦 | 税務登録。スイス形式 CHE-360.751.198 |
billTo | 弦 | 請求先顧客名 |
billToCountry | 弦 | 顧客の国 |
billToAddress | 弦 (fieldMethod: generate) | 複合請求先住所 |
subscriptionId | 弦 | 購読セクションのUUID |
billingPeriodStart | 日付 | 解析された請求期間の開始日 |
billingPeriodEnd | 日付 | 解析された請求期間の終了日 |
billingPeriodString | 弦 | 生の印刷された期間。例: Jan 26 to Feb 26, 2026 |
nextBillingDate | 日付 | 解析された次の請求日 |
nextBillingDateString | 弦 | 次回の請求日に印刷された生データ |
subTotal | 番号 | 税引き前金額 |
mwstRate | 番号 | スイスの付加価値税率。例: 8.1 |
mwstAmount | 番号 | スイスの付加価値税額 |
total | 番号 | 税込み合計金額 |
amountDue | 番号 | 最終支払額 |
discountCode | 弦 | 割引セクションのプロモーションコード |
discountDescription | 弦 | 割引に関するメモの全文 |
discountAmount | 番号 | 割引額 |
discountPercentage | 番号 | 割引率 |
lineItems | テーブル | 行ごとの製品/プランデータ: description、 price、 discount、 amount |
完全な JSON スキーマ (正確な fieldDescription AIが消費する文字列)は、上記のダウンロードファイルに含まれています。
設定A:PDF4me開発者ポータルにログインするにはどうすればよいですか?
現在地: 流れが存在する前に。
- 開ける pdf4me.com どのブラウザでも動作します。
- メールアドレスとパスワードを入力してクリックしてください ログインまたは、右側のSSOオプションからいずれかを選択してください。 Microsoft で続行、 グーグル、 Facebook、 りんご、 GitHub。
- 初めてですか?クリック アカウントをお持ちでない方?登録する 一つ作成する。
ログイン画面

設定B:ダッシュボードでAIドキュメントパーサーを開く
現在地: ログイン済み、 dev.pdf4me.com/dashboard。
- ダッシュボードの左側のサイドバーには、アカウントのセクションが表示されます: ホーム、プロフィール、サブスクリプション、支払い情報、 APIキーログ、請求書、 AIドキュメントパーサー、マイ ドキュメント、ドキュメントの分類、ドキュメントの解析、ジョブ履歴、共有ドキュメント、友達紹介、報酬。
- クリック AIドキュメントパーサー。
ダッシュボードのサイドバー

隣接する2つのサイドバー項目。 文書を分類する そして ドキュメントを解析する これらは個別のジョブランナーです(既存のアナライザーに対して単一のドキュメントをテストします)。 AIドキュメントパーサー はアナライザーテンプレートマネージャー(スキーマを作成する場所)です。初回設定時には、AIドキュメントパーサーを使用してください。
設定C:新しいアナライザーテンプレートを追加するにはどうすればよいですか?
現在地: AIドキュメントパーサーのページ。
- このページには、既に作成したすべてのアナライザーテンプレートが、ID、タイプ、編集/削除操作とともに一覧表示されます。
- クリック +追加。
- 空白行が表示され、2つのフィールドがあります。
- アナライザーID: 短く覚えやすい名前を入力してください (例:
Test Invoiceこれは、Power Automate でカスタマイズ ノートとして渡す文字列です。 - 分析装置の種類: オプション付きドロップダウン
ParseそしてClassify。 選ぶ 解析 構造化フィールド抽出用。 分類する ルーティングの決定が必要な場合。
- アナライザーID: 短く覚えやすい名前を入力してください (例:
- クリック 保存。
アナライザーを追加

セットアップD:JSONスキーマを貼り付けて保存します
現在地: 新しく作成したアナライザーを編集する。
- 新しいアナライザーの横にある鉛筆編集アイコンをクリックします(
Test Invoice) - Parse Info エディタが開き、上部にアナライザー ID が表示され、 ドキュメントスキーマ 以下の欄。
- 33フィールドのJSONスキーマを貼り付けます
analyzer-schema.jsonドキュメントスキーマのテキストエリアに入力します。各エントリは{ "fieldName": "...", "fieldType": "...", "fieldDescription": "..." }.fieldDescriptionこれは最も重要なフィールドであり、AIにどこを見て何をキャプチャするかを指示します。 - 選ぶ サンプル文書の種類 プリセット(
InvoiceまたはPurchase Order) 開始テンプレートが必要な場合は、そうしてください。そうでない場合は、スキーマを直接貼り付けてください。 - クリック 変更を保存。
Parse Infoスキーマエディタ
![PDF4me Parse Info エディタには、[変更を保存] ボタン、[Parse Info] の見出し、[Analyzer Id] フィールドが [Test Invoice] に設定され、[Schemas] セクション、fieldName、documentTitle、invoiceNumber、invoiceDate とその fieldType および fieldDescription を宣言する JSON スキーマが入力された Document Schema テキストエリア、さらに下部に Invoice および Purchase Order プリセットボタンがあります。](/assets/images/blog/custom-ai-analyzer-power-automate-dropbox-workflow/04-parse-info-schema.png)
スキーマ設計のヒント。 書く フィールドの説明 新人会計士に説明するように、文書に印刷されているラベル名、フォーマット(数字のみ、ISO日付、カンマ区切り文字列など)、そして例文を説明します。AIはフィールド名ではなく、これらの説明に基づいて照合を行います。 "vendorTaxRegNumber": "ベンダーの税務登録番号/UID番号。ラベル:「Tax Reg #」。スイス形式(例:CHE-360.751.198)" ビート "vendorTaxRegNumber": "納税者ID" 毎回。
フロー1:アナライザーをPower Automateに接続するにはどうすればよいですか?
これまでの流れ: トリガーのみ。
Power Automate側の手順はシンプルで、3つのアクションのみです。まずは手動トリガーから始めて、試行錯誤を繰り返しましょう。本番環境への移行準備が整ったら、HTTP、SharePoint、Outlookのトリガーに切り替えてください。
- で パワーオートマタ クリック 作成する、 選ぶ 瞬時のクラウドフロー。
- フローに名前を付けます(例:
Custom Invoice Extraction)、 選ぶ フローを手動でトリガーする、 クリック 作成する。
完全な3つのアクションの流れ

3つのアクション。AI - ドキュメントパーサーはPDF4meを呼び出す唯一のステップであり、実行時間の大部分を占めます(1ページの請求書の場合、約21秒)。
フロー2:DropboxからソースPDFを取得する
これまでの流れ: トリガープラス ファイルコンテンツを取得します。
- クリック + 新しいステップ、 検索 Dropbox、 選ぶ パスを使用してファイルコンテンツを取得します。
- 接続する まだDropboxアカウントをお持ちでない場合は、作成してください。
- 設定する:
- ファイルパス:
/pdf4me.pdf - コンテンツタイプを推測する:
Yes(詳細設定項目内)
- ファイルパス:
ファイルコンテンツ構成を取得します

フロー3:カスタマイズメモ欄にアナライザー名が表示されるのはなぜですか?
これまでの流れ: トリガー+ファイルコンテンツ取得+AI - ドキュメントパーサー。
これは、カスタムアナライザーを呼び出すアクションです。コツは カスタマイズに関する注意事項 フィールド: セットアップ C から正確なアナライザー ID 名を貼り付けます (Test Invoice このチュートリアルでは、この設定が不要です。設定がない場合、デフォルトの請求書抽出処理に戻ります。
- クリック + 新しいステップ、 検索 PDF4me、 選ぶ AI - ドキュメントパーサー。
- 接続する APIキーを使用したPDF4me AI(初回のみ)。
- 設定する:
- ファイルの内容: 選ぶ
File Contentステップ2(ファイルコンテンツの取得)からのトークン - ファイル名:
Test.pdf(ラベルのみ、パスではありません) - カスタマイズに関する注意事項 (詳細設定の下):
Test Invoice(セットアップCで設定した正確なアナライザーID)
- ファイルの内容: 選ぶ
- 保存してテストする。
AI - ドキュメントパーサーアクション

反復処理の速度に関するヒント。 スキーマを反復処理している間は、手動トリガーを使用してください。 フィールドの説明 開発者ポータルで保存し、Power Automateフローを再実行します。カスタマイズノートの値は変更されず、変更されるのは背後にあるスキーマのみです。これにより、スキーマの調整サイクルが30秒になります。
フローを実行して検証する
- 保存 右上の流れ。
- クリック テスト、 選ぶ 手動で、 クリック テスト それから フローを実行する。
- 実行の詳細を開きます。3つのアクションすべてが緑色になっているはずです。AI - ドキュメントパーサーのステップの出力には、JSON形式の本文が表示されます。
- レスポンスの本文には、スキーマで宣言されたすべてのフィールドが、PDFから取得したデータに基づいて格納されます。
実際の実行からの応答例

実際に何を作ったのですか? 貴社ベンダーのレイアウトを認識する、再利用可能なカスタム請求書パーサー。経理チームが必要とするすべてのフィールドを1回の呼び出しで抽出し、下流システムが想定する正確な名前で保存します。SharePointへの書き込み、承認プロセスへのルーティング、Teamsへの投稿、Excelトラッカーへの追加など、すぐに使用できます。次のベンダーフォーマット用に2つ目のアナライザー、発注書用に3つ目、クレジットノート用に4つ目のアナライザーを作成してください。フローの形状は変更されず、カスタマイズノートの値のみが変更されます。
再構築せずに追加できる一般的なバリエーション
支払金額 > 5000. ブランチ はい: 財務マネージャーに Microsoft 承認リクエストを開始します。 ブランチ いいえ: 自動アーカイブします。カスタムアナライザー vs default_invoice_extraction
| 側面 | カスタムアナライザーとデフォルトアナライザーの比較 | どちらが勝つか |
|---|---|---|
| セットアップ時間 | スキーマ定義に15~30分 | 0(既に存在します) |
| フィールド数 | あなたが宣言するもの(ここでは33) | 約15種類の汎用請求書項目 |
| カスタムラベル | はい(スイスMWST、購読者ID、割引コード) | いいえ、標準の請求書項目のみです |
fieldMethod: generate 複合場の場合 | はい | いいえ |
| ベンダー固有のレイアウト学習 | はい、スキーマはそれらのレイアウトを記述します。 | いいえ、万人に合うサイズではありません |
| メンテナンス | 請求書フォーマットが変更された場合は、スキーマを更新する | ゼロ、PDF4meがそれを維持します |
| 最適 | 定期取引業者、管轄税、定期購読料請求 | 一般的な AP 摂取、混合ベンダーの少量 |
よくある質問
スキーマの設計にはどれくらい時間がかかりますか?
使い慣れた請求書フォーマット(自社のSaaS請求書、上位3社のベンダーなど)であれば、最初のドラフト作成に15~30分かかります。請求書を最初から最後まで読み通し、経理チームが手作業で転記しているすべての項目をリストアップし、1文で説明を書いてください。 fieldDescription それぞれのラベルについて、印刷されたラベル名と例を示します。次に、3~5枚のサンプル請求書に対してテストを行い、誤りが見つかった説明を修正します。
文書にフィールドが欠落している場合はどうなりますか?
アナライザーは、null または空の値を持つフィールドを返します。エラーは発生しません。下流の Power Automate ロジックは、欠損値を次のように処理する必要があります。 coalesce() または if(empty(...)) 式、特に次のような必須フィールドの場合 invoiceNumberこれは、 default_invoice_extraction。
Analyzerスキーマのバージョン管理はできますか?
開発者ポータルにはまだネイティブで実装されていません。推奨されるパターンは、破壊的なスキーマ変更を行う際に新しいアナライザーIDを作成することです(Test Invoice v2)Power Automate のカスタマイズ ノートを更新して、新しいバージョンを指すようにします。すべてのフローの移行が完了するまで、古いアナライザーはアクティブなままにしておきます。
AIはどのフィールドを抽出すべきかをどのように知るのか fieldMethod: generate?
AIは fieldDescription そして、同じレベルにある兄弟フィールドの名前。 vendorAddress 定義される "Complete vendor address (street, city, state, postal code, country). Use comma(,) to separate lines."AIは既に抽出された部品から部品を組み立てます vendorStreet、 vendorCity、 vendorState、 vendorPostalCode、 vendorCountry フィールド。正規表現も文字列テンプレートも不要で、後続の処理も必要ありません。
アナライザーは、Power Automate、Make、Zapier、n8n のすべてに対応していますか?
はい。アナライザーIDが開発者ポータルに公開されると、あらゆるプラットフォーム上のすべてのPDF4me AI - Document Parserアクションで、そのIDを名前で参照できるようになります。スキーマを一度作成すれば、どの自動化ツールからでも使用でき、同じJSONレスポンス形式が返されます。
トラブルシューティング
カスタマイズメモの値がアナライザーIDと完全に一致していません。開発者ポータルでAIドキュメントパーサーページを開き、アナライザーID文字列をそのままコピーして、カスタマイズメモに貼り付けてください。大文字と小文字、空白文字は区別されます。
の フィールドの説明 説明が曖昧すぎるか、文書のラベルと一致していません。失敗したサンプル請求書のいずれかを開き、正確なラベルテキストを見つけて、説明を更新してそれを含めるようにしてください。 「ラベル:『請求書番号』または『請求書番号』。例:INV-2089」スキーマを保存して再実行してください。
兄弟姉妹を追加する フィールド名 と フィールドタイプ: 文字列 これは、印刷された生の日付をそのままキャプチャします(スキーマの invoiceDateString) こうすることで、解析された日付と監査用のソーステキストの両方が得られます。
確認する フィールドタイプ: テーブル 最上位レベルで、ネストされた フィールド 配列は各列を宣言します。AI は検出された行ごとにネストされた抽出を繰り返しますが、親フィールドが宣言している場合に限ります。 テーブル タイプ。
次のステップ
一度設定すれば何度でも呼び出せる同じパターン(アナライザーの定義、スキーマの貼り付け、IDをカスタマイズノートとして渡す)は、発注書、契約書、銀行取引明細書、医療費請求書、税関申告書など、あらゆる文書タイプに適用できます。フォーマットごとにアナライザーを1つ定義し、Power Automate、Make、Zapier、n8nのどのフローからでも自由に組み合わせて使用できます。