お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
Zoho Signでは、独自のオンラインスクリプト言語であるDelugeを活用し、署名タスクを自動化することが可能です。ユーザーは処理にロジックを追加し、署名タスクやワークフローを自動でトリガーできます。例えば、Zoho Creatorで開発した新規ユーザーのオンボーディングアプリケーションで、従業員がデータを入力し送信ボタンをクリックすると、NDAドキュメントが即座に送信され、署名依頼が行われます。また、Delugeをサポートする他のアプリケーション向けに、カスタム関数を作成して署名タスクをトリガーすることも可能です。
メモ:
- Zoho Sign Delugeタスクを利用した自動化によって作成された各ドキュメント署名リクエストごとに、Zoho Signのご契約プランに応じて、5件の無料Zoho SignクレジットまたはZoho Signクレジットが消費されます。無料クレジットは、ライセンスユーザー数に比例して、エンタープライズプランの組織に毎月付与されます。
- 組織の無料クレジットがなくなった場合、以降の該当ドキュメントごとにZoho Signクレジットが消費されます。追加クレジットは別途購入が必要です。
この内容は、カスタム関数、ワークフロー、その他すべてのDelugeを通じた自動化(現在Zoho Signがサポートする各種Zohoアプリ連携)に適用されます。
仕組みについて
- Deluge Script Builderはドラッグ&ドロップによるユーザーインターフェイスを提供し、ユーザーがDelugeの構文や関数を参照したり覚えたりすることなく、Delugeスクリプトを追加できます。
- 要件に応じてアプリケーションを作成できます。例えば、採用管理アプリや在庫管理アプリなどを作成することが可能です。
- 採用管理アプリでは、NDAやソーシャルメディア規定、ITサービス規定などの署名タスクを自動化するロジックを利用できます。
- 各ロジックごとに署名タスクを割り当て、従業員に署名用ドキュメントを送信できます。
- Delugeが全体のプロセスを自動化し、より簡単にします。
- Zoho Sign用Delugeタスクの手順については、このセクションのヘルプドキュメントを参照してください。
Zoho Signでよく使われるDelugeタスク
- ドキュメントを署名用に送信する
- Zoho Sign テンプレートを使用してドキュメントを送信する
- 既に送信済みドキュメントのステータスを確認する
- 既に送信済みドキュメントに関連付けられたファイルをダウンロードする
ドキュメントを署名用に送信する
ドキュメントを署名用に送信するには、3つのステップがあります。ドキュメントのアップロード、項目タイプの取得、宛先の追加と、項目の宛先への関連付けです。
ドキュメントのアップロード:
- ドキュメントをアップロードします。ドキュメントはZoho Creatorのファイル項目として保存されているもの、またはダウンロード可能な第三者のURLから取得することができます。
- ファイルオブジェクトを取得した後、uploadDocumentタスクを使用します。
コード:
- file = getUrl(<ファイルのパス> ); </ファイルのパス>
- res = Zoho.sign。uploadDocument(file);
- [または]
- res = Zoho.sign。uploadDocument(input。File_field);
レスポンスには、完了または失敗のいずれかのステータスを含むマップが返されます。完了の場合、作成されたドキュメントの詳細と、以降の処理に必要なrequest_idが返されます。さらに、項目を追加するドキュメントを指定するために必要なdocument_idも含まれています。
項目タイプの取得:
Zoho Signでは、多くの項目をドキュメントに追加できます。各項目の種類には、ユーザーごとに固有の項目type_idが割り当てられています。ご自身のアカウント用に項目タイプとIDを取得してください。
- getFieldIdsタスクを使用して、項目タイプおよびIDを取得します。
- レスポンスには、項目タイプと対応する項目種類IDが含まれます。
- この情報は、別のマップに保持して、項目の追加や次の手順でドキュメントを出力する際に利用できます。
コード:
- fieldIds = Zoho.sign。getFieldIds();
- fieldTypes = fieldIds.取得する('field_types');
- 項目 = Map();
- for each 項目 in fieldTypes
- {
- fieldJson = 項目.toMap();
- 項目.put(fieldJson.取得する('field_type_name'), fieldJson.取得する('field_type_id'));
- }
受信者の追加:
最後の手順は、ドキュメントを送信する受信者およびその受信者向けの項目を指定することです。
- submitRequest タスクを使用して、この手順を実行します。
- 受信者や項目に関するデータは、マップ形式でこのタスクに渡す必要があります。
送信するデータの形式は以下の通りです:
処理 - 各受信者の詳細を含む配列
各受信者オブジェクトに含まれる内容:
action_id - 前回の呼び出しで保存されたaction_id
項目 - 受信者が署名者の場合に関連するすべての項目の詳細を含むJSONオブジェクト
text_fields - テキスト、会社、役職名、氏名、メールなど、すべてのテキスト項目を含む配列
image_fields - 署名など画像項目を含む配列
date_fields - すべての日付項目の詳細を含む配列
各項目に関連するデータ:
document_id
page_no - 項目が開始するページ 差出人 +10、-10
field_name - 項目に表示される名前
x_value - 項目のページ左下からのx位置
y_value - 項目のページ左下からのy位置
width - ページに対する幅(%)
height - ページに対する高さ(%)
field_type_id - 項目の種類を特定するfield_type_id
is_mandatory
name_format (フル名前項目のみ)- 名前の形式 - FULL 名前/FIRSTNAME/姓
date_format (日付項目のみ)- 日付入力時に使用する日付の形式
text_property (すべてのテキスト項目・日付項目)- 含まれるテキストプロパティ
フォント
font_size
font_color - テキストに適用する色のHexコード
is_bold
is_italic
is_read_only(種類が「Text」の項目のみ)- 項目が表示専用かどうか
default_value(種類が「Text」の項目のみ)- 項目の初期値
コード:
- actionMap = Map();
- actionMap。put('request_name','test_AddFields');
- textFields = List();
- textField1 = Map();
- textField1。put('field_name', 'Company');
- textField1。put('is_mandatory', '真');
- textField1。put('field_type_id', 項目.取得する('Company'));
- textField1。put('document_id', doc_id);
- textFields.追加する(textField1);
- fieldMap = Map();
- fieldMap。put('項目',{'text_fields':textFields});
- fieldMap。put('recipient_name', 'John');
- fieldMap。put('recipient_email','john@zylker。com');
- fieldMap。put('action_type','SIGN');
- fieldList= List();
- fieldList.追加する(fieldMap);
- actionMap。put('処理',fieldList);
- submitMap = Map();
- submitMap。put('requests', actionMap);
- response = Zoho.sign。submitRequest(, {'data':submitMap});
レスポンスには、ステータスが完了となっているマップが含まれ、ドキュメントが正常に送信済みの場合に表示されます。エラーが発生した場合はステータスがfailureとなり、メッセージキーにエラーの詳細が示されます。
Zoho Sign テンプレートを使用してドキュメントを送信する
Zoho Sign テンプレートを利用すると、一度ドキュメントを作成し、項目を追加して、必要なときに何度でも再利用できます。テンプレートを使う際は、受信者の詳細情報や、設定済みのプリフィル項目のみ入力するだけで済みます。同じドキュメントをDeluge経由で送信する場合も特に便利です。ファイルのアップロードや項目設定を毎回行う必要はありません。
メモ:この機能はプロフェッショナル版およびエンタープライズ版でのみ利用可能です。
Delugeを使ってZoho Sign テンプレートを利用するには、3つの手順があります。
- Zoho Sign内のテンプレート一覧を取得する(任意)
- 必要なZoho Sign テンプレートの詳細を取得する
- Zoho Sign テンプレートを使ってドキュメントを送信する
Zoho Sign内のテンプレート一覧を取得する:
このタスクは、アプリケーション内でテンプレート一覧を取得する必要がある場合に役立ちます。常に同じテンプレートでドキュメントを作成する場合は、この手順を省略できます。
getTemplatesタスクを使用して、Zoho Signアカウント内ですべて作成されたテンプレートの一覧を取得します。この操作により、テンプレートキーの下にすべてのZoho Sign テンプレートのリストを持つオブジェクトが返されます。各テンプレートにはtemplate_idが付与されており、以降の手順で必要となります。利用するテンプレートを選択したら、そのテンプレートのtemplate_idを保存してください。
コード:
- response= Zoho.sign。getTemplates();
- {
- 'コード': +10、-10,
- 'メッセージ': 'テンプレートリストの取得に成功しました',
- 'page_context': {
- 'sort_column': 'template_name',
- 'has_more_rows': 無効,
- 'start_index': 1,
- 'total_count': 1,
- 'sort_order': 'ASC',
- 'row_count': 1
- },
- 'テンプレート': [
- '{\'owner_email\':\'john@zylker。com\',\'created_time\':1521109119330,\'email_reminders\':真,\'document_ids\':[{\'document_name\':\'Zoho Sign.pdf\',\'document_size\':59808,\'document_order\':\'+10、-10\',\'total_pages\':1,\'document_id\':\'32076000000002005\'}],\'メモ\':\'\',\'reminder_period\':1,\'owner_id\':\'32076000000002003\',\'説明\':\'\',\'template_name\':\'Template1\',\'modified_time\':1521110073225,\'is_deleted\':無効,\'expiration_days\':15,\'is_sequential\':無効,\'template_id\':\'32076000000002011\',\'request_type_name\':\'その他\',\'owner_first_name\':\'John\',\'request_type_id\':\'32076000000000135\',\'owner_last_name\':\'Mathews\',\'処理\':[{\'ishost\':無効,\'verify_recipient\':無効,\'役割\':\'CEO\',\'action_id\':\'32076000000002014\',\'action_type\':\'SIGN\',\'private_notes\':\'\',\'recipient_email\':\'john@zylker。com\',\'signing_order\':-1,\'recipient_name\':\'John Mathews\',\'recipient_phonenumber\':\'\',\'recipient_countrycode\':\'\'}]}'
- ],
- 'ステータス': '完了'
- }
テンプレートの詳細を取得:
- 使用したいテンプレートとそのtemplate_idが分かったら、該当テンプレートの詳細を取得します。詳細情報を取得することで、必須メールアドレスをテンプレート内の差し込み項目の役割に割り当てることができます。
- また、テンプレート内にある必須のPre-fill項目も入力しやすくなります。
- getTemplateByIdタスクを使用して、テンプレートIDから詳細を取得します。
- レスポンスにはテンプレートの詳細が含まれます。テンプレートに設定された受信者の詳細や、設定済みのPre-fill項目が含まれます。
テンプレートオブジェクトには操作リストがあります。このリストには、テンプレートに設定された受信者の数だけ要素が含まれます。
また、document_fieldsリストも存在します。テンプレート内の各ドキュメントはオブジェクトとして関連付けられています。それぞれのオブジェクトには、該当するPre-fill項目を含む項目リストがあります。
サンプルレスポンス:
- {
- 'コード': +10、-10,
- 'メッセージ': 'テンプレート一覧の取得に成功しました',
- 'page_context': {
- 'sort_column': 'template_name',
- 'has_more_rows': 無効,
- 'start_index': 1,
- 'total_count': 1,
- 'sort_order': 'ASC',
- 'row_count': 1
- },
- 'テンプレート': [
- '{\'owner_email\':\'john@zylker。com\',\'created_time\':1521109119330,\'email_reminders\':真,\'document_ids\':[{\'document_name\':\'Zoho Sign.pdf\',\'document_size\':59808,\'document_order\':\'+10、-10\',\'total_pages\':1,\'document_id\':\'32076000000002005\'}],\'メモ\':\'\',\'reminder_period\':1,\'owner_id\':\'32076000000002003\',\'説明\':\'\',\'template_name\':\'Template1\',\'modified_time\':1521110073225,\'is_deleted\':無効,\'expiration_days\':15,\'is_sequential\':無効,\'template_id\':\'32076000000002011\',\'request_type_name\':\'その他\',\'owner_first_name\':\'John\',\'request_type_id\':\'32076000000000135\',\'owner_last_name\':\'Mathews\',\'処理\':[{\'ishost\':無効,\'verify_recipient\':無効,\'役割\':\'CEO\',\'action_id\':\'32076000000002014\',\'action_type\':\'SIGN\',\'private_notes\':\'\',\'recipient_email\':\'john@zylker。com\',\'signing_order\':-1,\'recipient_name\':\'John Mathews\',\'recipient_phonenumber\':\'\',\'recipient_countrycode\':\'\'}]}'
- ],
- 'ステータス': '完了'
- }
- {
コード:
- template_id =
;
- response = Zoho.sign。getTemplateById(template_id);
- prefill_fields = List();
- if(response.取得する('ステータス')contains('完了'))
- {
- recipients = response.取得する('テンプレート').取得する('処理');
- document_fields = response.取得する('テンプレート').取得する('document_fields');
- for each ドキュメント in document_fields
- {
- prefill_fields。addall(ドキュメント.取得する('項目'));
- }
- }
Zoho Sign テンプレートを使用してドキュメントを送信する:
これが最終手順です。ここでは、テンプレートを送信する宛先や、設定されたその他の事前入力項目を割り当てることができます。処理リストと項目リストが、この手順で役立ちます。createUsingTemplate タスクをこの手順で使用してください。ここでは、template_idとして必須テンプレートのIDも必要です。
このタスクに必要なパラメーターは以下の構造になります:
パラメーターは、キーが data で値が下記の値を含むマップに追加する必要があります。
- 処理: テンプレートに関連付けられているすべての役割の詳細を含むリストです。各操作マップには以下が含まれている必要があります:
- recipient_name- 受信者の名前
- recipient_email- 受信者のメールアドレス
- action_id- getTemplateByIdの前回結果の処理配列で返されるactions_idの値
- 役割- テンプレートで指定された役割名
- action_type- サイン/表示:その人物が署名者かコピー受領者か(テンプレートで指定)
- field_data- テンプレートに追加された事前入力項目のデータを含みます
- field_text_data- 事前入力で追加されたすべてのテキスト項目の項目名と値を含むマップ
- 項目-boolean_data- 事前入力で追加されたすべてのチェックボックス項目の項目名と真/無効の値を含むマップ
- is_quicksend- ブール値。真の場合、テンプレートが送信されます。偽の場合、ドキュメントは下書きとして保存され、Zoho SignのWebユーザーインターフェースから手動で送信する必要があります。
コード:
テンプレートに事前入力項目としてtextField_1が1つあり、受信者が2名追加されていると仮定します。
- actionMap = Map();
- fieldTextData = Map();
- fieldTextData。put('TextField_1', 'ドキュメント to 確認する');
- actionMap。put('field_data',{'field_text_data':fieldTextData});
- eachActionMap1 = Map();
- eachActionMap1。put('recipient_name','James');
- eachActionMap1。put('recipient_email','james@Zoho.com');
- eachActionMap1。put('action_type','SIGN');
- eachActionMap1。put('action_id','32076000000002014');
- eachActionMap1。put('役割','Reviewer');
- eachActionMap1。put('verify_recipient','無効');
- eachActionMap2 = Map();
- eachActionMap2。put('recipient_name','Tony');
- eachActionMap2。put('recipient_email','tony@Zoho.com');
- eachActionMap2。put('action_type','SIGN');
- eachActionMap2。put('action_id','32076000000014006');
- eachActionMap2。put('役割','Manager');
- eachActionMap2。put('verify_recipient','無効');
- fieldList = List();
- fieldList.追加する(eachActionMap1);
- fieldList.追加する(eachActionMap2);
- actionMap。put('処理',fieldList);
- submitMap = Map();
- submitMap。put('テンプレート',actionMap);
- パラメーター = Map();
- パラメーター.put('is_quicksend','真');
- パラメーター.put('data',submitMap);
- response = Zoho.sign。createUsingTemplate(32076000000002011, パラメーター);
レスポンスには、ドキュメントが正常に送信された場合、ステータスが完了となるmapが含まれます。エラーが発生した場合は、ステータスがfailureとなり、メッセージキーにエラーの詳細が表示されます。
ドキュメントステータスの取得
レスポンス形式:
- {
- 'コード': +10、-10,
- 'requests':
- {
- 'request_status': '進行中',
- 'メモ': 'Hi\nA メモ\nMr. Tester\nお元気ですか?',
- 'owner_id': '2000000002002',
- '説明': '',
- 'request_name': '移動する a メモ テスト',
- 'modified_time': 1522746018025,
- 'action_time': 1522746018310,
- 'is_deleted': 無効,
- 'expiration_days': 1,
- 'is_sequential': 真,
- 'sign_submitted_time': 1522746018310,
- 'owner_first_name': 'V********',
- 'sign_percentage': 33.34,
- 'expire_by': 1522866540000,
- 'is_expiring': 真,
- 'owner_email': 'v******@***.com',
- 'created_time': 1522746018025,
- 'document_ids': [
- {
- 'document_name': '従業員 NDA。pdf',
- 'document_size': 26591,
- 'document_order': '+10、-10',
- 'total_pages': 2,
- 'document_id': '2000000492171'
- }
- ],
- 'self_sign': 無効,
- 'in_process': 無効,
- 'request_type_name': 'その他',
- 'request_id': '2000000492177',
- 'request_type_id': '2000000000135',
- 'owner_last_name': '',
- '処理': [
- {
- 'verify_recipient': 無効,
- 'action_id': '2000000492180',
- 'action_type': '署名',
- 'private_notes': '',
- 'recipient_name': 'S**********',
- 'recipient_email': 's*******@***.com',
- 'signing_order': +10、-10,
- 'allow_signing': 真,
- 'action_status': '未開封',
- 'recipient_phonenumber': '',
- 'recipient_countrycode': ''
- }
- ]
- },
- 'メッセージ': 'ドキュメントが取得されました',
- 'ステータス': '完了'
- }
コード:
送信済みドキュメントに関連付けられたファイルのダウンロード
ドキュメントが署名され、完了すると、署名済みドキュメントをダウンロードしてアプリケーションやCRMデータ、その他の場所に保存できます。downloadDocument deluge タスクがこの操作をサポートします。タスクを利用するにはドキュメントのrequest_idが必要です。複数のドキュメントがある場合は、すべてのドキュメントを含むZIPファイルが受け取れます。
コード:
- if(docStatus。contains('完了'))
- {
- response = Zoho.sign。downloadDocument(request_id);
- //ドキュメントをZoho CreatorのFileUpload項目にアップロードします
- insert into 文書[input。FileUpload = response]
- }