Kaizen #26 - Linking module and Multi-select Lookup fields

Kaizen #26 - Linking module and Multi-select Lookup fields

Hello everyone!
Welcome to another post in the Kaizen series!
This week, we will discuss how to add/delete values to a multi-select lookup field through linking modules via API and achieve many-to-many relationships.

Your data in CRM are often inter-related. For example, you may want to associate an account with contact. You can easily achieve this through a lookup field in the Contacts module that looks up to an account in the Accounts module.

As you can see, this is a one-to-many relationship. However, you can select only one value using a lookup field.

Now, consider a scenario where you want to associate the same contact with two accounts. Here, the lookup field is not helpful as it lets you choose only one record.

To establish many-to-many relationships, you must use the multi-select lookup field.

Example Scenario
Problem
Zylker Real Estates manages buying/renting apartments. They have two modules in their CRM—Listings and Leads.

Jack Smith is one of the leads and is interested in looking at three listings (C-807, B-196, and H-786).
Apart from Jack, three other leads—Jane, Jill, and Derek—are all interested in looking at C-807.

When you create a Lead record for Jack Smith, there must be a provision to choose from the three listings he is interested in. Also, the listing C-807 should have four leads associated with it. So there is a need to choose many values from a lookup field. A regular lookup field lets you choose only one value.

Solution
In this case, Zylker Real Estates could create a multi-select lookup field in the Leads module, as shown in the image below.



So, data in both modules would look like below.



Consider Jack Smith requests a negotiation for each listing, and the negotiated rent differs for all three listings. Now, where can this field be stored?
  • It cannot be a field in Jack's record, as there are three different prices based on each house.
  • It cannot be a field in the listing's record either, as other prospects apart from Jack may have offered different negotiations for it.

To manage this diversity, Zoho CRM allows you to create a Linking Module. Each association between two modules (created via a multi-select lookup field) is a record in the linking module. So, when three listings are associated with Jack, three separate records are created in the Linking Module that lets you create separate Negotiated Rent in each record.



Adding values to a multi-select lookup field through an API
When you manipulate records through the API, it is not possible to add values to a multi-select lookup field directly from the module where the multi-select lookup field is present, like how you add values to a lookup field.
Instead, you can create a record in the linking module by passing the values of both the lead and listing's IDs.
Now, let us try to add another Listing (A-101) to the lead Jack Smith.

Details required
  • API name of the Linking module. You can obtain this through the Modules API. The value "linking" of the key "generated_type" indicates that this is a linking module. In our case, it is Leads_vs_Listings.
  • API Names of the lookup fields pointing to the Leads and the Listings module. They are the fields of the Linking module. Here, they are Interested_Leads and Interested_Listings.
  • Record IDs of the records from the two modules that you want to associate with the multi-select lookup field.

Request URL: {{api-domain}}/crm/v2/Leads_vs_Listings
Request Method: POST

Sample Input

{
    "data": [
        {
            "Interested_Leads": {
                "id": "3652397000001970024" //ID of the Lead Jack Smith
            },
            "Interested_Listings": {
                "id": "3652397000001988001" //ID of the Listing A-101
            }
        }
    ]
}
Sample Response

{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2020-04-02T18:27:10+05:30",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "3652397000000186017"
                },
                "Created_Time": "2020-04-02T18:27:10+05:30",
                "id": "3652397000001987014",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "3652397000000186017"
                }
            },
            "message": "record added",
            "status": "success"
        }
    ]
}
In the UI, for the lead Jack Smith



 In the UI, for the listing A-101



In the UI, in the linking module



Deleting/dissociating values from a multi-select lookup field through an API
Deleting the record from the linking module deletes the association between the two modules.
Here, let us delete the association between the lead Jack Smith and the listing A-101. Pass the ID of the record that associates these two in the linking module.

Request URL: {{api-domain}}/crm/v2/Leads_vs_Listings/{{record_id_in_the_linking_module}}
Request Method: DELETE

Sample URL: {{api-domain}}/crm/v2/Leads_vs_Listings/3652397000001987014

Sample Response

{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "3652397000001987014"
            },
            "message": "record deleted",
            "status": "success"
        }
    ]
}
In the UI, for the linking module





Fetching the Related Records of a Linking Module
When you view a record's details, you can find a multi-select lookup field as a related list in the associated module. In our case, you can find Listings as a related list in the Leads module, while Leads is a related list in the Listings module.

This related list will also display details of the Linking Module, if you have chosen to create one, as in the below image.



To fetch the related list details from a module, you need
To fetch the related records associated with the Listings module, the request URL must contain the module name, the ID of the record whose related records you want to fetch, and the related list API name.

Let us now fetch the related records associated with the Listing H-786.

Request URL: {{api-domain}}/crm/v2/Listings/3652397000001978027/Leads3
Request Method: GET

Sample Response

{
    "data": [
        {
            "$approval": {
                "delegate": false,
                "approve": false,
                "reject": false,
                "resubmit": false
            },
            "Owner": {
                "name": "Patricia Boyle",
                "id": "3652397000000186017",
                "email": "p.boyle@abc.com"
            },
            "Modified_Time": "2020-04-02T17:54:05+05:30",
            "Email": null,
            "$currency_symbol": "Rs.",
            "Interested_Leads": {
                "name": "Jack Smith",
                "id": "3652397000001970024"
            },
            "Interested_Listings": {
                "name": "H-786",
                "id": "3652397000001978027"
            },
            "Created_Time": "2020-04-02T16:12:27+05:30",
            "$review_process": null,
            "$editable": true,
            "$orchestration": null,
            "Name": "10004",
            "Last_Activity_Time": "2020-04-02T17:54:05+05:30",
            "Modified_By": {
                "name": "Patricia Boyle",
                "id": "3652397000000186017",
                "email": "p.boyle@abc.com"
            },
            "$review": null,
            "$state": "save",
            "$process_flow": false,
            "Negotiated_Rent": "4500",
            "id": "3652397000001980020",
            "Created_By": {
                "name": "Patricia Boyle",
                "id": "3652397000000186017",
                "email": "p.boyle@abc.com"
            },
            "Secondary_Email": null,
            "Email_Opt_Out": false,
            "$approved": true
        }
    ],
    "info": {
        "per_page": 200,
        "count": 1,
        "page": 1,
        "more_records": false
    }
}

In the UI,



We hope you found this post useful. Write to us at support@zohocrm.com if you have any questions, or let us know in the comment section.

Cheers!

    • Recent Topics

    • Important updates to your connectors

      Hello everyone, Greeting from Zoho Creator! We're excited to announce that we'll be rolling out significant backend updates to Zoho Creator's built-in connectors to enhance security by following the latest frameworks. The existing version of some of the
    • Create, collaborate, and manage agreements with Zoho Sign

      Agreements drive business. We launched Zoho Sign in 2017 as a simple digital signature tool to sign agreements from anywhere, at any time. Over the years, we've learned that most agreements go through last-minute changes before they're signed. Our users
    • Function #25: Automatically generate purchase orders from a sales order

      We kicked off the "Function Fridays" series with the goal of helping you automate your everyday accounting tasks. As we delve into today's post, I'm delighted to announce that we're here to present the 25th custom function in this series. While it is
    • DNS set up

      I want to create an email with my company domain. When I tried to add new record with cloudflare it didn't work. The DNS record can't be manually added. I followed the instruction but still can't add it. Could you help?
    • hiding a topic from all but one segment (or list)

      My organization sends out a number of newsletters using Zoho Campaigns. One of those newsletters is for volunteers. In order to become a volunteer, a person has to first go through our volunteer orientation (training). After that, they can receive newsletters
    • How do I set up this automation correctly?

      When contacts enter my Subscribers list, I want it to reference a custom field to see if it is empty. Then I want it to do two things: If empty: Assign a tag based on a different custom field. If that custom field is empty, assign a different tag. If
    • Function #62: Display associated Quote on Invoice details screen

      Hello everyone! Today, we are sharing a Related List script that makes it easy to view and access the quote from which an invoice was created right from the invoice details screen. This Related List displays the Quote number and Amount, allowing you to
    • Desk x CRM Integration

      Howdy! We currently use SalesIQ but we are considering moving across to Desk as it seems to have more functionality that we want. One of the pulls is the ability for our customers to self serve. But, I might be getting over excited and not actually need
    • Function #53: Transaction Level Profitability for Invoices

      Hello everyone, and welcome back to our series! We have previously provided custom functions for calculating the profitability of a quote and a sales order. There may be instances where the invoice may differ from its corresponding quote or sales order.
    • Issue with Save & Share Link – Works for Others but Not Creator

      I’ve enabled the "Save and Share" feature in Zoho Forms, and it works correctly for all users accessing the public link—except for me (the form creator). Issue Details: When I save and share the link, recipients see a “no permission” error. The form is
    • Save the pdf report from a registration form in a Folder

      Through Zoho Forms I created a registration form with quite a lot of rules to handle different variables (TEAM types, payment in installments, etc.), and the result is pretty good. The automatic PDF that is sent to the respondent upon submission is already
    • zoho forms integration to zoho work drive

      Scenario: A user fills out a Zoho Form, entering details such as email, mobile number, and other required information, and uploads supporting documents like PAN, Aadhaar, etc. Upon submission, the data is available in Zoho Forms Reports. Requirement:
    • Zoho Forms to Zoho CRM Integration failed - can I restart it?

      The integration of Zoho Form to Zoho CRM has failed. Is there a way for me to restart it for the impacted entry?
    • insert an equation, but in document, it shows an image not available.

      I'm new to Zoho writer and used Zoho writer in desktop app version . When I inserted an equation, I got an image not available sign. Any help is appreciated. Thanks, Charles
    • Zoho Desk Android app update - Swipe action customization

      Hello everyone! We have brought in support for the swipe action customization in latest version(v2.9.13) of the Zoho Desk Android app update, enabling you to configure left and right swipe gestures on tickets to carry out the actions swiftly without opening
    • Import KB template OR Export template for zoho desk?

      Greetings. Can you tell me if there is a way to get an EXPORT of my KB articles? OR is there a template you supply for importing KB articles into my zoho desk? I am looking for a method of understanding what fields can be imported, and what their possible
    • XML format to import knowledgebase into Zoho Desk

      Hi, We just started to use Zoho Desk and want to import our knowledgebase from our old support system (Freshdesk) to Zoho Desk. Can anyone give us information about the format of xml file to import? There is no explanation on the related page.
    • Zoho Desk integration with Power BI

      Hi, I want to be able to create a Power BI report which has live updates of ticket data from zoho desk, is this possile at all? Thanks Jack
    • Arranging Ticket Templates

      Is there any way to arrange our ticket templates? It doesn't look very organised when it's just arranged according to when they were created. We want the list to look more organised, by arranging/grouping them by topics, or even just by alphabetical
    • What they mean with "Portal"?

      I just downloaded this app to take my personal notes on digital art studio because it seemed to me the most comfortable app to do it, I use it very often, what do they mean by “no activity on your portal”? I have about 1 year of work here and I don't
    • favorites no longer listed

      Hello, I can no longer navigate to my Favorites from the pulldown at the top of my grid view (see attached screenshot). I wasn't able to find it anywhere! Please help me display my Favorites. Thank you!
    • Notecards Disappeared

      Got a new phone. Downloaded and signed in Zoho Notebook. Not finding the Note cards. Just Empty Note books. Frustrating.
    • Table Errors

      Hello, I'm new to Zoho Notebook and using it on several Mac/Apple devices. My question is regarding tables: Why do they become broken, and how to fix the error without retyping all my data? (Please see the screenshot attached.)
    • Online Calculator with Zoho Forms?

      I'd like to build a custom calculator on my website. Zoho Forms seems to offer all the fields for basic calculations performed live without pressing any "Calculate" buttons. Unfortunately, there is still that "Submit" button at the bottom. There is nothing
    • Zoho Tables instead of Zoho Creator Spreadsheet reports <3

      That would make my day for sure. Zoho Creator is create, but miss data entering as AirTable/Spreadsheet can. Seeing Zoho putting effort in this makes me think maybe one day we could see a similar interface for Zoho Creator spreadsheet reports. B.
    • Notebook Stack

      Hi Everyone I Hope you´re fine, I´m sorry if this idea was posted before (I made a search but I haven´t find anything related). So, Having the possibility of stacking notebooks would be an interesting way to order notebooks that correspond to the same
    • Writing on sketch cards is bugged when zoomed in

      When zoomed in, it writes a noticeable distance above or to the side of where you're actually trying to write. The further you're zoomed in, the more noticeable it is. Zooming is also entirely absent on the desktop version.
    • Swipe between notes on iPhone

      It'd be convenient if I could move from one note to the next in a notebook simply by swiping left to right.
    • Sales IQ chat is not working in signed android apk

      I have integrated ZOHO sales IQ support chat and i have followed each step and its working fine in my development build but when i create signed APK for it. Chat does not work in it and showing awaiting for detail. I previously asked the same query but
    • COQL order by COUNT not working

      Dear community, I am trying to get a list of deal amounts per planner working on it and sorted to get see who has the least amount of deals. For some reason, I am unable to use sort by in combination with a COUNT. My original code was: query = "select
    • I want to duplicate a report and name it something else

      Hi, I have created a report, and now want to reproduce it and call it something else. so that I will end up with TWO separate reports with different titles. Please tell me how do I copy / reproduce a report please
    • Zoho CRM: Sales Rep Professional Certification Program on Coursera

      We are happy to share that we have published the Zoho Sales Representative Professional Certificate in partnership with Coursera, a leading platform for online learning and career development that offers access to courses and degrees from leading universities
    • OS X Notebook quits immediately upon launch

      NoteBook for OS X (Sequoia, but also under Sonoma) always quits immediately upon launch (so I cannot use the "Attach user log" option). I've restarted my MacBook but the problem persists. If it helps, attached is a diagnostic report from Library>Log
    • Can External users upload files or images to WorkDrive?

      I want to know if it is possible for someone externally through a link and PW be able to upload files and images onto WorkDrive?
    • Multi-line fields character limits

      Is there a way to set the character limit higher on multi-line fields so that we are not losing information pasted into the field? When the text is entered or pasted, there is no error to say that the text is too large. After saving and going back to view most of the text is gone.   Also, when viewing the resume, the text is not wrapped in the multi line fields and can t be read without scrolling across the page.
    • Taz bot not working — What should I do to resolve this issue?

      I am experiencing issues with the Taz bot in Zoho Cliq—not receiving responses or it does not seem to work as expected. Could you please explain why the Taz bot might not be functioning and what steps I should take to resolve this issue? Thank you!
    • OneNote Migration

      I am trying to migrate two notebooks from OneNote. For five days now I have had no notification that migration has completed and the migration page show 50% complete - one notebook completed one not finished. It just stays like this. I am unable to cancel
    • Set various time slot reminders for task and event

      Hi I would like known if there is possibility to set various time reminders for a task or event like we have the possibility to do in google calendar or google task. For example I'am creating an event or task and I want to be alerted before 30min and
    • Zoho Calendar not functioning---cannot edit, add attendees, etc.

      Hello, My calendar is acting strange. I'm using Chrome as my browser and pop ups are not blocked (the calendar worked fine yesterday). When creating an event, I'm not able to "edit" the event and add attendees, etc. The link is non-responsive. I cannot
    • Spilt Axis for stacked column and line graph

      Each month around this time I prepare a business review deck. One of the biggest annoyances I have with Zoho, also happens to be something that most other platforms have provided for a long time now, and that is being able to create a chart with stacked
    • Next Page