Requirement 概要
Zoho CRM 組織では、リードの変換前に、リードタブ内のすべての必須項目が認証されていることを求めています。法人は、リードデータが完了していることをより簡単かつ効果的に確認できる方法を必要としています。これは、初期設定の「受注データを[パッケージ]データに変換するだけで、」ボタンをリードデータ詳細ページで使用する前に行う必要があります。
これにより、変換後の連絡先は、必須データ(空欄なしの項目)をすべて含んだ状態で作成され、営業チームによる効果的なフォローアップや育成が可能となります。
権限 & 利用可否
-> 管理 Extensibility権限を持つユーザーはClient Scriptの設定・管理が可能です。
-> 管理 テスト環境権限を持つユーザーはテスト環境の管理が可能です。
-
Client Script の配置場所
例:
-> ページのOn_Load/On_Save/On_Edit、項目のOn_Type/On_Change、サブフォーム処理、Blueprint処理、リスト表示処理など。
-> コマンド/ショートカットキー(CRM内のどこからでも、いつでもスクリプトを実行可能)。
-> カスタムボタン(最近の強化)
詳細は以下のヘルプ参照をご確認ください(Client Script 処理 詳細)。
-
Client Script を作成するには:
Client Scriptは2つの方法で追加できます:
1. 設定ページから:
Zoho CRM の設定 (⚙️) >> Developer Hub >> Client Script >> 新規 Script に移動します。
-> スクリプトに適した名前と説明を入力します。
-> カテゴリー 詳細-
- 要件に応じてカテゴリーを選択します。タブ - 処理をトリガーする場合、または Commands- Command Pallet/ショートカットキーでトリガーする場合があります。
- スクリプトを追加したいタブを選択します(例:Lead、連絡先など)。
- スクリプトを特定のページに適用する場合はPageを選択します(例:作成、編集、複製する、詳細、List など)。
- Layoutを選択します(例:スタンダードまたはカスタムレイアウト)。
-> Event 詳細-
処理の種類を選択します - 項目 Event、Page Event、または Subform Event
- 項目 Event-> 該当する項目とイベントを選択します(例:名 項目の onChange)。
- Page Event-> 対象のページとイベントを選択します(例:作成 Page の onLoad)。
- Subform Event-> 該当するサブフォームとイベントを選択します(例:onCellChange)。
2. 詳細/リスト/作成/編集/複製ページからタブ内データを操作する方法
-> Zoho CRMで目的のタブを選択し、リスト、作成、詳細、編集、または複製のいずれかのページでデータを開きます。例として、リード作成ページを考えます。
-> 作成/編集/複製ページの場合:ページの右上隅にある「Client Script」をクリックし、スクリプトを追加します。
-> カテゴリー詳細はシステムによって自動入力されます。クライアントスクリプトのその他の詳細(名前、説明、イベント詳細など)を入力してください。続けて「次へ」をクリックし、Client Script IDE のコードエディタにスクリプトを追加します。その後、「保存」し、「閉じる」をクリックします。
詳細ページからClient Scriptを追加する方法:
リスト/作成/編集/複製など各ページからClient Scriptを追加する方法:
使用例
初期段階では、リードが初めて取得された際(例:WebフォームやSNS経由)、すぐにすべての必須項目を入力することは現実的でない場合や必要がない場合があります。営業プロセスの中で一部の項目が後から収集されることもあります。営業プロセスが完了したら、リードは連絡先およびアカウントへ変換する必要があります。
高いデータ品質を維持し、信頼性のある顧客コミュニケーションを確保するため、法人では連絡先タブ内で一部の項目(例:メール、モバイル、住所)を必須に設定しています。これにより、連絡先データにはアウトリーチやセグメント、サービス提供に必要な情報が確実に揃います。
リードを連絡先へ変換する際、リードデータ内で連絡先の必須情報が入力されていないケースがあり、その結果、変換後のフォローや育成に必要な情報が不足することがあります。このような場合、連絡先タブにおいて未完了・不整合なデータが発生します。
最終成果 - 法人は、より簡単かつその他の効果的な方法で認証リードデータを次の前のリードコンバージョンに進める必要があります。初期設定の「受注データを[パッケージ]データに変換するだけで、」ボタンをリードデータ詳細ページで使用します。
重要性:
- データの整合性
- 高いコンバージョン率
- リードフロー効率の向上
- 営業エンゲージメントの迅速化
主な課題
入力規則 - 現時点では、リードコンバージョン時のバリデーションがないため、このような変換を防ぐことができません。初期設定の入力規則機能は作成・編集・複製・詳細ページで動作しますが、リードコンバージョンには実装されません。
「受注データを[パッケージ]データに変換するだけで、」ボタンのトリガーについて- 現在、初期設定ボタン(例:「受注データを[パッケージ]データに変換するだけで、」)のクリック時にバリデーションを設定し、エラー(インラインまたはポップアップエラー)を表示するトリガーはありません。
このような未完了コンバージョンを回避するための代替手段はいくつかあります。以下で説明します。
ワークフアルール- ユーザーは、リード上(例:編集時のトリガー)で特定の条件に基づいてワークフアルールを設定し、操作(受注データを[パッケージ]データに変換するだけで、)を選択することでリードを連絡先やアカウント、必要に応じて商談へ変換できます。しかし、この方法は、ユーザーが頻繁にリード内の特定項目を更新してデータを変換しなければならず、また法人側で「受注データを[パッケージ]データに変換するだけで、」ボタンを不要に権限で無効化する必要が出てくるため、現実的ではありません。
カスタムボタン- ユーザーは、リードデータ詳細ページにカスタムボタンを設定し、カスタム関数を使ってリードデータ詳細を取得できます。その上で必須項目が空かどうかを確認し、スクリプトで適切に連絡先やアカウントへ変換します。ただし、この方法はコーディングに慣れていないユーザーにとっては難しい場合があります。また、初期設定の「受注データを[パッケージ]データに変換するだけで、」ボタンも頻度権限で無効化する必要があります。
上記2つの代替案は、現実的かつ簡単な方法とは言えません。しかし、他にClient Script を使用した最適な解決策があり、ユーザー側で設定可能です。
Client Script を用いたバリデーション実装のソリューション
ユーザーは、Lead 詳細ページの読み込み時に Client Script を設定し、バリデーションを行い、初期設定の「受注データを[パッケージ]データに変換するだけで、」ボタンを無効化/有効化できます。Client Script を利用して、各必須項目(値あり)を取得し、空であるかどうかをチェックします。いずれかの項目が入力されていない場合は、「受注データを[パッケージ]データに変換するだけで、」ボタンを無効化し、全ての項目が入力されている場合は有効化します。
この方法を利用すると、初期設定の「受注データを[パッケージ]データに変換するだけで、」ボタンへの直接的な操作が可能となり、ユーザーは直接的な Client Methods を使って項目値を取得し、ボタンの有効/無効を設定できます(コーディング経験がなくても設定可能です)。
設定
次に、詳細ページのLeadタブでOnLoad of Pageトリガー用の Client Script を作成します。例として、データ詳細ページが読み込まれるたびに client script が実行され、項目データのバリデーションに基づいて「受注データを[パッケージ]データに変換するだけで、」ボタンの操作が設定されます。
コード
- console.クリア();
- manadatoryNotFilled = 無効;
- //各連絡先必須項目データの取得
- var メール = ZDK.Page.getField('メール').getValue();
- var モバイル = ZDK.Page.getField('モバイル').getValue();
- var 市区町村 = ZDK.Page.getField('市区町村').getValue();
- var 状態 = ZDK.Page.getField('状態').getValue();
- var 国 = ZDK.Page.getField('国').getValue();
- var pin = ZDK.Page.getField('Zip_Code').getValue();
- var leadSource = ZDK.Page.getField('Lead_Source').getValue();
- // log(メール);
- // log(leadSource);
- //確認中 いずれかの項目が入力されていないかどうか
- if (メール == null || モバイル == null || 市区町村 == null || 状態 == null || 国 == null || pin == null || leadSource == null) {
- manadatoryNotFilled = 真;
- }
- log('manadatoryNotFilled --- '+manadatoryNotFilled);
- //受注データを[パッケージ]データに変換するだけのボタンを取得
- var convertButton = ZDK.Page.getButton('受注データを[パッケージ]データに変換するだけで、');
- //項目が入力されていない場合、ボタンを無効化します。すべて入力されていれば、「受注データを[パッケージ]データに変換するだけで」ボタンを有効化します。
- if (manadatoryNotFilled) {
- convertButton.無効にする();
- }
- else {
- convertButton.有効にする();
- }
動作デモ - Screencast
このアプローチは、項目が入力されていない場合のみ確認中に制限されるわけではありません。リード項目に対して、複雑なバリデーション(例えば、モバイル項目は10桁である必要がある、メール項目は有効なドメインを含む必要がある、など)をLead Conversionの前に設定することも可能です。
ご注意:現時点では、データ詳細ページで行った更新は直接反映されません。変更内容を表示するには、ページを更新する必要があります。詳細ページ上で変更を自動反映させる方法については、以下の記事をご参照ください。
TIPS
-> スクリプト内で 正しい API Namesを両方 タブ & 項目に対して使用するようにしてください。
-> スクリプトを作成する際は、各変数ごとに logs() または console.log()を追加して、出力結果を確認することを推奨します。たとえば、出力結果は 'Messages'タブ(Client Script IDE内)で logs() の出力として表示できます。console logs を表示するには、次の手順に従ってください - 'ブラウザページ上で右クリック >> 検証 >> コンソール'。
-> 期待される動作が実行されない場合は、各出力やループを確認しながらスクリプトを試し、サンプルのヘルプドキュメントで各ZDK Client/CRM API メソッドの構文を再度ご確認ください。
各ZDKクライアント/CRM APIメソッドのサンプルスクリプト - ヘルプ 参照
円滑な導入を実現するため、設定をテスト環境で事前に設定・テストいただくことを推奨します。本番環境への展開前にご確認ください。