Hello everyone!
Welcome back to another week of Kaizen. In last week's
post in the
Kaizen series, we discussed how subforms work in Zoho CRM and how to manipulate subform data using Zoho CRM APIs.
In this post, we will discuss how to manipulate a multi-select lookup fields using Zoho CRM APIs.
Multi-select lookup field
The Multi-Select Lookup Field enables you to establish a many-to-many relationship between two different modules in CRM. It allows you to associate multiple records with each other, from two different modules.
These associations are stored in an individual module called "
Linking Module". Consider there are two modules,
Employees and
Skills. The Employees module contains details regarding Zylker's workforce, and the Skills module contains details regarding various skills like Social Media Marketing and Content Marketing.
We want to associate multiple skills to an employee. So, a multi-select lookup can be created in the Employees module. When doing so, similar multi-select lookup field will be automatically created in the Skills module, along with the EmpXSkills linking module by Zoho CRM. The underlying data model is described in the below image.
The above chart shows the data model representation when you create a multi-select lookup field in a module. Here, there are two lookup fields—one pointing to the Employees module and the other pointing to the Skills module. In the linking module, two lookup fields (lookup fields with api names - Employees and Skills) will be created. The lookup fields, one pointing to Employees and the other pointing to Skills from the linking module, establish a connection between the linking module and its associated module.
How to associate an employee's skills while creating an Employee record through the Insert Records API
API names you need before invoking the API
- The API name of the multi-select lookup field in the modules you want to insert data.
- API names of the lookup fields in the linking module. Eg: here the API Name of the linking module is "EmpXSkills" and the corresponding lookup field api names are "Employees" & "Skills". You can use the Fields Metadata API for Employees and Skills to get these details.
Step 1
Know the API name of the multi-select lookup field in the module (In our case, Skills is the multi-select lookup field in the Employees module)
To know the API names of the multi-select lookup fields, make a
GET - Fields Metadata API call. Among all the Employee's fields, multi-select lookup field can be identified by the json key
data_type with the value
multiselectlookup. The corresponding connected module can be found from the json connected_module. Below is the API call & response for such a multi-select lookup field.
Request URL : {api-domain}/crm/v6/settings/fields?module=Employees
Request Method: GET
Sample Response:
The above highlighted keys are the details of the Multi select lookup field. The corresponding keys are explained below:
"multiselectlookup": { "display_label": "Skills", //Display label of the MxN field in the Employees module "linking_module": { "api_name": "EmpXSkills", //API name of the linking module "id": "5725767000002166520" ... "lookup_apiname": "Employees", //API name of the Employee lookup field in the linking module "connected_module": { "api_name": "Skills", //API name of the connected module "id": "5725767000002165263" }, "api_name": "Skills_In_Related_List", //API of the related list of the connected module Skills in the Employees module. "connectedfield_apiname": "Employees", //API Name of the multi-select lookup field in the connected module (Skills) "connectedlookup_apiname": "Skills", //API name of the Skills module lookup field in the linking module. "id": "5725767000002166655" //Related List ID }, ... |
Step 2
Using the api_name of the linking module, make a
GET Fields metadata API call to get the list of
fields (along with their
api_name) present in it. It lists all fields of the linking module in the response.
Sample Request and Response
Search for the "data_type": "lookup" in the response. The lookup fields represent the connected modules in association with the linking module.
For example, in our case, the response will have two lookup fields. One of the lookup fields (with api name Employees) points to the Employees module, and the other one (with api name Skills) points to the Skills module.
Step 3
To associate records via the MxN field, you need to know the
IDs of the records in the Skills module. Here is the input body to insert the skills in the
Employee module with the multi-select lookup field
Skills.
Here is the input body to insert a new Employee record and associate a Skills record to it using the MxN field.
Request URL: {{api-domain}}/crm/v6/Employees
Request Method: POST
Sample Input:
{ "data": [ { "Name": "Patricia", "Position": "Marketing Specialist", "Year_of_Experience": 5, "Skills": [ //API name of the multi-select lookup field in Employee module { "Skills": { //API Name of the lookup field pointing to the Skills module in the linking module "name": "Marketing", "id": "5725767000002149427" //Record ID in the Skills module } }, { "Skills": { "name": "Social Media Marketing", "id": "5725767000002149476" } } ] } ] }
|
How to disassociate an employee & skills relation while updating an Employee record through the Update Records API
Request URL: {{api-domain}}/crm/v6/Employees
Request Method: PUT
Sample Input:
{ "data": [ { "id": "7890710000097291", "Name": "Patricia", "Position": "Marketing Specialist", "Year_of_Experience": 5, "Skills": [ { "_delete": null, //This association in the linking module will be deleted "id": "5725767000008126002" //Record created in the linking module } ] } ] }
|
Sending _delete:null will cause delinking of the association.
How to associate an employee's skills via "Linking Module"
You can associate the relationship between Employees and Skills module by creating records in the Linking module (EmpXSkills). Use the API names for the corresponding lookup fields, Employee (API Name: Employees) and Skills (API Name: Skills) in the input body.
Request URL: {{api-domain}}/crm/v6/EmpXSkills
Request Method: POST
Sample Input
{ "data": [ { "Name": "Patricia", "Employees": { "id": "5725767000002161001" //unique record ID in the Employees module. GET your ID here }, "Skills": { "id": "5725767000002149476" //unique record ID in the Skills module. GET your ID here } } ] } |
The id in the above response is the Primary Key ID of an Employee-Skill association record in the linking module. This ID can later be used to do specific operations like association update or deletion via API.
How to disassociate an employee & skills relationship via "Linking Module"
Use the Delete Records API to delete the record which corresponds to the specific relation between
Employee and
Skills module in the
EmpXSkills module. You can get the record ID for the specific association using the
Get Records API for the linking module.
Use the Delete Record API to delete the specific record, thereby deleting the specific association between the Employee and Skills record. Please note that only the association is removed, and not the individual records.
Sample Request and Response

When to use create/update operation in Employees/EmpXSkills module?
Use "Employees" module: When you want to create/update records in the Employees module, and associate the record with a Skills record in a single API call.
Use "EmpXSkills" module: When you want to associate/disassociate the relationship between existing Employees and Skills records.
Retrieve data via COQL API and Bulk Read API
There may be situations where you need to fetch records based upon certain conditions.
For example, Zylker's HR team wants to retrieve the list of employees having more than 4 years of experience and are experts in Social media marketing. In this case, they can use Zoho CRM's COQL API or Bulk Read API. Let's see how to achieve this.
Retrieving MxN data via COQL API
We know that both the Employees and Skills modules' association data is maintained in the linking module. In order to retrieve data from the linking module, query using the API name of the lookup fields in the linking module.
Request URL: {{api-domain}}/crm/v6/coql
Request Method: POST
Sample Input:
{
"select_query" : "select Employees.Name as employee_name, Employees.Year_of_Experience as employee_experience, Skills.Name as skill_name from EmpXSkills where Employees.Year_of_Experience > 4 and Skills.Name like '%Social%'" }
|
From the SQL perspective, above COQL can be interpreted as
select emp.Name as employee_name, emp.Year_of_Experience as employee_experience, skill.Name as skill_name from EmpXSkills left join Employees as emp on EmpXSkills.Employees = emp.id left join Skills as ski on EmpXSkills.Skills = ski.id where emp.Year_of_Experience > 4 and ski.Name like '%Social%' |
Sample Response
Retrieving MxN data via Bulk Read API
Bulk Read API allows you to fetch a large set of data i.e., you can fetch a maximum of 200,000 records in a single API call.
To export linking module records, use its API name.
Request Method: POST
Sample input to export linking module's records:
{ "callback": { "method": "post" }, "query": { "module": { "api_name": "EmpXSkills" //API name of the linking module }, "file_type": "csv" } } |
Export linking module records that meet the specified criteria
To export linking module's records based on the given criteria above (similar to the COQL API).
{ "callback": { "method": "post" }, "query": { "module": { "api_name": "EmpXSkills" }, "fields": [ "Employees.Name", "Employees.Year_of_Experience", "Skills.Name" ], "criteria": { "group": [ { "field": { "api_name": "Employees.Year_of_Experience" }, "comparator": "greater_than", "value": "4" }, { "field": { "api_name": "Skills.Name" }, "comparator": "contains", "value": "Social" } ], "group_operator": "AND" } } }
|
As the API is an asynchronous API, the response will not be available instantly; the bulk read job is scheduled, and the status can be checked. Once the job is completed, you will be notified in the callback URL. The records are available in a downloadable CSV file or ICS file (for events). See the
Bulk Read API document to know how to view the status of the scheduled job and download the file, along with more sample requests and responses.
We trust that this post meets your needs and is helpful. Let us know your thoughts in the comment section or reach out to us at support@zohocrm.com
Stay tuned for more insights in our upcoming Kaizen posts!
------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
Cheers!
Additional Reading:
Kaizen Posts:
Recent Topics
Daytime saving timezones messing up writer pdf
Hi, I need help for something I can't figure out. I created a Form to collect data and it is set up with my current Daylight Saving Time (GMT-3). This form is used to generate a contract (pdf Writer) with dates from an event that is being held in 4 months
Issue with locked content in Writer
Hi, I have seen the documentation which outlines how to lock specific content within a Writer document so that it can't be modified by collaborators, but I have come across an issue. When the editor locks a paragraph for example, then a collaborator can't
Deprecation of certain URL patterns for published Zoho Writer documents
Hi Zoho Writer users! We'd like to let you know that we have deprecated certain URL patterns for published and embedded documents in Zoho Writer due to security reasons. If the published or embedded documents are in any of these URL patterns, then their
Using Mail Merge Template to Print Documents with One Subform Record's Fields per Document
Hello, We have a Mail Merge template created in Zoho Writer which is not able to perform the functionality which is currently required to automate the documentation task portion of our process. The CRM module we are primarily using is based on a "Loans"
Problem with Writer and Workdrive
Hi team, I’m the super admin for our Zoho One org. WorkDrive is active, and Zoho Docs is deprecated for our org. However, Zoho Writer cannot connect to WorkDrive at all — we’ve cleared cache, tried incognito, and restarted several times. I was able to
Set to Review for all
We are testing the use of Writer as part of an internal review process for statement of work documents and have found that when the document is changed from Compose to Review by one person, that is not reflected for all others who view the document. Is
I’ve noticed that Zoho Sheet currently doesn’t have a feature similar to the QUERY formula in Google Sheets or Power Query in Microsoft Excel.
These tools are extremely helpful for: Filtering and extracting data using simple SQL-like queries Combining or transforming data from multiple sheets or tables Creating dynamic reports without using complex formulas Having a Query-like function in Zoho
stock
bom/bse : stock details or price =STOCK(C14;"price") not showing issue is #N/A! kindly resolve this problem
SOME FEATURES ARE NOT IN THE ZOHO SHEET IN COMPARISION TO ZOHO SHEET
TO ZOHO sir/maam with due to respect i want to say that i am using ZOHO tool which is spreadsheet i want to say that some features are not there in zoho sheet as comparison to MS EXCEL like advance filter and other Features which should be there in ZOHO
Zoho sheet for desktop
Hi is zoho sheets available for desktop version for windows
Tip #18: 6 Trendlines and when to use them in your spreadsheet data?
Charts are a great tool for visualizing and interpreting large chunks of data in spreadsheets. Zoho Sheet offers you 35+ chart options, along with AI-powered chart recommendations based on the data set you select. There are various chart elements that
Perform customized calculations with the new LAMBDA functions!
We released the LAMBDA function in Zoho Sheet in 2021, enabling customized calculations inside predefined functions. Now, we're extending LAMBDA's capabilities with six new functions. Each of these functions applies LAMBDA to the given input, performs
Tip #17: Easily share spreadsheets with non-Zoho account users
With efficient, collaboration-friendly options, Zoho Sheet is a popular choice among users. Sheet's external share links help you collaborate more effectively by sharing your spreadsheets with anyone outside your organization, including users who do not
Work seamlessly with Sheet's shortcuts without affecting the browser
Navigating your worksheets and performing specific actions should be a quick and easy process. That's where keyboard shortcuts come in. Shortcut keys help you accomplish tasks more efficiently, eliminating the need to move away from the keyboard. What
Zoho Sheet for iPad: Improved UI, external keyboard support, and more!
The portability and capabilities of the iPad have made it an essential device in the business world. With this in mind, we had launched an exclusive Zoho Sheet app for iPad, with device-specific improvements and enhanced usability. Now, we're improving
The new Zoho Sheet for Android: Seamless UI and advanced features
At Zoho Sheet, we know mobile apps have become the go-to platforms for creating, sharing, and storing information. And we understand the importance of an efficient and seamless app experience. We've been working hard on improving the overall user experience
Zia in Zoho Sheet now makes suggestions on conditional formats, picklists, and checkboxes
Zia, Zoho's popular AI assistant, has been helping users succeed across Zoho applications since inception. In Zoho Sheet, Zia helps users efficiently build reports and analyze data with recommendations about data cleaning, charts, and pivot table. Also,
VBA attached to button no longer works on external shared sheet
Hi - we have a Sheet that our clients use, which requires them to press a button once they've entered data. The button then triggers a flow via a webhook. The button works fine when editing within Zoho Sheet - however when shared externally it no longer
can I use zoho sheet for survey?
Hi I wanna use zoho sheet for my ARY to know consumer better so i wanna have permission to do so
How to Avoid Impacting Other Users When Hiding Columns in Zoho Sheet
Hi Team, We’re experiencing a challenge with the column-hiding feature on Zoho Sheet during collaborative sessions. When one user hides a column, it becomes hidden for all users working on the file, which disrupts others' workflows. In comparison, Excel
What are the benefits of procurement software in a growing business setup?
I’ve been exploring tools that can help automate purchasing and vendor-related tasks. I keep hearing about the benefits of procurement software, especially for businesses that are scaling. I want to understand how it helps in streamlining operations,
What formula to use in computing total hrs and decimal hrss
So , my data includes log im column , 2 breaks with 2 columns that says back and lunch and 1 column that says back and logged out. What formula should i use to be able to automatically have my total hours as I input time in each column? Thankyou
Replacing email ID,
In zoho sheets If I am sending it as an email attachments can I replace sender email ID from notifications to my email ID.
Latest Enhancements and Bug Fixes in Zoho Meeting
Hello there, We hope you're doing well. The latest updates from Zoho Meeting include enhancements like adding names for instant meetings, renaming participants, enabling text notifications for participant entry/exit, viewing details of bandwidth optimization,
Multi-video feed in webinars, custom domain options, and our integration with MS Outlook
Hi there, We hope you're doing well. With your help, we have been able to release many useful features and enhancements in 2020. We, the Zoho Meeting team, would like to thank you all for the feedback, support, and encouragement you've given as we worked
Add co-hosts in meetings, manage webinar registration and other enhancements
Hello all, This month's updates allow you to add co-hosts while scheduling meetings. You can also control your webinar registrations better by allowing or blocking registrations from the domain or country of your choice. Read on to learn more. Meeting
A new UI for distraction-free engagement in online meetings and webinars that scale up for 3000 attendees
Hello all, We're excited to share our new, refined UI for online meetings. Here's how the new UI will improve your experience during online meetings: We've re-designed Zoho Meeting's online meeting UI to enable users to fully engage in conversations
I Can't Clone Webinar that I Co-Organize
How do i get our account admin to give me permission to clone our webinars? I am a co-organizer
Latest updates in Zoho Meeting | Calendar view, Zia integration with OpenAI, edit the recurring pattern in a recurring meeting, device error notifications revamp, and more.
Hello everyone, We’re glad to share a few updates and enhancements in Zoho Meeting, including the Calendar view, being able to edit the recurring pattern in a recurring meeting, revamped device error notifications, and other enhancements that you’ll find
New enhancements in the latest version of the Zoho Meeting Android mobile app.
Hello all, In the latest version of Zoho meeting Android mobile app (v2.2.6), we have brought in support for the below enhancements. Close account: Now users will be able to close their Zoho account directly from the app. Unmute toast message: If a user
Share material, Lock Meeting and revamped feedback UI in the latest version of the Meeting iOS app.
Hello all, In the latest version of the Zoho Meeting iOS mobile app (v1.6), we have brought in the below enhancements. Share material in meeting: We have introduced share material during meeting that allows participants to view supported materials such
Latest updates in Zoho Meeting | New chat feature between an organizer and co-organizer in webinars, recording consent for webinar co-organizers and attendees in the Android app, and more.
Hello everyone, We’re excited to share a few updates for Zoho Meeting. Here's what we've been working on lately: A new chat feature between an organizer and co-organizer in webinars, recording consent for webinar co-organizers and attendees in the Android
Latest updates in Zoho Meeting | A new Files tab to manage all your PDFs, PPTs, Video files and recordings, live transcription , ability to lock settings and adaptive echo cancellation.
Hello everyone, We’re excited to share a few updates for Zoho Meeting. Here's what we've been working on lately: A new Files tab to manage all your PDFs, PPTs, Video files and recordings, live transcription during sessions, ability to lock settings and
Latest updates in Zoho Meeting | Meeting Rooms , Pin video feeds and customize from and reply-to email addresses
Hello everyone, We’re excited to share a few updates for Zoho Meeting. Here's what we've been working on lately: Introducing Zoho Meeting Rooms, an immersive solution for teams to connect over virtual meetings in video conference rooms. You can also pin
Latest updates in Zoho Meeting | New top bar video layout, a revamp of our in-session settings and now import webinar registrations with a CSV file
Hello everyone, We’re excited to share a few updates for Zoho Meeting. Here's are some of them : We have moved audio, video, virtual background and preferences under a single settings pop-up for better user navigation. You can now upload a CSV file containing
Important update: Changes in email sender policies
Hello, This is to announce important changes to email sender policies from Google that may impact your use of Zoho Meeting. Restriction on public domains Effective February 1, 2024, Google is implementing policies that will affect the configuration of
Camera access
My picture doesn't appear in a group discussion. (The audio is fine.) The guide says "Click the lock icon on address bar," but I can't find it. Advise, please
Chat for webinar session, schedule meeting session for 24 hours - Zoho Meeting iOS app update
Hello, everyone! In the most recent iOS version of the Zoho Meeting app, we have introduced the chat functionality for the webinar session. To access this feature, the Organizer should have the 'Public chat' option enabled on the Zoho Meeting desktop
Invoice Copy 2005116990189
Please provide the invoice for the trancaction 2005116990189
Darshan Hiranandani About
Hi, I’m Darshan Hiranandani, a dedicated software developer with a strong passion for creating efficient and user-friendly applications. With a degree in Computer Science and several years of experience in the tech industry, I specialize in full-stack
Next Page