Zoho SignウェブフックでトリガーされるCRMのコールバック関数設定方法

Zoho SignウェブフックでトリガーされるCRMのコールバック関数設定方法

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

シナリオ: Zoho CRM のカスタムタブ内で、Zoho Sign にドキュメントを送信する自動化を設定しています。毎回ドキュメントを確認したいときは、Zoho Sign で表示する必要があります。Zoho Sign の Webhook によって完了した Zoho Sign ドキュメントの詳細を追加するためのコールバック関数を、CRM 側に設定できますか?

  1. カスタムタブを使用すると、ユーザーの要件に応じて、カスタマイズした添付ファイル(完了証明書、署名済みドキュメントのコピーなど)を送信できます。
  2. 自動化/ワークフローを使用して署名用ドキュメントを送信した場合、これらのドキュメントは Zoho Sign 内でのみ利用可能で、CRM 側には自動で反映されません。以下のコードを設定すると、CRM 内に Zoho Sign ドキュメントのレコードを作成または更新できるようになります。
  3. 設定方法の詳細は、こちらをクリックして確認できます。
以下に示すコードを貼り付けてください。
メモ: このサンプルコードでは、カスタムタブ名は「Commercial_Terms」です。実際にコードを使用する際は、ご利用のタブ名に置き換えてください。
  1. crmAPIRequestMap = crmAPIRequest。toMap();
  2. //crmAPIRequest はこの関数に渡されるパラメーターです
  3. request_body = crmAPIRequestMap。取得する('本文');
  4. info request_body;
  5. requestMap = request_body。toMap();
  6. response = Map();
  7. response。put('status_code',200);
  8. response。put('コンテンツの種類','application/json');
  9. hasRequests = requestMap。containKey('requests');
  10. if(requestMap。containKey('requests'))
  11. {
  12. requestStr = requestMap。取得する('requests');
  13. requestObj = requestStr。toMap();
  14. notificationObj = requestMap。取得する('通知').toMap();
  15. response。put('本文',{'what we got':requestObj});
  16. if(requestObj。containKey('request_status'))
  17. {
  18. reqStatus = requestObj。取得する('request_status');
  19. requestId = requestObj。取得する('request_id');
  20. response。put('本文',{'request_id':requestId});
  21. info 'データ found';
  22. document_ids = requestObj。取得する('document_ids');
  23. データ = Zoho。crm。searchRecords('Commercial_Terms','(Sign_Request_Id:equals:' + requestId + ')');
  24. if(データ。size() > 0 && reqStatus。equals('完了') && notificationObj。取得する('operation_type').equals('RequestCompleted'))
  25. {
  26. info 'データ found';
  27. leadid = データ。取得する(0).取得する('id');
  28. for each ドキュメント in document_ids
  29. {
  30. document_id = ドキュメント。取得する('document_id');
  31. //署名済みドキュメントをダウンロードする
  32. fileResponse = invokeurl
  33. [
  34. url :'https://sign.zoho.com/api/v1/requests/'+ requestId + '/documents/' + document_id + '/pdf'
  35. 種類 :取得する
  36. connection:'Zoho Sign'
  37. ];
  38. docName = fileResponse。getFileName();
  39. fileResponse。setFileName(docName);
  40. Zoho。crm。attachFile('Commercial_Terms',leadid,fileResponse);
  41. }
  42. //完了証明書をダウンロードする
  43. fileResponse2 = invokeurl
  44. [
  45. url :'https://sign.zoho.com/api/v1/requests/'+ requestId + '/completioncertificate'
  46. 種類 :取得する
  47. connection:'Zoho Sign'
  48. ];
  49. // ドキュメントをカスタムタブに添付する
  50. Zoho。crm。attachFile('Commercial_Terms',leadid,fileResponse2);
  51. response。put('本文',{'attached to データ':leadid});
  52. }
  53. }
  54. else
  55. {
  56. response。put('本文',{'いいえ request ステータス':requestObj});
  57. }
  58. }
  59. else
  60. {
  61. info 'エラー';
  62. response。put('本文',{'エラー':'いいえ requests キー'});
  63. }
  64. 返品する {'crmAPIResponse':response};