Zoho SignウェブフックでトリガーされるCRMのコールバック関数設定方法
お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
シナリオ: Zoho CRM のカスタムタブ内で、Zoho Sign にドキュメントを送信する自動化を設定しています。毎回ドキュメントを確認したいときは、Zoho Sign で表示する必要があります。Zoho Sign の Webhook によって完了した Zoho Sign ドキュメントの詳細を追加するためのコールバック関数を、CRM 側に設定できますか?
- カスタムタブを使用すると、ユーザーの要件に応じて、カスタマイズした添付ファイル(完了証明書、署名済みドキュメントのコピーなど)を送信できます。
- 自動化/ワークフローを使用して署名用ドキュメントを送信した場合、これらのドキュメントは Zoho Sign 内でのみ利用可能で、CRM 側には自動で反映されません。以下のコードを設定すると、CRM 内に Zoho Sign ドキュメントのレコードを作成または更新できるようになります。
- 設定方法の詳細は、こちらをクリックして確認できます。
以下に示すコードを貼り付けてください。
メモ: このサンプルコードでは、カスタムタブ名は「Commercial_Terms」です。実際にコードを使用する際は、ご利用のタブ名に置き換えてください。
- crmAPIRequestMap = crmAPIRequest。toMap();
- //crmAPIRequest はこの関数に渡されるパラメーターです
- request_body = crmAPIRequestMap。取得する('本文');
- info request_body;
- requestMap = request_body。toMap();
- response = Map();
- response。put('status_code',200);
- response。put('コンテンツの種類','application/json');
- hasRequests = requestMap。containKey('requests');
- if(requestMap。containKey('requests'))
- {
- requestStr = requestMap。取得する('requests');
- requestObj = requestStr。toMap();
- notificationObj = requestMap。取得する('通知').toMap();
- response。put('本文',{'what we got':requestObj});
- if(requestObj。containKey('request_status'))
- {
- reqStatus = requestObj。取得する('request_status');
- requestId = requestObj。取得する('request_id');
- response。put('本文',{'request_id':requestId});
- info 'データ found';
- document_ids = requestObj。取得する('document_ids');
- データ = Zoho。crm。searchRecords('Commercial_Terms','(Sign_Request_Id:equals:' + requestId + ')');
- if(データ。size() > 0 && reqStatus。equals('完了') && notificationObj。取得する('operation_type').equals('RequestCompleted'))
- {
- info 'データ found';
- leadid = データ。取得する(0).取得する('id');
- for each ドキュメント in document_ids
- {
- document_id = ドキュメント。取得する('document_id');
- //署名済みドキュメントをダウンロードする
- fileResponse = invokeurl
- [
- url :'https://sign.zoho.com/api/v1/requests/'+ requestId + '/documents/' + document_id + '/pdf'
- 種類 :取得する
- connection:'Zoho Sign'
- ];
- docName = fileResponse。getFileName();
- fileResponse。setFileName(docName);
- Zoho。crm。attachFile('Commercial_Terms',leadid,fileResponse);
- }
- //完了証明書をダウンロードする
- fileResponse2 = invokeurl
- [
- url :'https://sign.zoho.com/api/v1/requests/'+ requestId + '/completioncertificate'
- 種類 :取得する
- connection:'Zoho Sign'
- ];
- // ドキュメントをカスタムタブに添付する
- Zoho。crm。attachFile('Commercial_Terms',leadid,fileResponse2);
- response。put('本文',{'attached to データ':leadid});
- }
- }
- else
- {
- response。put('本文',{'いいえ request ステータス':requestObj});
- }
- }
- else
- {
- info 'エラー';
- response。put('本文',{'エラー':'いいえ requests キー'});
- }
- 返品する {'crmAPIResponse':response};