Power Automate の要求書テンプレート: PDF4me を使用して SharePoint のすべての準備完了案件に対して PDF レターを生成します

PDF4me ドキュメント生成 シングル これは、JSONデータをWordテンプレートにマージして完成したドキュメントを返すPower Automateアクションです。SharePointの法律案件リストを対象とすることで、準備完了とマークされた案件ごとに1つの要求書テンプレートをPDFレターに変換し、各レターをそれぞれの案件フォルダーに保存し、案件のステータスを更新します。
催告状のテンプレートを検索すると、まず最初に出てくるのは裁判所のセルフヘルプセンター、法律扶助サイト、書式ライブラリです。カリフォルニア州裁判所、WashingtonLawHelp、LawDepotはいずれも手紙の書き方を丁寧に説明しています。しかし、週に30通も送る法律事務所のやり方については、どれも触れていません。手紙を書くのは簡単ですが、その周りの事務作業は大変です。依頼人、相手方、金額を訴訟記録からコピーし、PDFを適切な案件フォルダに保存し、案件を完了済みとしてマークすることを忘れないようにしなければなりません。このフローでは、そうした事務作業を自動化し、文面は弁護士が管理するWord文書に残します。
SharePointで案件を「督促状送付準備完了」としてマークし、フローを実行します。準備完了とマークされた案件ごとに、PDF形式の督促状が専用フォルダに保存され、ステータスも更新されます。また、送付された件数を知らせるメールがチームに1通送信されます。督促状自体はWord文書で、6つのプレースホルダーがあり、PDF4meによって案件レコードからデータが入力されます。処理手順は11ステップで、2件の案件をまとめて処理する場合、約8秒で完了します。
なぜ?という問いに対する質疑応答
なぜWordのテンプレートを使って手紙を作成するのですか? なぜなら、文書の文言を所有する人々は既にWordで作業しているからです。弁護士は、文章の流れを変えることなく、段落を変更したり、レターヘッドを更新したり、条項を追加したりできます。プレースホルダーは元の位置に留まります。PDF4meは.docxファイルを直接読み込むため、HTMLで再構築する必要は一切ありません。
新規案件ごとにトリガーするのではなく、ステータス列でフィルタリングする理由は? 案件は作成された時点では催告状を送付できる状態ではないからです。ステータス欄は、パラリーガルが事実関係が揃った時点を判断するためのものであり、クエリはその時点の行のみを取得します。提出直後にステータスを変更することで、次回の実行時に同じ案件に2通目の催告状が送付されるのを防ぐことができます。
なぜすべての案件に個別のフォルダを用意する必要があるのか? なぜなら、案件ファイルはそもそもそのように整理されているからです。フォルダパスには案件IDが使用されるため、MAT-1001.pdfはDemandLetters/MAT-1001フォルダに、その案件の他のファイルと一緒に保存されます。そのため、案件を開いた人は検索することなくその手紙を見つけることができます。
変数の文字数を数える理由は何ですか? 要約メールには、今回の処理で実際に何が生成されたかを報告する必要があるからです。DocIndexは、手紙が提出されステータスが変更された後、各処理の最後に1ずつ増加するため、件名に表示される数字は、最後まで処理された手紙の数を示しています。
得られるもの
入力: SharePoint 上の案件リスト。各案件には、案件 ID、依頼者、発生日、相手方、損害賠償額、弁護士、およびステータスが含まれます。 出力: 案件ごとに準備完了とマークされたPDF要求書1通 /Shared Documents/DemandLetters/<matter ID>すると、案件のステータスが「催告状作成済み」に変更され、バッチ処理に関する要約メールが1通送信されました。

MAT-1001.pdfは、フローアカウントによって作成された専用のマターフォルダにあります。

1件の案件バッチの概要です。件数はDocIndex変数から取得されます。
必要なもの
- パワーオートマタ。 Power Automateを開く標準コネクタを使用したクラウドフロー。SharePoint、Office 365 Outlook、PDF4meはプレミアムプランを必要としません。
- PDF4me APIキー。 APIキーを取得してくださいこのフローでは、PDF4me PDF という 1 つの PDF4me 接続を使用します。
- SharePointの事項リストキャプチャされたリストは「案件」と呼ばれます。タイトル列には案件IDが格納され、リストビューではMatterIDに名前が変更されます。また、クライアント名、発生日、相手方、損害額、弁護士の各列に加え、ステータス選択列があり、下書き、催告状準備完了、催告状作成済みなどの値が表示されます。
- ドキュメントライブラリ テンプレートと手紙については、テンプレートは「共有ドキュメント」フォルダに、手紙は「共有ドキュメント/督促状」フォルダに保存されています。
- 要求書テンプレート。 要求書テンプレート.docxPDF4meテンプレート構文には6つのプレースホルダーがあります。この文言はサンプルであり、法的助言ではありませんので、誰かに提出する前に弁護士に承認を得てください。
- 完成した手紙。 mat-1001-demand-letter.pdfMAT-1001という物質に対して流れが何を生成したのかを正確に把握する。
まずはサンプルを入手してください。 テンプレートを「DemandLetterTemplate.docx」という名前で共有ドキュメントにアップロードし、「督促状作成準備完了」ステータスの案件を1件追加して、フローを実行します。次に、作成した督促状を、完成した督促状の横に配置します。名前、金額、案件IDがすべて一致していれば、マッピングは正しく行われています。
フローの概要
- フローを手動でトリガーする バッチ処理を開始します。
- アイテムを入手 読む
Mattersフィルタクエリを使用したリストStatus eq 'Ready for Demand Letter'。 - 選択 各案件を6つのテンプレートフィールドにマッピングします。
- ファイルの内容を取得する 読む
/Shared Documents/DemandLetterTemplate.docx。 - 変数を初期化する 作成する
DocIndex整数として設定0。 - それぞれに適用する 問題からループする アイテムを入手。
- PDF - ドキュメント生成(単一) (PDF4me PDF) は出力タイプでテンプレートを埋めます
PDF。 - ファイルを作成する (SharePoint) は手紙を
/Shared Documents/DemandLetters/<matter ID>。 - アイテムを更新 (SharePoint) ステータスを
Demand Letter Generated。 - 変数を増分する 追加
1にDocIndex。 - メール送信(V2) (Office 365 Outlook) はバッチサマリーを送信します。
フローの概要全体

2つのデータ項目からなるバッチ処理。ループ処理は2回とも7秒かかり、その中でSharePointへの書き込みが最も時間がかかり、1文字あたり2秒かかる。
ステップ1:オンデマンドで催告状バッチを開始するにはどうすればよいですか?
これまでの流れ: まだ何も起きていない。これが引き金だ。
手動トリガーは、実際に手紙が送られる方法に合致している。つまり、準備完了とマークされた案件を誰かが確認し、ボタンを押すという流れだ。
- 作成する 瞬時のクラウドフロー そして選ぶ フローを手動でトリガーする。
- 何も入力せずにそのままにしておいてください。リスト自体が、どの項目をバッチ処理に含めるかを決定します。
手動トリガー設定

入力はありません。選択は次のステップの「ステータス」列で行われます。
ヒント。 残りのフローは、誰が開始したかに依存しません。トリガーを 再発 そして同じ流れが夜間のバッチ処理となり、日中に準備完了とマークされたものをすべてピックアップする。
ステップ2:要求書を送付する準備が整った案件だけを選別するにはどうすればよいでしょうか?
これまでの流れ: フローを手動でトリガーします。
アイテムを入手 選択はフローが行うため、フロー自体がステータスを確認する必要はありません。
- 追加 SharePoint > アイテムを入手。
- 設定する:
- サイトアドレス:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - リスト名:
Matters
- サイトアドレス:
- 開ける 詳細パラメータ そして設定します:
- フィルタークエリ:
Status eq 'Ready for Demand Letter' - 並べ替え順:
Title asc
- フィルタークエリ:
アイテム構成を取得する

フィルター値は、大文字・小文字を含めて完全に一致します。タイトル順で並べ替えると、案件ID順に文字が表示されます。
ヒント。 アイテムを入手 最大 100 行を返します。ただし、例外をスローします。 トップカウント または、アクションの設定でページネーションを有効にしてください。これは日次バッチ処理には十分ですが、最初の月末実行前に知っておくと良いでしょう。
ステップ3:Selectアクションは何をマッピングしますか?
これまでの流れ: フローを手動でトリガーし、アイテムを取得します。
選択 各案件の行を、テンプレートが認識している6つのフィールドに正確に変換することで、リストとテンプレート間の契約内容が読みやすくなります。
- 追加 データ操作 > 選択。
- から: その
body/valueトークンから アイテムを入手。 - 地図テンプレートフィールドごとに1行ずつ、以下の表のように表示されます。
構成を選択

5つのフィールドは列名をそのまま使用します。6つ目のMatterIDは、リストの「タイトル」列から取得します。
各プレースホルダーがどのようにして値を取得するのか
| テンプレート内のプレースホルダー | JSONキー | SharePoint 列 | MAT-1001の手紙では |
|---|---|---|---|
<<[ClientName]>> | ClientName | ClientName | サラ・チェン |
<<[IncidentDate]>> | IncidentDate | IncidentDate | 2026年6月14日 00:00:00 |
<<[OpposingParty]>> | OpposingParty | OpposingParty | メリディアン・ロジスティクス社 |
<<[DamagesAmount]>> | DamagesAmount | DamagesAmount | 18500 |
<<[Attorney]>> | Attorney | Attorney | デビッド・パーク |
<<[MatterID]>> | MatterID | Title | MAT-1001 |
この手順を真似する前に知っておくべきこと。 キャプチャされたフローでは、ループは次のようになっています。 アイテムを入手 直接、文字はループから値を取得するので、下流では何も使用されません 選択 出力。これはある意味で意図的なものです。 アイテムを更新 各案件のIDが必要であり、 選択 それを除外します。ループを駆動するには 選択 代わりに、マップとポイントにIDを追加します それぞれに適用する で 選択 出力。
ステップ4:フローはどこからWordテンプレートを読み込むのか?
これまでの流れ: フローを手動でトリガーし、アイテムを取得して選択します。
テンプレートは、文書ライブラリにある通常のWordファイルです。ループ処理の前にここで読み込むことで、案件ごとではなく、バッチ処理ごとに一度だけ取得されます。
- 追加 SharePoint > ファイルの内容を取得する。
- 設定する:
- サイトアドレス:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - ファイル識別子:
/Shared Documents/DemandLetterTemplate.docx - コンテンツタイプを推測する (高度な):
Yes
- サイトアドレス:
ファイルコンテンツ構成を取得します

SharePointでテンプレートを編集すると、次のバッチ処理では新しい文言が使用され、処理の流れに変更はありません。
このテンプレートには、PDF4meテンプレート構文で6つのプレースホルダーが含まれています。 <<[Attorney]>>、 <<[IncidentDate]>>、 <<[OpposingParty]>>、 <<[MatterID]>>、 <<[ClientName]>> そして <<[DamagesAmount]>>レターヘッド、参照行、およびそれらの周囲の本文は、通常のWordコンテンツです。 Wordテンプレートの構文概要 プレースホルダーができることすべてを網羅しています。
ステップ5:なぜフローにカウンタ変数が必要なのですか?
これまでの流れ: ファイルコンテンツ取得を通じて全てを実行します。
要約メールには数値が必要であり、変数を使うのがループから数値を取り出す最も簡単な方法です。
- 追加 変数 > 変数を初期化する。
- 設定する:
- 名前:
DocIndex - タイプ:
Integer - 価値:
0
- 名前:
変数設定を初期化する

初期化変数はフローの最上位レベルに配置する必要があります。Power Automateではループ内での初期化は許可されていません。
ステップ6:案件ごとに1通の督促状を作成するにはどうすればよいですか?
これまでの流れ: 初期化変数を通してすべてを実行します。
これが実際の作業を行うループです。各処理で1通の手紙を作成し、ファイルに保存し、案件情報を更新し、件数をカウントします。
- 追加 コントロール > それぞれに適用する。
- 前の手順から出力を選択します: その
body/valueトークンから アイテムを入手。
各構成に適用する

ループ内の4つのアクションは、1つの問題でも50の問題でも変わりません。
それでは、ループ内の最初のアクションです。
- 追加 PDF - ドキュメント生成(単一) から PDF4me PDF 繋がり。
- 設定する:
- テンプレートファイルの種類:
Docx (PDF4me Template Syntax) - テンプレートファイル名:
DemandLetterTemplate.docx - テンプレートファイルデータ: a
base64()表情 ファイルの内容を取得する 出力例base64(body('Get_file_content')) - 文書データタイプ:
Json - 文書データファイル空欄のままにしてください
- 文書データテキスト: 現在のマターから構築された以下のJSON
- 出力タイプ:
PDF - PDFテンプレートを編集可能にする:
No
- テンプレートファイルの種類:
トークン 文書データテキスト 以下の式に解決されます。
{
"ClientName": "@{items('Apply_to_each')?['ClientName']}",
"IncidentDate": "@{items('Apply_to_each')?['IncidentDate']}",
"OpposingParty": "@{items('Apply_to_each')?['OpposingParty']}",
"DamagesAmount": "@{items('Apply_to_each')?['DamagesAmount']}",
"Attorney": "@{items('Apply_to_each')?['Attorney']}",
"MatterID": "@{items('Apply_to_each')?['Title']}"
}
ドキュメント生成(単一)設定

JSONキーはプレースホルダー名と完全に一致する必要があります。MatterIDのみ、値が異なる名前の列から取得されます。
最初の文字の前に日付と金額を固定してください。 キャプチャされた文書では、事件発生日が「06/14/2026 00:00:00」、損害額が「$18500」と表示されますが、これはどちらの値にも書式が設定されていないためです。誰もタイムスタンプ付きの請求書を送付しないため、テンプレートの日付プレースホルダーに書式を追加し、フロー内で金額の書式を設定してください。手順は以下のとおりです。
日付については、Word テンプレートでプレースホルダーに書式文字列を指定します。 Wordテンプレートの書式設定:
<<[IncidentDate]:"MMMM dd, yyyy">>2026年6月14日に印刷されます。
金額については、 文書データテキスト テンプレートに到達する前に。これは、DamagesAmountが数値または通貨型の列であることを前提としています。
formatNumber(items('Apply_to_each')?['DamagesAmount'], 'N0', 'en-US')18,500個生産する。
formatNumber また、この記事で使用されているその他の関数については、 ワークフロー式関数のリファレンス。
ステップ7:それぞれの手紙はどこに保管されますか?
これまでの流れ: ループは、Generate Document (Single) を介して実行されます。
ここでは、案件IDがフォルダとファイルの両方に名前を付けるという二重の役割を果たしています。
- 追加 SharePoint > ファイルを作成する ループの内側。
- 設定する:
- サイトアドレス:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - フォルダパス:
/Shared Documents/DemandLetters/続いて タイトル トークン - ファイル名: その タイトル トークンに続いて
.pdf - ファイルの内容: その 体 トークンから PDF - ドキュメント生成(単一)
- サイトアドレス:
ファイル構成を作成する

MAT-1001 の件については、/Shared Documents/DemandLetters/MAT-1001/MAT-1001.pdf に書き込みます。
ヒント。 MAT-1001 のような ID は、SharePoint が拒否するものが含まれていないため、フォルダ名やファイル名として適しています。案件 ID が自由形式のテキストの場合は、まずスラッシュ、コロン、疑問符を削除してください。 ファイルを作成する 最初の問題で失敗する。
ステップ8:案件に2通目の手紙が届くのを防ぐにはどうすればよいですか?
これまでの流れ: ファイルの作成を介したループ。
ステップ2のフィルターは、文字が存在する後にステータスが変更された場合にのみ機能します。それがこのアクションの目的です。
- 追加 SharePoint > アイテムを更新 ループの内側。
- 設定する:
- サイトアドレス:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - リスト名:
Matters - ID: その ID 現在の問題からのトークン
- ステータス値 (高度な):
Demand Letter Generated
- サイトアドレス:
アイテム設定を更新する

更新項目はファイル作成が成功した後にのみ実行されるため、処理に失敗した案件は次のバッチ処理のために準備されたままになります。
ステップ9:チームはどのようにしてバッチ処理が完了したことを知るのか?
これまでの流れ: ループは、更新アイテムを通して実行されます。
処理を完了させるには2つのアクションが必要です。1つはループ内でカウントを行い、もう1つはループ終了後に結果を報告するものです。
- 追加 変数 > 変数を増分する ループ内の最後のアクションとして。
- 名前:
DocIndex - 価値:
1
- 名前:
- 追加 Office 365 Outlook > メール送信(V2) ループの後。
- に: チームの住所
- 主題:
Demand Letters Generated -続いて ドキュメントインデックス トークンとin this batch - 体:
Hi team,それから ドキュメントインデックス、 それからdemand letters were generated in this batch and saved to the matter folders in SharePoint. Matter statuses have been updated to "Demand Letter Generated". - 重要性 (高度な):
Normal
変数のインクリメントとメール送信(V2)の設定

ループの最後にあるため、提出され記録された手紙のみがカウントされます。

1通のメールにつき1通、手紙1通につき1通ではありません。
ヒント。 キャプチャされたメールには、1通の要求書が書かれています。固定された単語を置き換えてください。 if(equals(variables('DocIndex'), 1), 'letter', 'letters') そして、件名と本文は、1件のバッチとして正しく読み取れた。
フローを実行して検証する
- 保存 フローと選択 テスト、 それから 手動で。
- 実行する前に、少なくとも1つの案件を「督促状送付準備完了」としてマークしてください。
- 実行履歴を開きます。 それぞれに適用する 準備完了とマークされた案件ごとに1回の反復処理が表示され、すべてのアクションが緑色で表示されるはずです。
- 開ける
/Shared Documents/DemandLetters案件ごとに1つのフォルダがあり、それぞれのフォルダには案件IDと同じ名前のPDFファイルが格納されていることを確認してください。 - 開く 問題 これらの事項を一覧表示して確認すると、催告書が生成されていることが表示されます。
ラン後のマターズリスト

現在、3件の案件で督促状が作成されています。MAT-1003はまだ下書きの状態なので、フィルターによってスキップされ、督促状は作成されませんでした。
キャプチャされた実行では、約8秒で2件の処理が行われました。MAT-1001の書簡は、PDF4me Legal Associatesから発行され、Sarah Chenに代わってDavid Parkが署名し、Meridian Logistics Inc.宛ての1ページ21,121バイトの文書です。そのXMPメタデータには、 pdfaid:part として 1 そして pdfaid:conformance として BこれはPDF/A-1b形式です。先に示していた要約メールは、別の単一案件のバッチから送信されたものです。
実際に何を作ったのですか? 小規模な法律文書自動化パイプライン。承認済みの文言は1つのWordテンプレートに、事実関係は案件リストに、そしてステータス欄は送信する文書を決定し、送信済みであることを記録する。誰もクライアントの名前を手紙にコピーする必要はなく、どの案件にまだ手紙が必要なのかを覚えておく必要もない。
再構築せずに追加できる一般的なバリエーション
これは、他の催告状作成方法と比べてどうなのか
各行は代替案を表しています。最後の行はこのフローを示しています。
| 比較 | テンプレート | コネクタまたはライセンス | 出力 | 案件記録を更新します |
|---|---|---|---|---|
| 手入力テンプレート vs このフロー | 文字ごとに再入力された単語 | なし | その人が貯めるものは何でも | 手作業で、誰かが覚えていれば |
| Microsoft Word テンプレートへの入力とこのフローの比較 | コンテンツコントロールを備えたWord | プレミアムWord Online(ビジネス)コネクタ | .docx、PDFは2回目の変換処理が必要です | 追加する場合のみ |
| 専用の法律文書自動化ソフトウェアとこのフローの比較 | 通常はベンダー独自のテンプレートエディタ | 別途購読料 | WordまたはPDF | その製品の中には |
| この流れ | PDF4meテンプレート構文におけるプレースホルダーを含むWord | 標準コネクタ | PDFファイル、案件ごとに提出 | はい、ステータスが更新されました |
重要な違いは、この行だけがテンプレートが通常のWordファイルのままであり、同じ実行の一部として案件レコードが変更される点です。
よくある質問
要求書テンプレートの作成方法
貴社が既に送付している書簡を基に、案件ごとに変更されるすべての項目をマークしてください。一般的な督促状には、レターヘッド、日付、宛先、案件IDを含む参照行、事実の簡単な説明、請求金額と期限、期限を過ぎた場合の対応、そして署名が含まれます。変更される項目以外はすべて定型文です。
自動化の場合、変化する値はそれぞれプレースホルダーになります。 サンプルテンプレート 使用する項目は、依頼者、事件発生日、相手方、金額、弁護士、事件IDの6つです。この文言はあくまで例示であり、実際に送信するテンプレートの文言は弁護士の承認を得る必要があります。
Power Automateを使用してWordテンプレートにデータを入力する方法は?
一般的なルートは2つあります。マイクロソフトのルートです。 Microsoft Wordテンプレートにデータを入力する アクションはドキュメント内のコンテンツ コントロールを使用し、プレミアムに配置されます Word Online (ビジネス) コネクタ.docx ファイルが返されるため、PDF に変換するには 2 回目の変換手順が必要です。
このフローでは PDF4me ドキュメント生成(単一) 代わりに。テンプレートは、プレースホルダーを含む通常の .docx ファイルです。 <<[ClientName]>>データはJSON形式で入力され、アクションは標準コネクタ上で直接PDFを返します。テンプレートを読み込むには、 ファイルの内容を取得するそれを通過させる base64()、そして構築する 文書データテキスト リスト項目から。
Wordで手紙の作成を自動化する方法は?
Word自体の中では、古典的な解決策は差し込み印刷です。差し込みフィールドとExcelシートなどのデータソースを含む文書を作成します。これは機能しますが、バッチ処理ごとに誰かがデスクトップで実行し、後で結果をファイルに保管する必要があります。
適切に自動化するには、Word文書をテンプレートとして保持し、フローによってレコードから自動的に入力されるようにする必要があります。ここでは、レコードはSharePointリストであり、トリガーによってバッチ処理の実行タイミングが決定され、ファイルへの入力とステータスの更新が同じ実行で行われるため、マージの手順は不要になります。
法律文書の自動化とは何ですか?
法律文書の自動化とは、請求書、委任契約書、通知書などの法律文書を、承認済みのテンプレートと事件データに基づいて作成する技術であり、従来のように一つ一つ手作業で作成するものではありません。テンプレートには法律事務所が承認した文言が記述されており、データは事件記録から取得され、ソフトウェアがそれらを統合します。
このフローは、その具体的な小さな例です。1つのWordテンプレート、1つの案件リスト、そしてマージを実行する1つのPDF4meアクションで構成され、案件ステータスには手紙が存在することが記録されます。
トラブルシューティング
その案件のデータの中に、二重引用符を探してください。多くの場合、会社名の中に含まれています。 文書データテキスト JSON はテキストから組み立てられるため、余分な引用符があると値が途中で終了し、JSON が無効になります。値内の引用符をエスケープするか、オブジェクトを 作曲する まず処理を実行し、その出力を渡します。
プレースホルダーに書式が設定されていないため、日付が時刻とともに表示されます。手順6に示すように、テンプレート内のIncidentDateプレースホルダーに書式文字列を追加し、テンプレートを再度アップロードしてください。
アイテムを入手 何も返されませんでした。フィルタークエリはテキストを完全に比較するため、ステータスの選択肢とスペルや大文字小文字を照合し、クエリが列の内部名を使用していることを確認してください。確認のため、単一の案件を「督促状送付準備完了」に設定してフローを実行してください。
ステータスは変更されていません。確認してください。 アイテムを更新 現在の案件のIDを使用し、そのステータス値がフィルター条件を満たさない選択肢と一致する場合に、この処理が実行されます。ステータスが「催告状準備完了」のままの場合、毎回案件が再度処理されます。
次のステップ
同じ11ステップの手順(ステータスでリストをフィルタリングし、行ごとにWordテンプレートに入力し、PDFをファイルに保存し、ステータスを変更し、件数を報告する)で、リストの行から生成されるあらゆる文書(契約書、通知、更新リマインダー、和解案など)を処理できます。