Power Automate と Power Apps
AutomaDoc コネクタを使うと、Microsoft のワークフローツールからテンプレートを使えます。フローがテンプレートのプレースホルダーの値(SharePoint リストのアイテム、Dataverse の行、Excel の行、フォームの回答など)を送ると、完成したドキュメントが返ってきます。そのままドキュメントライブラリに保存したり、メールに添付したり、Teams に投稿したりできます。
Power Automate、Power Apps(フロー経由)、Azure Logic Apps、Copilot Studio で動作します。ドキュメント API の上に作られているため、名前、ループ、画像、条件など、API がデータに対して行うことはすべてここでも同じです。
- テンプレート。
{Customer}、{Invoice_No}、{#Items}…{/Items}ループなどのプレースホルダーを入れて、会社ポータルの テンプレート、Excel アドイン、または Lark Base 拡張機能で作成します。コネクタには、テンプレートの最後のアップロードから読み取ったプレースホルダーごとに1つの入力が表示されます。 - 会社 API キー。 会社の管理者が、会社ポータルの 会社 → API キー で作成します。キーは
amk_で始まり、一度だけ表示されるので、安全な場所にコピーしてください(テンプレート自身のキーではテンプレートを一覧できないため、コネクタには会社のキーが必要です)。
コネクタを追加する
Section titled “コネクタを追加する”AutomaDoc コネクタが認定コネクタに掲載されるまでは、カスタム コネクタとして環境に追加してください。Power Platform 環境ごとに 1 回行います。
- コネクタの定義を入手します。ダウンロードする コネクタ定義をダウンロード か、そのアドレスを使います:
https://api.automadoc.cc/api/v1/power-platform.swagger.json - Power Automate で Data → Custom connectors(または More → Discover all → Custom connectors)を開き、New custom connector を選んで、Import an OpenAPI file(ダウンロードしたファイル)または Import an OpenAPI from URL(アドレスを貼り付け)を選びます。名前を
AutomaDocにして Continue を選びます。 - General タブは定義から入力されます(ホスト、ベース URL、説明)。変更は不要です。
- Security タブで、認証の種類が API Key、パラメーター名が
X-Webhook-API-Key、場所が Header であることを確認します(定義に含まれています)。パラメーター ラベルが空の場合はAPI Keyと入力します。Create connector を選びます。 - Test タブで New connection を選び、会社の API キーを貼り付けて接続を作成します。ListTemplates 操作をテストすると、
200でテンプレートが返されます。
フローでアクションを追加し、AutomaDoc を検索すると、カスタム コネクタの中に表示されます。認定コネクタが掲載されたら、アクションを追加するときに AutomaDoc を検索し、接続を求められたらキーを貼り付けてください。
組織のデータ損失防止(DLP)ポリシーでカスタム コネクタがブロックされている場合、Power Platform 管理者はホスト api.automadoc.cc でこのコネクタを許可できます。会社ポータルの Power Automate ページにも同じ手順とダウンロードがあります。
手順例: SharePoint の新しいアイテムごとにドキュメントを作成
Section titled “手順例: SharePoint の新しいアイテムごとにドキュメントを作成”このフローは、SharePoint リストにアイテムが追加されるたびに請求書を作成し、PDF をドキュメントライブラリに保存します。
- トリガー。 SharePoint → When an item is created で自動化したクラウドフローを作成し、サイトとリスト(例: Invoices)を選びます。
- ドキュメントを生成する。 AutomaDoc → Generate a document を追加します。
- Template: 一覧から請求書テンプレートを選びます。
- テンプレートの入力がその下に表示されます。それぞれをトリガーの動的なコンテンツから割り当てます。
Invoice_No← Title、Customer← Customer、Total← Amount などです。 - Output Format:
pdf。 このステップはドキュメントの準備ができるまで待ち、次のステップにDocument ID、File Name、Status、Download URLを渡します。
- ダウンロードする。 AutomaDoc → Download document を追加し、Document ID ← 前のステップの
Document IDを割り当てます。 - 保存する。 SharePoint → Create file を追加します。
- Folder Path: ライブラリ。例:
/Shared Documents/Invoices。 - File Name: Generate a document の
File Name。 - File Content: Download document の
File Content。
- Folder Path: ライブラリ。例:
- フローを保存し、リストにアイテムを追加します。数秒後にライブラリに PDF が表示されます。
メールで送る場合は、Office 365 Outlook → Send an email (V2) を使い、添付ファイルの名前に File Name、内容に File Content を指定します。
承認、Microsoft Forms の回答、アイテムへのファイル添付など、そのまま使えるフローは Power Automate のレシピにまとめています。
明細行: テンプレートのループ
Section titled “明細行: テンプレートのループ”テンプレート内の {#Items}…{/Items} の表の行は、列ごとに1つのフィールドを持つリスト入力 Items として表示されます。別のリスト(請求書の明細行など)から入力するには、入力を entire array モードに切り替え、列名をキーとするオブジェクトの配列を渡します。たとえば Get items から Data Operation → Select で作成します。
| Select: map のキー | 値 |
|---|---|
Product |
Title |
Qty |
Quantity |
Price |
UnitPrice |
Dataverse または Excel から
Section titled “Dataverse または Excel から”トリガー以降のステップは同じで、変わるのはトリガーと動的なコンテンツだけです。
- Dataverse: When a row is added, modified or deleted(変更の種類は Added)を使い、行の列をテンプレートの入力に割り当てます。
- Excel Online (Business): For a selected row(Excel から実行)、または List rows present in a table の後に Apply to each を使います。行ごとに Generate a document を1回実行すると、行ごとに1つのドキュメントが作られます。
複数の行から1つのドキュメント
Section titled “複数の行から1つのドキュメント”複数のレコードから1つのドキュメント(一覧、レコードごとに1ページ、ラベル)を作るよう設定したテンプレートは、代わりにリストを受け取ります。入力は Records で、行ごとに1つのエントリを持ち、このステップはそれらすべてから1つのドキュメントを作ります。明細行と同じように、List rows や Get items の行を Select に通して渡します。1つのドキュメントにつき最大500行です。
Power Apps
Section titled “Power Apps”フローでドキュメントを作り、アプリからそのフローを呼び出します。
- Power Apps (V2) トリガーでインスタント クラウド フローを作成し、アプリが送る値のテキスト入力を追加します。
- Generate a document を追加してそれらの入力を割り当て、最後に Respond to a Power App or flow で
Download URLを返します(または上記のようにファイルを保存し、そのリンクを返します)。 - アプリでは、ボタンから呼び出します:
Set(doc, GenerateInvoice.Run(txtCustomer.Text, txtTotal.Text)); Launch(doc.downloadurl)。
フローはドキュメントを待ちます。コネクタを直接呼び出すアプリは待たされません。ドキュメントがまだ processing の状態で返ってくるので、完成するまで Get document status を呼び出す必要があります。
Logic Apps と Copilot Studio
Section titled “Logic Apps と Copilot Studio”同じコネクタが Logic Apps(Standard と Consumption)でも同じアクションで動作します。Copilot Studio では、Generate a document をエージェントのツールとして追加します。エージェントは会話の内容からテンプレートの入力を埋め、ユーザーに Download URL を渡せます。
生成ステップの待ち方
Section titled “生成ステップの待ち方”Generate a document は、Microsoft のワークフローツールが自動で従うポーリングのパターンを使います。リクエストにはポーリング先のリンク付きで 202 Accepted が返り、プラットフォームはドキュメントが完成するまで5秒ごとにそれを読み、完成したドキュメントで処理を続けます。ドキュメントが失敗するとステップも失敗し、その理由(閉じられていないループ、取得できなかった画像など)がステップの出力に表示されます。失敗したドキュメントがファイルとして次のステップに渡ることはありません。Get document status と Download document もそのドキュメントでは失敗します(DOCUMENT_FAILED)。
ステップの Asynchronous pattern 設定をオフにすると、ドキュメントがまだ processing のまますぐに返ります。Document ID を指定して Get document status を追加してください。このステップも同じ方法でドキュメントを待ちます。このステップの非同期パターンもオフにすると、すぐに応答します。その場合は、Delay(5秒)と Get document status を含む Do until(Status が processing でなくなるまで)で自分で待ちます。ドキュメントが失敗すると Get document status も失敗する(422)ため、ループはそのエラーで止まり、failed を読み取ることはありません。次のステップで Configure run after(has failed)を設定して対処するか、ループを Scope に入れてください。
- テンプレートごとに1分あたり60リクエスト、会社ごとに1分あたり600ドキュメント(ドキュメント API と HTTPトリガーと共有)。テンプレートの一覧は会社ごとに1分あたり60回。ステータスの読み取りとダウンロードは、ドキュメントごとに1分あたりそれぞれ60回。上限を超えるとステップは
429を返し、プラットフォームの再試行ポリシーによって再試行されます。 - 画像の入力は、公開された Web アドレス(
https://またはhttp://)である必要があります。ログインが必要な SharePoint や OneDrive のリンクは取得できません。画像を公開リンクで共有するか、別の場所でホストしてください。 - ドキュメントは、会社が生成したドキュメントを保持する期間(プランによって決まります)だけ保持されます。リンクを保存するのではなく、同じフローの中でファイルをダウンロードしてください。
- ドキュメントの署名依頼と、PDF への添付ファイルの結合は、コネクタの入力ではなくドキュメント API で利用できます。
トラブルシューティング
Section titled “トラブルシューティング”| 表示される内容 | 理由 |
|---|---|
テンプレートの一覧が空、または接続が COMPANY_KEY_REQUIRED で失敗する |
接続にテンプレート自身のキーが使われています。会社 API キーで接続を作成してください |
| プレースホルダーに入力がない | 入力はテンプレートの最後のアップロードから読み取られます。テンプレートをもう一度アップロードしてください |
QUOTA_EXCEEDED |
今月のドキュメントが残っていません。パックかシートを購入してください |
ステップが DOCUMENT_FAILED で失敗する |
ドキュメントを作成できませんでした。ステップの出力に理由が表示されます |
Download document が DOCUMENT_NOT_READY で失敗する |
生成ステップの非同期パターンがオフになっているため、ドキュメントがまだ作成中でした。ダウンロードの前に Get document status を追加してください |
その他の拒否はすべて、理由とともにドキュメント API リファレンスに記載しています。