こんにちは。
最近ベランダでバジル栽培が始まり、ガパオライスが食べ放題になった波多野です。

早速ですが、先日コラボフローに添付ファイルダウンロードAPIという新たな操作が追加されましたので、この「ファイルAPI」とWebhookを活用して、コラボフローで承認された契約書をクラウドサインに送るという連携を作ってみたいと思います。

コラボフローとクラウドサインの「中継役」となるiPaaSには、コラボフローとガルーンの通知連携記事と同じくMicrosoft Power Automateを利用します。

1.クラウドサイン側の設定

クラウドサインとの連携を行うには、クラウドサイン Web APIが必要です。連携を設定する際は事前に「利用ガイド」に目を通して注意事項を確認すると共に、本Web APIを利用するために必要となる「クライアント ID」を発行しておいてください。

以下、その他のクラウドサイン利用環境が整っている前提で、話を進めます。

※クライアントIDが外部に漏れると、第三者による成りすましが可能になりますので、お取り扱いには十分ご注意ください。

2.Power Automateの設定

次に、コラボフローとガルーンの中継役となるPower Automateの設定を行います。

今回のクラウドサイン連携は「クラウドサイン Web API利用ガイド」の「5.1. 合意する内容が PDF に記述されていて、入力項目を利用しない場合」のパターンで処理を行います。

そのため、Power Automateでは、上記5.1に記載の順番でクラウドサインAPI処理を設定していく事になりますが、全て説明すると長くなってしまうので、例によってあらかじめ準備した定義ファイルをインポートして設定を進めることにします。

※このPower Automateのフロー定義ファイルや、後で紹介するコラボフローの電子契約申請用フォームインポートファイルはご提供可能ですので、ご興味のある方はこちらからお問い合わせください。

まずはPower AutomateのTOPページにアクセスし、左のメニューから「マイフロー」をクリックして、画面上部にある「インポート」から、設定ファイルのインポートに進みます。

パッケージのインポート(ファイル選択)

ファイルをアップロードすると、インポートの設定画面が表示されますので「パッケージコンテンツの確認」エリアにある(1)スパナアイコンをクリックし、表示される「インポートの設定」ウインドウから、(2)セットアップを「新しく作成する」に変更して、(3)保存をクリックします。

パッケージのインポート(保存)

最後に、画面下部にある「インポート」ボタンをクリックしてインポートを開始します。インポートが完了したら、インポートしたフローを開いて、環境固有の値を設定します。

環境固有の値を設定する

(1)コラボフローURL名の設定
Webhookの送信元となるコラボフローのURL名(インスタンス名)を指定します。

(2)コラボフロー認証文字列の設定
コラボフローRESTAPIの認証キーを指定します(Webhookでは送信されないコラボフローの添付ファイルを取得するために必要となります。)認証キーを指定する際には先頭に文字列「Basic 」を含める必要があります。認証キーの詳細については「コラボフロー REST APIを利用する – 共通仕様」をご覧ください。

(3)クラウドサインサーバー名の設定
クラウドサインのサーバー名を指定します。サーバー名はクラウドサインWebAPI仕様書内の「Servers」リストボックスでご確認いただけます。

(4)クラウドサインクライアントIDの設定
クラウドサインのクライアントIDを指定します。

※今回のフローでは、頻繁に発生する認証情報をまとめるため、また接続を簡単に試していただけるようにするために「変数の初期化」を利用して最初に認証情報をセットするように作っています。しかしこの方法では、フローにアクセスできるユーザーがいれば実行履歴から認証情報を確認する事ができてしまいます。

運用の際には面倒ですが認証情報をまとめずに、HTTPコネクタのヘッダーに都度認証情報を直接記入して「セキュリティで保護された入力/出力」をONにする事で、実行履歴から認証情報が見えてしまうのを防ぐことができます。

また認証情報をAzure Key Vaultに保存しておいて、それをPower Automateから呼び出すようにすると、よりセキュアな運用を行う事ができると思いますので、実運用の際にはご検討ください。(※ただし、この辺りは僕の方では未検証です。)

また、コラボフローからのWebhook送信先となる「HTTP 要求の受信時」アイコンを開いて、「HTTP POSTのURL」をコピーし、記録しておきます。

HTTP POSTのURLを取得する

対象のクラウドサインサーバーにBASIC認証が必要となる場合は「クラウドサインアクセストークン取得」のステップを開き「認証」に「基本」を選択して、ユーザー名とパスワードを入力してください。

PowerAutomateクラウドサインアクセストークン設定.png

上記の操作が全て終わったら「保存」をクリックします。
これでPower Automateの設定は完了です。

3.コラボフローの設定

次にコラボフロー側の設定を行います。

こちらも既に作成済みの「フォーム-電子契約申請書.zip」をインポートします。
フォームのインポート操作については、別途サポートサイトの記事「フォームをインポート・エクスポートするには」をご覧ください。

フォームをインポートすると、下図のようなレイアウトの電子契約申請書が作成されます。

電子契約申請書

次に経路を下記のように作成します。この経路では、最初に上長によって「そもそもこのような契約締結を進めるべきか?」について承認を得た後、法務で契約書の内容をチェックし、問題なければクラウドサインでの契約を締結する、という仕事の流れを作っています。

電子契約申請書経路

最後の段階名を「契約締結待ち」としているのがポイントで、Power Automate側ではWebhookが「契約締結待ち」の段階から届いたかどうかをチェックし、クラウドサインに添付ファイルを送信するべきかどうかを判断するようにします。

最後に、Webhookの設定を行います。先ほどインポートした「電子契約申請書」の経路を開き「(1)Webhook」タブを選択し、(2)新規追加ボタンをクリックします。

Webhookの設定

Webhookの設定画面が表示されますので、(1)Webhook名に任意の名前を入力し、(2)通知先のWebhook URLにPower Automateで控えておいた「HTTP POSTのURL」を入力します。通知条件には「受信時」を指定して、最後に「保存」ボタンをクリックして設定を保存します。

Webhookの詳細設定

以上で、全ての設定が完了しました。

実際の動作

作成した「電子契約申請書」を使って、申請を行います。

申請書が最初の「法務チェック」段階に届いただけでは、まだクラウドサインに契約書は送信されません。

法務チェック段階では送信されない

法務チェックが完了し、申請書が「契約締結待ち」段階に届くと、添付の契約書がクラウドサインに送信されます。

これは、次のようにPower Automate側で、コラボフローの段階が「契約締結待ち」にならないとクラウドサイン連携が行われないように制御しているからです。

Power Automateでの制御

コラボフローの段階が「契約締結待ち」になると、Power Automateでの処理が先に進むようになり、クラウドサインに添付の契約書が送信されます。

クラウドサイン側の契約書

クラウドサインでの契約が完了したら「契約締結待ち」段階のユーザーがコラボフローにログインし、クラウドサインからダウンロードした契約済みPDFと合意締結証明書をコラボフローに添付する、という運用を想定しています。

締結済み文書の添付

まとめ

このように、Webhookと新公開のファイルAPIを利用する事で、コラボフローと他サービスの連携を、より自由に行う事ができるようになりました。

今回は設定済みの定義ファイルをインポートして進めたため、細かい説明はできませんでしたが、Power Automateでコラボフローの添付ファイルを取得してクラウドサインに送る部分などは、実は単純な設定だけでは実現できない処理だったりします。(※この辺りは完全にPower Automateに関する設定ノウハウになってしまうので、本ブログとは別に、個人で発信していこうかなと考えています。)