メインコンテンツへスキップ

Power Automateでパーソナライズされた招待状を作成し、1つのPDFに結合する:Dropboxを使った7ステップのワークフロー

· 1分で読める
SEO and Content Writer

大量郵送の一番つらいところは手紙を書くことではなく、 パーソナライズされたコピーを縫い合わせる そのため、財務、人事、または業務部門は、50 個の添付ファイルの代わりに 1 つのクリーンな PDF を受け取ることができます。このウォークスルーでは、正確なパターンを構築します。 パワーオートマタ と PDF4meで文書を生成する(複数)、 複数のPDFファイルを結合する、 Dropbox、そして「各ループに適用」が1つ。フローアクションは7つ。DOCXテンプレートは1つ。受信者のJSON配列。出力は、受信者ごとに1ページずつ、名前が付けられ、Dropboxに自動的にアップロードされた統合PDFファイル1つ。

流れの概要
1. Manual trigger
Manually trigger a flow. Swap in any business trigger later (HTTP, SharePoint, schedule).
2. Get file content (path)
Dropbox path /blog data/merge blog template/template.docx, Infer Content Type Yes.
3. Generate Documents (Multiple)
PDF4me action. Template DOCX plus JSON array of recipients. Output Type PDF. Returns body/outputDocuments.
4. Initialize variable
Name mergefiles, Type Array. Buffer for the per-recipient PDF binaries.
5. Apply to each
Loop body/outputDocuments. Inside, Append to array variable with base64ToBinary on streamFile.
6. Merge multiple PDFs
PDF4me action. Body/docContent mergefiles, Output File Name Test.pdf. One combined PDF out.
7. Create file
Dropbox /blog data/merge blog template/output, File Name Merged_files.pdf.
要約版

2 つの Dropbox ステップがフローを構成します。PDF4me の「ドキュメントの生成 (複数)」は、受信者ごとに 1 つのパーソナライズされた PDF を生成します。「各項目に適用」ループがすべての処理を囲みます。 ストリームファイル で base64ToBinary(...) そしてそれを配列変数にプッシュします。PDF4meの「複数のPDFファイルを結合」機能は、配列を1つの統合されたPDFに結合します。Dropbox ファイルを作成する 書き戻します。このフローは、受信者2人のバッチで1分以内に実行され、線形にスケーリングします。カスタム式は1つだけです。 base64tobinal 電話。

なぜ?という問いに対する質疑応答​

(単一)ではなく(複数)の文書を生成する理由は何ですか? Single バリアントは 1 つのレコードを受け取り、1 つの PDF を出力します。N 個の PDF を生成するには、これを N 回呼び出し、それぞれに請求イベントとネットワークの往復を追加します。(Multiple) は JSON 配列全体を 1 つの呼び出しで受け取り、N 個の PDF をまとめて返します。 本文/出力ドキュメント1回の呼び出しで、1回の請求イベント、完全なバッチ処理。

なぜ配列変数に加えて「各要素に適用」を使うのか? ドキュメント生成(複数)は、各 PDF を base64 文字列として出力します。 ストリームファイル複数の PDF ファイルを結合するには、バイナリのコレクションが必要です。Apply to each ループは、この 2 つのブリッジになります。各 base64 文字列をバイナリに変換します。 base64ToBinary(...) そしてそれを配列変数にプッシュします。 マージファイルループの後、配列はマージアクションが期待するコレクションになります。

テンプレートとしてPDFではなくDOCXを使用する理由は何ですか? DOCX マージトークン (<<[名]>>、 <<[HC_WoM_Date]>>)は本文中に存在し、PDF4me エンジンが直接読み取ります。PDF テンプレートでは、事前にフォーム フィールド スキーマが必要ですが、これは手紙には過剰です。DOCX は Word、Office 365、Google Docs が既にエクスポートしている形式でもあるため、著者は自分のライティング ツールから離れることなくテンプレートを編集できます。

そもそもなぜ単一のPDFに結合する必要があるのか? コンプライアンスレビュー、バッチ印刷、署名監査証跡、および下流のアーカイブでは、N 個の添付ファイルよりも 1 つの統合 PDF が好まれます。個々のファイルが必要な場合は、 PDFをページ数で分割 = 1 ステップ7の前にアクションを追加すれば、残りのフローを再構築することなく両方の世界を実現できます。


得られるもの​

入力: DOCXテンプレート1つ <<[merge_token]>> プレースホルダー /blog data/merge blog template/template.docx加えて、受信者の JSON 配列を [ドキュメントの生成 (複数)] アクションに貼り付けます。 出力: 単一のPDFファイル Merged_files.pdf アップロード先 /blog data/merge blog template/outputJSON配列と同じ順序で、受信者ごとにパーソナライズされたページが1つずつ作成されます。テンプレートはソースフォルダ内で変更されないため、再実行しても冪等性は維持されます。


必要なもの​

  • パワーオートマタ。 Power Automateを開くプレミアムコネクタ付きのプラン(PDF4me Connectはプレミアムプランです)。
  • PDF4me APIキー。 APIキーを取得してくださいPDF4meアクションを初めて追加する際に接続してください。
  • Dropboxテンプレートのソース、結合されたPDFの保存先。SharePoint、OneDrive、Google Driveは、それぞれのコネクタを使用して同様に動作します。
  • マージトークンを含むDOCXテンプレート二重山括弧構文を使用します (<<[フィールド名]>>) このウォークスルーでは テンプレート.docx、 あなたはできる このチュートリアルで使用されているテンプレートをダウンロードしてください。 そして、すべてのスクリーンショットをDropboxにコピーして保存します。
  • 受信者のJSON配列受信者ごとに1つのオブジェクト。キーはテンプレートトークンと完全に一致する。 サンプルJSONをダウンロード。

まずはサンプルファイルを入手してください。 落とす テンプレート.docx の中へ /blog data/merge blog template/ Dropboxに保存し、JSONファイルをスクラッチパッドに保管してください。そうすれば、以下のスクリーンショットの値が、ご自身のワークフローに表示される値と一致するはずです。


フローの概要​

  1. フローを手動でトリガーする (トリガー)。
  2. Dropbox: パスを使用してファイルコンテンツを取得する読む template.docx Dropboxから。
  3. PDF4me:ドキュメント生成(複数)テンプレートと受信者のJSON配列を入力として受け取り、パーソナライズされたPDFの配列を出力します。
  4. 変数を初期化する 名前 mergefiles (配列)。
  5. それぞれに適用する の上 body/outputDocuments、 と 配列変数に追加 使用 base64ToBinary(...) 内部。
  6. PDF4me:複数のPDFファイルを1つのPDFファイルに結合する入力はバイナリファイルの配列、出力はPDFファイル1つ。
  7. Dropbox: ファイルの作成. 書く Merged_files.pdf Dropboxに戻る。

フローの概要全体​

Power Automate フローキャンバスには、上から下へ 7 つのアクションが積み重ねられています: フローを手動でトリガーする、パスを使用してファイルコンテンツを取得する、ドキュメントを生成する (複数)、変数を初期化する、配列変数に追加を含む各要素に適用する、複数の PDF ファイルを 1 つの PDF ファイルにマージする、ファイルを作成する

7つのアクション。各カードは設定が完了すると緑色のチェックマークが表示されます。PDF4meは中央に2回配置されています。1回は生成、もう1回は結合です。


ステップ0:DOCXテンプレート​

フローを実行する前に、テンプレートには適切なマージトークンが必要です。 <<[FieldName]>> プレースホルダーは受信者ごとに一度置き換えられます。スペルと大文字・小文字はJSONキーと完全に一致する必要があります。

テンプレートのプレビュー​

template.docx のプレビューには、ワークショップの招待状として配置されたマージトークン DebtorNumber、Salutation、Title、FirstName、LastName、CareOfAddress、Address、POBox、PostalCode、City、Country、HC_Name、SalutationText、HC_WoM_Date、HC_WoM_Time、HC_Street、HC_PostalCodeCity、HC_WoM_RegistrationDeadline、HC_Email、HC_Phone が表示されます。

DOCXファイルは二重山括弧構文を使用します。特殊文字やXMLは使用せず、PDF4meエンジンが直接読み取るリテラルなプレースホルダーのみを使用します。


ステップ1:フローを手動でトリガーする​

これまでの流れ: トリガーのみ。

  1. で パワーオートマタ クリック 作成する、 選ぶ 瞬時のクラウドフロー。
  2. 選ぶ フローを手動でトリガーする 引き金として。
  3. フローに名前を付けます (例: Bulk Invitation Mailout)そしてクリック 作成する。
  4. 現時点では、トリガー入力欄は空欄のままにしておいてください。実際の運用トリガー(HTTPリクエスト、SharePointリストの更新、スケジュールなど)は、フローの他の部分が正常に動作するようになったら、ここに設定してください。

ステップ2:Dropbox:パスを使用してファイルコンテンツを取得する​

これまでの流れ: トリガープラス ファイルコンテンツを取得します。

テンプレートのDOCXファイルを生のバイト列としてフローに読み込み、Generate Documentsがそれを直接処理できるようにします。

  1. クリック + 新しいステップ、 検索 Dropbox、 選ぶ パスを使用してファイルコンテンツを取得します。
  2. 接続する まだDropboxに登録していない場合は、登録してください。
  3. 設定する:
    • ファイルパス: /blog data/merge blog template/template.docx
    • コンテンツタイプを推測する: Yes
  4. 保存 フローを実行し、簡単なテストを実行します。アクションは、 File Content テンプレートバイナリを含むトークン。

ファイルコンテンツ構成を取得します​

Power Automate Dropbox パスを使用してファイルコンテンツを取得するアクションは、ファイルパス /blog data/merge blog template/template.docx、詳細パラメーター コンテンツタイプの推測 はい、接続 Dropbox に接続済みで構成されています。

「コンテンツタイプを推測する」を「はい」に設定すると、下流の PDF4me アクションがファイルを汎用ストリームではなく、実際の DOCX ファイルとして受け入れるようになります。


ステップ3:PDF4me:ドキュメントの生成(複数)​

これまでの流れ: トリガー、ファイルコンテンツの取得、ドキュメントの生成(複数)。

ここでは、1つのDOCXファイルとJSON配列が、1回のアクション呼び出しでN個のパーソナライズされたPDFファイルに変換されます。

  1. クリック + 新しいステップ、 検索 PDF4me、 選ぶ 文書を生成する(複数)。
  2. 接続する PDF4meにAPIキーで接続します(初回のみ)。
  3. 設定する アクションの上半分:
    • テンプレートファイルの種類: Docx
    • テンプレートファイル名: Test.docx (ラベルのみ、パスではありません)
    • テンプレートファイルデータ: 選ぶ ファイルの内容 ステップ2のトークン
    • 文書データタイプ: Json

ステップ3a:アクションの先頭​

Power Automate PDF4me ドキュメント生成 (複数) アクションは、テンプレート ファイルタイプ Docx、テンプレート ファイル名 Test.docx、テンプレート ファイル データ Dropbox ステップからのファイル コンテンツ、ドキュメント データタイプ JSON で構成されています。
  1. JSON配列を貼り付けてください の中へ 文書データテキストウォークスルーでは、2 人の受信者 (John Doe、X AB) を使用します。各オブジェクトには同じ 19 個のキーがあり、すべてのキーは、 <<[Token]>> DOCXテンプレート内。

ステップ3b:JSONペイロード​

Power Automateの「文書の生成」複数アクションの「文書データ」テキストパネルには、2つのレコードのJSON配列が表示され、どちらのレコードにも、DebtorNumber、Salutation、Title、FirstName、LastName、完全な住所フィールド、およびHC_Name、HC_WoM_Date、HC_Emailなどのホスト会社フィールドが含まれています。
[
{
"DebtorNumber": "100001",
"Salutation": "Mr",
"Title": "Dr.",
"FirstName": "John",
"LastName": "Doe",
"CareOfAddress": "c/o Accounting Department",
"Address": "123 Main Street",
"POBox": "PO Box 123",
"PostalCode": "10001",
"City": "New York",
"Country": "United States",
"HC_Name": "ABC Business Association",
"SalutationText": "Dear Dr. Doe",
"HC_Email": "[email protected]",
"HC_Phone": "+1-212-555-0100",
"HC_WoM_RegistrationDeadline": "2026-05-22",
"HC_Street": "500 Park Avenue",
"HC_PostalCodeCity": "10022 New York",
"HC_WoM_Date": "2026-05-29",
"HC_WoM_Time": "10:00"
},
{
"DebtorNumber": "100001",
"Salutation": "Mr",
"Title": "Dr.",
"FirstName": "X",
"LastName": "AB",
"CareOfAddress": "c/o Accounting Department",
"Address": "123 Main Street",
"POBox": "PO Box 123",
"PostalCode": "10001",
"City": "New York",
"Country": "United States",
"HC_Name": "ABC Business Association",
"SalutationText": "Dear Dr. Doe",
"HC_Email": "[email protected]",
"HC_Phone": "+1-212-555-0100",
"HC_WoM_RegistrationDeadline": "2026-05-22",
"HC_Street": "500 Park Avenue",
"HC_PostalCodeCity": "10022 New York",
"HC_WoM_Date": "2026-05-29",
"HC_WoM_Time": "10:00"
}
]
  1. 設定する 下半分:
    • フィールドメタデータ: 空欄のままにしてください(通貨、日付、または数値の書式設定用、オプション)
    • 出力タイプ: PDF
    • PDFテンプレートを編集可能にする: No

ステップ3c:出力タイプ​

Power Automate ドキュメント生成 複数の下部セクションにフィールドメタデータが空白で表示され、出力タイプは PDF ドロップダウン、PDF テンプレートを編集可能に保持するかどうかはいいえ、PDF4me Connect に接続されています
  1. 保存してテストするアクションが戻ります body/outputDocuments受信者ごとに1つのオブジェクトの配列。各オブジェクトには streamFile パーソナライズされたPDFをbase64文字列として格納するプロパティ。

ヒント。 JSONキーが欠落している場合、出力PDFではエラーではなく空の文字列として表示されます。これはデータの一部が欠落している場合には許容されますが、タイプミスがあってもエラーとして表示されません。公開前にトークンリストとJSONキーを比較してください。どちらも大文字と小文字を区別します。


ステップ4:変数マージファイルの初期化​

これまでの流れ: トリガー、ファイルコンテンツの取得、ドキュメントの生成(複数)、変数の初期化。

マージ処理ではバイナリファイルのコレクションが必要です。それらを格納する空の配列を作成してください。

  1. クリック + 新しいステップ、 選ぶ 変数を初期化する。
  2. 設定する:
    • 名前: mergefiles
    • タイプ: Array
    • 価値: 空欄のままにしてください

変数設定を初期化する​

Power Automateの変数初期化アクションは、名前がmergefiles、タイプがArray、値フィールドが空になるように構成されています。

変数の初期化は、それを必要とする最初の「各項目に適用」の前に必ず実行されます。Power Automate は、設計時にこの動作を強制します。


ステップ5:各要素に適用し、配列変数に追加する​

これまでの流れ: トリガー + ファイルコンテンツの取得 + ドキュメントの生成 (複数) + 変数の初期化 + 各項目への適用。

PDFファイルをループ処理し、それぞれをバイナリバッファに変換する。

ステップ5a:それぞれに適用する(ソースを選択)​

  1. クリック + 新しいステップ、 選ぶ それぞれに適用する。
  2. 設定する:
    • 前の手順から出力を選択します: 選ぶ body/outputDocuments 「ドキュメントの生成(複数)」アクションから
Power Automate の「複数のドキュメントを生成する」アクションで、「前のステップからの出力を選択」を body/outputDocuments に設定して、各アクションに適用します。

ステップ5b:配列変数に要素を追加する(ループ内)​

  1. 各コンテナに適用する内をクリック アクションを追加する、 選ぶ 配列変数に追加。
  2. 設定する:
    • 名前: mergefiles
    • 価値 (表現、クリック) fx): base64ToBinary(items('Apply_to_each')?['streamFile'])
Power Automate の配列変数に追加アクションは、式エディターに表示されるアイテムの Apply_to_each streamFile に対して、名前 mergefiles と値 base64ToBinary 式を使用して構成されています。

これが全てを結びつける唯一の線だ。 ドキュメント生成(複数)は、base64文字列を出力します ストリームファイル複数のPDFファイルを結合するには、バイナリバッファが必要です。 base64ToBinary(...) は橋渡し役です。これがないと、マージ処理で「無効なコンテンツ」というエラーが発生します。


ステップ6:PDF4me:複数のPDFファイルを1つのPDFファイルに結合する​

これまでの流れ: トリガー + ファイルコンテンツの取得 + ドキュメントの生成 (複数) + 変数の初期化 + 各項目への適用 + 複数の PDF の結合。

これで配列全体が入力され、1つのPDFが出力されます。

  1. 「各ループに適用」の下にある + 新しいステップ、 検索 PDF4me、 選ぶ 複数のPDFファイルを1つのPDFファイルに結合する。
  2. 設定する:
    • 本文/ドキュメントコンテンツ: 選ぶ mergefiles 変数トークン
    • 出力ファイル名: Test.pdf

マージアクションの設定​

Power Automate PDF4me 複数の PDF ファイルを 1 つの PDF ファイルに結合します。Body/docContent を mergefiles 変数に設定し、出力ファイル名を Test.pdf に設定します。式ピッカーを開き、変数 mergefiles と各 body/outputDocuments への適用を表示します。
  1. このアクションは、PDF を連結します。 配列の順序これはJSONの順序です。下流のコンシューマーが特定の順序(アルファベット順、債務者番号順、地域順など)を期待している場合は、ステップ3の前にJSONをソートしてください。そうすれば、残りのフローはその順序を維持します。

ヒント。 実行ごとに異なる出力ファイル名が必要ですか?動的に構築するには concat('Invitations_', utcNow('yyyy-MM-dd'), '.pdf') 出力ファイル名フィールドに入力します。結合されたPDFファイルには日付スタンプが付与され、再実行しても上書きされません。


ステップ7:Dropbox:ファイルの作成​

これまでの流れ: トリガー、ファイルコンテンツの取得、ドキュメントの生成(複数)、変数の初期化、各項目への適用、複数の PDF の結合、ファイルの作成。

結合したPDFファイルをDropboxに書き戻します。

  1. クリック + 新しいステップ、 選ぶ Dropbox、 ファイルを作成する。
  2. 設定する:
    • フォルダパス: /blog data/merge blog template/output
    • ファイル名: Merged_files.pdf
    • ファイルの内容: 選ぶ ファイルの内容 ステップ6(複数のPDFを結合する)からのトークン
  3. 保存 流れ。

ファイル構成を作成する​

Power Automate Dropbox の「ファイルの作成」アクションは、フォルダー パス /blog data/merge blog template/output、ファイル名 Merged_files.pdf、ファイル コンテンツが「複数の PDF ファイルを結合する」アクションから構成されています。

フローを実行して検証する​

  1. クリック テスト 右上で、 手動で、 クリック テスト、 それから フローを実行する。
  2. フロー実行パネルは、アクションが実行されるたびに緑色に変わります。「ドキュメントの生成(複数)」は、通常、単一ページテンプレートのレコードごとに1秒かかります。複数のPDFを結合すると、受信者が2人の場合、さらに1~2秒かかります。
  3. Dropboxを開く /blog data/merge blog template/output/. ファイル Merged_files.pdf ありますか。

出力は、並べて表示されます。​

Merged_files.pdf 1 ページ目: 債務者番号 100001 ジョン・ドウ博士宛ての招待状。住所: 123 Main Street, PO Box 123, 10001 New York, United States。ワークショップ開催日時: 2026 年 5 月 29 日午前 10 時、会場: 500 Park Avenue 10022 New York、登録締切日: 2026 年 5 月 22 日。
1ページ目、パーソナライズ済み ジョン・ドゥ。
Merged_files.pdf 2ページ目:債務者番号100001のX AB博士宛ての招待状(住所は同じでワークショップの詳細も同一)、複数のレコードでマージフィールド置換がエンドツーエンドで機能した証拠
2ページ目、パーソナライズ済み X AB。

実際に何を作ったのですか? 単一のDOCX形式のメールとJSON形式の受信者リストを、印刷、署名、アーカイブ、添付が可能な統合PDFファイルに変換する、ゼロタッチ一括メール送信ツールです。受信者が2人でも2,000人でも、フィールド値を変更することなく同じパターンで処理できます。このパターンは、Make(イテレータとPDF4me Mergeモジュール)とZapier(Zapierのループ処理とPDF4me Mergeアクション)の両方で動作します。


再構築せずに追加できる一般的なバリエーション​

実際のソースからのトリガー
交換する フローを手動でトリガーする と HTTPリクエストを受信するとCRM、ERP、またはバックエンドは、JSON配列を直接POSTします。その他の部分はすべて同じです。
結合されたPDFをメールで送信する
追加 Outlookでメールを送信する(バージョン2) ステップ6の後。結合されたPDFを添付します。 Merged_files.pdf そして、郵送物はDropboxを経由することなく、財務、運用、または印刷部門に直接送られます。
保存する前にデジタル署名してください
PDF4meを挿入 デジタル署名(PDF) ステップ6とステップ7の間で、結合されたPDFはX.509証明書で署名され、署名済みのバイナリがDropboxに保存されます。
PDF/A形式でアーカイブ
PDF4meを挿入 PDF/A を作成する ステップ6とステップ7の間はコンプライアンスに準拠 PDF/A-2bDropboxに保存されたコピーは、アーカイブに適した状態であり、ISO 19005規格に準拠しています。

トラブルシューティング​

「無効なコンテンツ」を含むマージ操作エラー

の 価値 配列に追加の式はラップされていません base64ToBinary(...)変換を行わないと、マージアクションはバイナリバッファではなくbase64文字列を受け取ります。配列に追加を再度開き、式エディタに切り替えて貼り付けます。 base64ToBinary(items('Apply_to_each')?['streamFile']) 原文のまま。

出力PDF内の空欄

JSONキーがテンプレートトークンと一致しません。「ドキュメント生成(複数)」では、不足しているキーを空の文字列で置き換えます。これは許容範囲は広いものの、入力ミスがあってもエラーが表示されません。DOCXトークンリストとJSONキーを比較してください。どちらも大文字と小文字を区別します。

結合されたPDFには1ページのみが含まれています

「各項目に適用」ループが間違ったソースを反復処理しています。ループを開いて確認してください。 前の手順から出力を選択します を指差す 本文/出力ドキュメント (配列全体)であって、1つのレコードの単一のプロパティではない。

結合されたPDFのページ順序が間違っています

ページ順序は JSON 順序と一致します。ドキュメント生成 (複数) の前に JSON 配列をソートします。 選択 または 作曲する 受信者が必要な順序で届くようにアクションを実行します。


次のステップ​

Power Automate でのあらゆる一括パーソナライズメール配信には、同じ 7 つのステップ (トリガー、テンプレートの取得、バッチの生成、配列へのループ、マージ、保存) が機能します。1 通配信すれば、次の配信はほとんどコストがかかりません。