Zoho Webhookを使用してZohoフォームにZoho CRMからフィールド値を自動入力する
お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
Requirement 詳細:
Zoho FormsはZoho CRMと連携することができ、必須項目を追加して顧客に送信し、データの収集を効率化します。Zoho CRMとZoho Formsの連携により、フォームの入力内容を直接Zoho CRMのタブにプッシュしたり、名前・メールアドレスなどのCRMデータをフォームに自動入力することが可能です。ただし、このカスタムソリューションでは、Dynamic Prefill - Webhook 手法を利用し、連携項目を使用せずにZoho CRMデータでフォーム項目を自動入力できます。
法人 使用する-Case:
たとえば、Zoho Formsを利用して顧客が購入希望する商品の情報を収集したい場合を考えます。顧客が商品を選択すると、Zoho CRM組織の商品タブデータから価格や在庫状況などの商品の詳細を動的に表示したい場合があります。このようなケースでは、CRM-Forms連携を使わずにZoho CRMの関数とREST APIを利用し、Zoho FormsのDynamic Prefill - Webhookで事前入力を実現できます。
顧客情報(名前・メール・連絡先番号など)の必須項目を設定する必要があります。さらに、Zoho CRMの商品データで自動入力するためにフォームに表示する商品用の項目を追加してください。Zoho Formsのレイアウト内に商品用の主要項目を設けることで、クライアントが必須の商品を選択できるようにします。主要項目は、単一の折れ線グラフ項目またはドロップダウン項目として事前定義された商品選択肢を表示できます。主要項目を利用してZoho CRM内のデータを検索し、項目値を取得します。
主要項目でCRMからデータを検索するタスクが発生するため、Zoho Formで選択する主要項目の項目種類を把握しておく必要があります。また、自動入力が必要な項目については、Zoho CRMの検索データDelugeタスクから返される項目種類に基づいてのみマッピング可能です。
例えば、Zoho Formsで事前定義された商品を顧客が選択できるようドロップダウン項目を選び、自動入力される項目として商品単価・商品在庫ステータス・商品の種類を選択しています。
Zoho CRM 設定:
Zoho CRMでスタンドアロン関数を作成し、API通話として利用できるようにする必要があります。これらの方法を使わず、または外部から関数を実行したい場合にも、スタンドアロン関数を作成しAPI通話として利用可能にすることができます。REST APIを使って関数をトリガーすることで、Zoho CRM内や他のアプリケーションからも柔軟に実行できます。
ナビゲーション:
-
Zoho CRM > 設定 > Developer Hub > Functions に移動します。
-
My Functions ページで、+ 新しく作成する Function をクリックします。
-
Function のカテゴリーとして Standalone を選択します。
-
作成 をクリックします。
以下のスクリプトを使用してください:
-
grec = Zoho.crm.searchRecords('商品','(Product_Name:equals:' + Product_Name + ')');
-
if(ifnull(grec,List()).size() > 0)
-
{
-
rec = grec.取得する(0);
-
Unitprice = rec.getJSON('Unit_Price');
-
Producttype = rec.getJSON('Product_Type');
-
Productstatus = rec.getJSON('Product_Status');
-
}
-
mp = Map();
-
//Formsのプレフィルマッピングで同じ変数を使用します
-
mp.put('Unitprice',Unitprice);
-
mp.put('Producttype',Producttype);
-
mp.put('Productstatus',Productstatus);
-
response = Map();
-
response.put('status_code',200);
-
response.put('コンテンツの種類','application/json');
-
response.put('本文',mp);
-
返品する {'crmAPIResponse':response};
-
//関数の引数Product_Nameには文字列を指定してください。
引数マッピングでは、項目「Product_Name」を文字列としてデータ検索にマッピングする必要があります。
Zoho CRMでREST APIを使用したFunctionの呼び出し:
上記のスタンドアロンFunctionを保存した後、REST APIを作成する必要があります:
-
設定 > Developer Hub > Functions へ移動します。
-
API化したい該当するFunctionの設定アイコンをクリックします。
-
REST APIをクリックします。
-
API名前項目には、そのFunctionを呼び出す際に使用するAPI名前が表示されます。このAPI名前はシステムによって作成され、変更できません。
-
OAuth2.0およびAPIキーのスライダーを有効にします。
-
保存をクリックします。


REST APIキーを生成した後は、必ずFunctionを保存してください。
フォームの作成、Zoho CRMでのFunctionの設定、REST APIの作成が完了したら、Zoho Forms > 該当フォームのフォームビルダー > 設定タブ > Prefill > Dynamic Prefill - Webhook > 設定する をクリックします。
検索する設定:
検索する項目は、外部サービスから関連情報を取得するために使用するフォーム項目です。検索する項目としてドロップダウンからフォーム項目を選択してください。Webhookを用いてCRM内のデータを検索するため、「商品を選択する」項目を選びます。
Webhook詳細:
Webhook URLは、検索時にフォームから外部サービスへリクエストを送信するエンドポイントです。データ取得のため外部サービスの完全なURLを入力してください。前の手順で記載したZoho CRMのREST APIキーURLを渡す必要があります。
FunctionName : Zoho CRMでREST APIキーを作成したスタンドアロンFunctionの名前です。
Authorization 種類 : 一般
データ識別子キーは、検索する項目の値をZoho CRMに送信するためのクエリパラメーターとして使用されます。データ検索時、Webhookはデータ識別子キーをクエリパラメーターとして含めます。検索する項目の値がクエリパラメーターの値として送信されます。そのため、Zoho CRMのスタンドアロン関数で文字列として指定した検索する値をこちらで設定してください。Product_Nameは、上記のスタンドアロンスクリプトで使用している引数マッピングで利用可能な文字列です。
URL パラメーターは、Webhookリクエストで追加情報を送信するために、URLへクエリストリングとして追加されます。
下記の情報を渡す必要があります。
-
auth_type : apikey
-
zapikey : [Zoho CRM - Rest API で利用可能] 上記のスクリーンショットを参照してください。
テスト Webhook:
Webhookの設定が完了したら、この手順でWebhookをテストし、検索する項目に入力した値に基づいて正しいデータが取得できるか確認します。<検索する項目の値>の部分にサンプル値を入力し、テストを実行してZoho CRMにリクエストを送信してください。受信したレスポンスの形式が有効かどうか確認されます。有効なレスポンスが受信できた場合のみ、次の手順へ進むことができます。
Dynamic Webhookを利用して、Zoho Form内の項目値をZoho CRMから自動入力できます。
次の手順は、取得したデータからどのフォーム項目に情報を自動入力するかを決定することです。Zoho CRMから取得したデータで自動入力したいフォーム項目をマッピングします。
-
フォーム項目を追加し、該当する項目をクリックします。
-
JSONレスポンスが表示されたポップアップが開きます。必要なデータを含むJSONレスポンス内のキーを確認し、マッピングのために選択してください。
-
自動入力したいすべてのフォーム項目について、これを繰り返します。
-
保存をクリック
結果:
カスタム Solution 作成者 Raghu | Zoho パートナー サポート.