Microsoft Power Automateを使用した、エンベロープ完了後の一般的なタスク
本ブログ記事では、Microsoft Power Automateを使用したエンベロープ完了後の一般的な6つのタスクを紹介します。これには、フローによるトリガー、文書フィールドデータの取得、文書の取得について、それぞれ標準および高度なオプションが含まれています。
一般的な6つのタスク
標準 |
高度 |
|
フローによるトリガー |
||
フィールドデータの取得 |
||
文書の取得 |
今回ご紹介するタスクは、お客様の特定のビジネスニーズを満たすために簡単に使用することができます。以下はその一例です。
- 調達部門:関連する契約データと添付ファイルの収集、SharePointドキュメントライブラリの更新
- 人事部門:新入社員がオンボーディングパック(入社手続きに必要な書類一式)に記入、署名したことをトリガーにして、社員情報を収集し、社員プロファイルを作成
- 営業部門:契約が成立した時点で新しいライセンスをプロビジョニングし、主要なデータをMicrosoft Dynamics に書き戻し
トリガーの作成
標準:トリガーステップの追加
- Power Automate にて [作成] をクリックし、[自動化したクラウドフロー] を選択します。
- 任意のフロー名を設定し、フローのトリガーとして [エンベロープの状態が変更されたとき(Connect)(V3)(又は最新のバージョン)] を選択して、[作成] をクリックします。
- … をクリックし、[+新しい接続の追加] より、使用するDocuSignアカウントに接続します。
接続後、[取引先企業] にて、接続するDocuSignアカウントを設定し、[接続名] に任意の名称を入力して、[エンベロープイベント] を “envelope-completed” にします(今回、エンベロープ完了をトリガーとして設定するため、[エンベロープイベント] を設定します)。
高度:トリガー条件を設定
上記で設定した標準トリガーは、無条件にエンベロープが完了ステータスとなる度に呼び出されます。追加のフィルタを設定することで、条件を満たした特定のエンベロープのみをトリガーすることも可能です。以下の例では、特定のHRオンボーディングプロセスのエンベロープ(完了したもの)に対してのみトリガーされます。
- 標準:トリガーステップの追加 の設定を完了しておきます。
- … をクリックし、[設定] をクリックします。
- [トリガーの条件] で、 [+追加] をクリックします。
- フィルタを追加し、特定の条件下でトリガーを実施するよう設定します。通常、エンベロープ(文書)の種類が条件としてよく利用されるため、今回はエンベロープカスタムフィールドをメタデータとして利用します。以下は、エンベロープカスタムフィールドを利用した一例です。
- エンベロープカスタムフィールドラベル = プロセス
- エンベロープカスタムフィールドの値 = HRオンボーディング
- トリガーの条件:
@equals(triggerBody()?['data']?['envelopeSummary']?['customFields']?['プロセス'],'HRオンボーディング')
フォーマットオプションの詳細(例えば、文書カスタムフィールドによるフィルタリングも可能です)は、DocuSign eSignature for Microsoft Power Automate をご確認ください。
フィールドデータの取得
標準:単一の受信者
以下は、エンベロープの受信者が一人である場合の標準的な処理です。宛先が複数ある場合は、各出力データを条件(後述)でくくる必要があります。
- [新しいステップ] をクリックし、操作として [作成] を選択します。ここでは、[データラベル] が “Mobile” というテキストフィールドの値を取得するため、
item()?['tabs']['Mobile']
と入力します。注)これは Mobile(携帯電話)の値を出力するための操作となります。任意のレコード(SharePointのリストやDynamicsのアカウントレコードなど)に挿入するためには、別途手順を追加する必要があります。
高度:複数の受信者
- ステップを追加する条件を設定:例えば、“Mobile” というデータラベルのテキストフィールドからデータを取得するとします。取得する前に、先ずはそのフィールドが存在するかどうかをチェックする必要があります(この設定をしない場合、エラーとなります)。
- 左側の値:タブ
- 状態:次の値を含む
- 右側の値:Mobile
注)Power Automate は [条件] を自動的に Apply to each ループに追加します。これは、各受信者のすべてのタブ(フィールド)をループすることを意味します。どのフィールドを取得するかは制御できるため、このループは動作には影響しません。
- “はいの場合” の下に [作成] を追加し、
item()?['tabs']['Mobile']
と入力して、“Mobile” というデータラベルのテキストフィールドの値を取得します。注)これは Mobile(携帯電話)の値を出力するための操作となります。任意のレコード(SharePointのリストやDynamicsのアカウントレコードなど)に挿入するためには、別途手順を追加する必要があります。
タブデータからより多くのデータを取得したい場合(例: 住所、社員番号など)、各タブについて上記の手順を繰り返すだけで、条件を追加してタブの値を出力することができます。
代替のオプション:一人の受信者に属するタブが多数ある場合、タブ毎に条件を追加するのではなく、受信者に対して一つの条件を追加し(最初の受信者に対して、
ルーティング順序
= 1
など)、その一つの条件内で受信者のすべてのフィールドを出力するのも一つの方法です。
文書の取得
ここでは、エンベロープ内の文書を取得することができます。署名が完了した文書、補足文書、添付書類、完了文書などが含まれます。
標準:全ての文書を取得
ここでは、エンベロープ内の全ての文書を一つのPDFとして抽出します。SharePointでのアーカイブ、SharePointリスト内のレコードへの追加、MS Dynamicsのカスタムワークフローの一部に最適です。
- エンベロープ内の文書を取得するステップの追加:アカウントを選択し、エンベロープIDを追加して、履歴と完了証明書(監査証跡)を含めるかどうかを選択します。
高度:添付ファイルのみ取得
添付ファイルのみを、残りの文書とは別に抽出する必要がある特定のユースケースがあるかもしれません。例えば、建設スタッフが現場でプロジェクトを開始する前に雇用証明書を収集する場合や、採用の場面において、添付された履歴書をアーカイブする必要がある場合などです。
- DocuSignにログインし、[設定] > [送信設定] にて、[添付資料を各文書に添付する] のチェックボックスがオフになっていることを確認します。
- カスタムコネクタの作成:こちらのブログの “Step1: DocuSign Setup” と “Create a Custom Connector” を参考に、カスタムコネクタを作成します。
- 定義の追加:上記ブログの “Create a Custom Connector” で解説している “Definition” にて、下記2つの操作を追加します。
- 概要:List Documents
- Verb:
GET
- URL:
https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents
- Headers:
Content-Type application/json
- Verb:
- 概要:Get Document
- Verb:
GET
- URL:
https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}
- Headers:
Content-Type application/json
- Verb:
- 概要:List Documents
- 3 のステップで作成したカスタムコネクタ、List Documentを追加します。
- accountId:送信者のアカウントID
- envelopeId:エンベロープID
- ステップの追加:JASON の解析
- コンテンツ:Body(上記 List Documentのステップより)
- スキーマ:
{ "type": "object", "properties": { "envelopeId": { "type": "string" }, "envelopeDocuments": { "type": "array", "items": { "type": "object", "properties": { "documentId": { "type": "string" }, "documentIdGuid": { "type": "string" }, "name": { "type": "string" }, "attachmentTabId": { "type": "string" } } } } } }
注)これは、執筆時点でのスキーマです。ほとんどの実装で動作しますが、問題が発生した場合は、このJSONの解析ステップを空白の状態でテスト実行し、このフローをトリガーとすることができます。フローの出力には、サンプルコードが含まれます。同じコードをインポートすると、Power Automateがお客様のセットアップと現在のREST APIバージョンに特化したスキーマを生成します
- ステップの追加:“envelopeDocuments” を出力するよう設定します。
- 条件のステップを追加します。左:現在のアイテム、中央: 次の値を含む、右: attachmentTabId と設定します。
- “はいの場合” 、作成したカスタムコネクタ、Get Document を追加します。
- accountId:送信者のアカウントID
- envelopeId:envelopeId
- documentId:documentId
- [ファイルの作成] ステップの追加:各添付ファイルを個別にSharePointフォルダに保存します。[サイトのアドレス]、[フォルダーのパス] を設定し、[JSONの解析] ステップで使用した変数を使用して、一意の [ファイル名] を設定します。[ファイルコンテンツ] については、Get Documentsのステップの body(本文)となります。
この添付ファイルを取得するための例は、他のニーズを満たすためのベースにもなります。
- 各添付ファイルを識別して、別々のフォルダにアップロード(if attachmentTabId = [guid] then…)
- 完了証明書のみ、または署名済み文書(PDF)のみ取得
以上となります。ぜひ、今回ご紹介した機能を使ってみてください!
追加リソース(英語)
- DocuSign for MS Power Automate Guide
- DocuSign Developer Center
- @DocuSignAPI on Twitter
- DocuSign for Developers on LinkedIn
- DocuSign for Developers on YouTube
- DocuSign Developer Newsletter
※本記事は「Expanding Power Automate Series: Common post-signing tasks」の日本語抄訳です。