Multi-選択する Lookup 項目は、Zoho CRMで多対多の関係を2つのタブ間で構築できます。1つのタブのデータがもう一方のタブの複数のデータと紐付けられる場合や、その逆の場合に便利です。
法人例:
たとえば、法人がトレーニングサービスの商談を行っているとします。TrainersタブとCoursesタブがあり、各トレーナーは複数のコースを担当でき、各コースも複数のトレーナーが実施できます。このような場合、TrainersとCourses間でmulti-選択する lookup 項目を使うことで、どちらのタブからも関係性を簡単に管理・表示できます。
Multi-選択する Lookup 項目の詳細については、こちらのドキュメントをご参照ください。
Multi-選択する Lookup 項目の機能について:
multi-選択する lookup 項目をタブに追加すると、参照先(lookup元)のタブにも対応するmulti-選択する lookup 項目が自動的に作成され、双方向の関係性が構築されます。
例:
もしTrainersタブでCoursesタブ向けのmulti-選択する lookup 項目を追加した場合:
スクリーンショット
Linkingタブ:
複数選択のlookup項目を作成する際、Linkingタブを有効にすることができます。Linkingタブは、データ間のリレーションシップを個別のエントリーとして保存し、外部連携を明示的に保持・参照するのに役立ちます。
上記の例を続けます:
|
Linking データ
|
リレーションシップ
|
|
|
|
|
データ 2
|
コースY ↔ トレーナーA
|
|
データ 3
|
コースZ ↔ トレーナーA
|
スクリーンショット
なぜAPIでMulti-選択するLookup項目を更新するのか?
ユーザーはCRMのUIから手動でデータを関連付けることも可能ですが、APIを利用してマルチ選択Lookup項目をプログラムで更新することで、以下のような大きなメリットがあります:
-
一括関連付け:複数のデータを一度に簡単に関連付けることができ、特に移行や大量更新時に役立ちます。
-
自動化:ワークフロー、連携、または外部システムのロジックの一部として更新をトリガーすることが可能です。
-
効率:大量データの処理時に時間を節約し、ヒューマンエラーの削減にもつながります。
パートナーがカスタムソリューションを構築する場合や、サードパーティデータのインポート、複雑なデータ関連を複数のタブで扱うケースにも特に有用です。
APIでMulti-選択するLookup項目を更新する方法
Zoho CRM APIを使用して、プログラムでマルチ選択Lookup項目を更新する方法は2つあります。
✅ 方法1:リンク用タブを使用
リンク用タブでデータを作成することで、データ間の関係が確立され、両タブのマルチ選択Lookup項目に反映されます。
Delugeスクリプト例:
- mp = Map();
- mp.put('Trainers', trainerId);
- mp.put('Courses', courseId);
- createRecord = Zoho.crm.createRecord('Trainers_and_Courses', mp);
- info createRecord;
メモ:
➤ Trainers_and_Courses - 紐付け用タブのAPI名前です。
➤ Courses_Multi_Select_Lookup - Trainersタブ内にある複数選択可能なルックアップ項目のAPI名前です。
➤ Trainers_Multi_Select_Lookup = Coursesタブ内に作成した複数選択可能なルックアップ項目のAPI名前です。
✅ アプローチ2:REST APIを直接利用して更新(リンク用タブなし)
また、CRM REST API(v2.1)を利用して、複数選択ルックアップ項目を直接更新することも可能です。
サンプルスクリプト:
- // 複数のコースデータのマップを格納するリストを初期化
- recordMapsList = list();
- // 最初のコースのIDと名前でマップを作成
- firstCourse = Map();
- firstCourse.put('id',5117245000058535290);
- firstCourse.put('名前','Course Y');
- // ルックアップ項目API名前を使って最初のコースを別のマップでラップ
- courseOneMap = Map();
- courseOneMap.put('Courses_Multi_Select_Lookup',firstCourse);
- // 最初のコースのマップをリストに追加
- recordMapsList.追加する(courseOneMap);
- // 2つ目のコースのIDと名前でマップを作成
- secondCourse = Map();
- secondCourse.put('id',5117245000058535300);
- secondCourse.put('名前','Course Z');
- // 同じルックアップ項目API名前を使って2つ目のコースを別のマップでラップ
- courseTwoMap = Map();
- courseTwoMap.put('Courses_Multi_Select_Lookup',secondCourse);
// second course のマップをリストに追加します
- recordMapsList.追加する(courseTwoMap);
- // multi-選択する lookup 項目の最終マップを作成します
- multiSelectLookupFieldMap = Map();
- multiSelectLookupFieldMap.put('Courses_Multi_Select_Lookup',recordMapsList);
- // 項目マップを「data」キーの下のリストに追加します(CRM API の必須形式)
- data = list();
- data.追加する(multiSelectLookupFieldMap);
- // PUTリクエストで送信する最終データの内容を作成します
- データの内容 = Map();
- データの内容.put('data',data);
- // API 通話を実行し、関連付け済みのコースでTrainerデータを更新します
- updateRecord = invokeurl
- [
- url :'https://www.zohoapis.com/crm/v7/Trainers/5117245000059509243'
- 種類 :PUT
- パラメーター:データの内容.toString()
- connection:'zohocrm'
- ];
- info updateRecord;
メモ:
➤ Trainers - Coursesのmulti-選択するlookup項目が存在するタブのAPI名前です。
➤ Courses_Multi_Select_Lookup - Trainersタブ内のmulti-選択するlookup項目のAPI名前です。
結論:
Linkingタブのアプローチまたは直接REST APIでの更新を活用することで、Zoho CRMのマルチ選択ルックアップの関連付けを効率的に管理・自動化できます。ご利用の連携シナリオに最適な方法を選択してください。
カスタムSolution作成者 Yogeshwari N| Zohoパートナーサポート