PowerAutomateを使って、kintoneからクラウドサインの契約書を送ってみた。
記事概要
PowerAutomateのクラウドフローを使って、kintoneからクラウドサインの契約書を送ってみました。
kintoneのレコードにPDFを添付して保存。その後Powerautomateを通じて、クラウドサインの契約書を送るまでのプロセスです。クラウドサイン上での締結結果をkintoneに書き戻す部分は、おいおい別記事で書こうと思います。
自社でもこの記事の内容を実現してみたい。という方がおみえでしたら、kintoneスポット開発無料相談フォームから、ぜひお問い合わせください。
手順
- クラウドサイン側で事前準備(クライアントIDの発行)
- kintoneアプリ作成
- PowerAutomateでトリガ準備(以下プロセス全てPowerAutomate)
- アクセストークンの取得
- 書類の作成
- ファイルの追加
- 宛先の追加
- 書類の送信とkintoneへのステータス更新
1.クラウドサイン側で事前準備(クライアントIDの発行)
事前準備及びおおまかな流れは、クラウドサインの下記ガイドが詳しいです。
まずは、クライアントIDを発行して、それを記録しておきましょう。

2. kintoneアプリ作成
kintoneアプリを作成します。

必須項目は、書類のタイトル、締結先の名前、締結先Email、締結予定のPDFファイルです。ステータスについては、まずは下書きにしておいて、クラウドサインで契約書送付が成功したら、書き換える予定です。
3. PowerAutomateでトリガ準備(以下プロセス全てPowerAutomate)
PowerAutomateのクラウドフローで、kintoneにレコード追加されたときのトリガを準備します。

4. アクセストークンの取得
クラウドサインのアクセストークンを取得します。
ここからは、クラウドサインのAPIを多く使用していきます。
アクセストークンの取得で、使用するAPIは、POST /token です。
HTTPコネクタを使って設定します。

client_idには、事前準備で記録した値を使用してください。

取得したアクセストークンを変数に代入しておきます。
5. 書類の作成
クラウドサインに書類を作成します。使用するAPIは、POST /documents です。

認証には、アクセストークンを使用。タイトル、メッセージは、kintoneレコードから取得した値を代入します。

成功すると、書類ID(id)が返ってきますので、変数に格納しておきましょう。後工程で使用します。
6. ファイルの追加
書類に対して、ファイルを追加します。
使用するAPIはPOST /documents/{documentID}/files です。
まずは、kintoneから締結対象のPDFファイルを取得します。レコード情報から取得した、fileKeyを使用します。

その後、書類IDを使用して、ファイルをアップロードします。URLの中に、書類IDを埋め込むイメージですね。kintoneから取得したPDFファイルを事前に、Base64エンコードしておきましょう。

Body欄は、下図の様な形です。ここに一番時間がかかりました。400 Bad Request invalid uploadのエラーが頻発しまして、動くようになるまでに結構細かく調整が必要でした。

7. 宛先の追加
書類に対して、宛先を追加します。
使用するAPIは、POST /documents/{documentID}/participants です。
ここは、誰に契約書を送るかを設定します。

こちらでも書類IDを指定、相手先の名前、メールアドレス、会社名等を指定します。
8. 書類の送信とkintoneへのステータス更新
ようやくここまできて、いざ契約書の送信です。
使用するAPIは、POST /documents/{documentID} です。
こちらの処理はシンプルですね。書類IDを指定して、POSTします。

POSTが成功したのを確認後、kintoneのレコードに、書類IDをフィードバック、また、ステータスも更新します。書類IDは今後の契約ステータスの更新のキーとして使用します。

書き戻されたkintoneのレコードイメージです。

PowerAutomateのクラウドフローを使って、kintoneからクラウドサインを使って契約書を送信してみました。
さらに次ステップとしては、クラウドサイン側で契約が締結されたタイミングで、kintoneのステータスを更新していきますが、その記事は次書こうと思います。
当記事がなにかの参考になれば幸いです。
フォームからのお問い合わせはこちら kintoneスポット開発無料相談フォーム
Discussion