Kaizen #87 Multi-user Lookup in API V4

Kaizen #87 Multi-user Lookup in API V4

Hello everyone!

Welcome to another week of Kaizen! In this post, we will discuss multi-user lookup fields and how to handle them in API.

What is multi-user lookup?

    Multi-user look up is a lookup field that lets you add multiple users to a module record. It allows you to establish many-to-many relationships between modules and users in CRM.

     For instance, consider the example of a real estate firm - Zylker Real Estates. Zylker Real Estates uses Zoho CRM for managing properties, buyers, sellers, etc.  The real estate agents in Zylker Real Estates are added as users . We might have one or more agents managing a single property. A multi-user lookup field in the property module allows multiple agents to have read/write access to one property record.

      You can add a multi-user lookup field to a module through the module builder. Go to Setup > Customization > Modules and Fields > {Module}. This field can be added in all modules except the Calls, Tasks,Meetings and Linking Modules. You can add only 1 multi-user lookup field in a module that can include up to 10 users. In the screen-shot below, multi-user lookup field "Associated Agents" is added with full record accessibility. 



      When you enable 'Allow Record Accesibility', users selected in the multi-user lookup field will be able to 'Edit', 'Delete', 'Change the owner' of that respective record. You can also grant different levels of permission to the users. You can choose from Read only, Read/Write, Full access.

Handling multi-user lookups through API

 Let us see how to handle multi-user lookup fields through API. Note that, we have used the V4 API in examples, here.

Inserting value to multi-user field 


You can use Insert Records API to add a record with multi-user lookup. This support is available only from CRM API version 2.1 and up.
For example, for Zylker Real Estates a new property "Villa" can be added with the below API request. Two associated agents are also added.
Details Required : 
  • ID of the users that you want to add to the multi-user field. You can get this from Get Users API In this example 431581000000278001 is the ID of the user J Smith and 431581000000258001 is the ID of the user Patricia Boyle.
  • The connectedlookup_apiname and api_name for the multi-user field that you want to add. You can obtain these details from the multi-user field's json object in the response of Field Meta Data API of the Properties module. 
Sample Response to field meta data API

Request URL :  {api-domain}/crm/{version}/settings/fields?module={module_api_name}
Request Method: GET

{
    "fields": [
        {
            .
            .
            "display_label": "Associated Agents",
            .
             .
            "api_name": "AssociatedAgents",
            .
            .
            "multiuserlookup": {
                "display_label": "Users",
                "linking_module": {
                    "api_name": "Properties_X_Users",
                    "id": "431581000000701218"
                },
                "lookup_apiname": "userlookup221_7",
                "connected_module": null,
                "api_name": "Users7",
                "connectedlookup_apiname": "Agents",
                "id": "431581000000701345",
                "record_access": true
            },
            .
            .

        }
    ]
}

Sample Input to add a record with multi-user lookup

Request URL : {api-domain}/crm/{version}/{module_api_name}
Request Method: POST

{
    "data": [
        {
            "Property_Name": "Villa",
            "AssociatedAgents": [//api_name
                {
                    "Agents": {//connectedlookup_apiname
                        "id": "431581000000278001"
                    },
                },
                {
                    "Agents": {//connectedlookup_apiname
                        "id": "431581000000258001"
                    },
                }
            ],
        }
    ]
}

This is what the record looks like in UI.



Sample Response

{

    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2023-05-25T12:52:03+05:30",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "431581000000258001"
                },
                "Created_Time": "2023-05-25T12:52:03+05:30",
                "id": "431581000000697288",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "431581000000258001"
                },
                "$approval_state": "approved"
            },
            "message": "record added",
            "status": "success"
        }
    ]
}

Fetching the value of multi-user field


You can use Get Records API to fetch details of your multi-user lookup field. Note that it is returned in the response only when you fetch a specific record. Let us see how to fetch details of a record.

Details Required : ID of the record for which we need to fetch the multi-user field's value

Request URL : {api-domain}/crm/{version}/{module_api_name}/{record_id}

Request Method: GET

Sample Response 

{
    "data": [
        {
            "AssociatedAgents": [
                {
                    "Agents": {
                        "name": "Patricia Boyle",
                        "id": "431581000000258001"
                    },
                    "id": "431581000000697290"
                },
                {
                    "Agents": {
                        "name": "J Smith",
                        "id": "431581000000278001"
                    },
                    "id": "431581000000697289"
                }
            ],
            "id": "431581000000697288",
            "$canvas_id": null,
            "$has_more": {
                "AssociatedAgents": false
            }
        }
    ]
}

Here the highlighted IDs are the IDs of the linking modules created for the multi-user fields. Unlike linking modules for multi-select lookups, these are not exposed in the UI. 

Disassociating users from the multi-user lookup field


You can use Update Records API with the key _delete to disassociate users from a multi-user lookup. You can refer to the sample input below for the same.

 Details Required : ID of the module records and ID of the linking module of multi-user lookup. These can be obtained from the GET Record Response.

Sample Input

Request URL : {api-domain}/crm/{version}/{module_api_name}/{record_id}  
Request Method: PUT



{
    "data": [
        {
            
            "AssociatedAgents": [
                {
                    
                    "id" : "431581000000697061" ,
                    "_delete" : null
                }
            ]
        }
    ]
}

Here the highlighted ID inside the AssociatedAgents array is the ID of the linking module record. You can obtain the ID from the Get Records API response

Sample Response


{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2023-05-24T15:15:28+05:30",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "431581000000258001"
                },
                "Created_Time": "2023-05-24T14:30:23+05:30",
                "id": "431581000000697060",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "431581000000258001"
                }
            },
            "message": "record updated",
            "status": "success"
        }
    ]
}


We hope you found this post useful and it has given you a better understanding of multi-user lookups. We will meet you next week with another interesting post. 

If you have any questions,  let us know in the comment section or write to us at support@zohocrm.com 

    • Recent Topics

    • How can we disable "My Requests"?

      We are not using this functionality in our system at all and our users get confused.
    • PayPal payment received recording problem

      Hi, A little while back one of our customers used the PayPal payment option to pay an invoice For some reason though the payment is showing up twice within the Payments section of the invoice! Instead of setting the invoice value to ZERO, it now shows a negative value Anyone else face this problem? I've checked PayPal and there is only 1 payment in reality... A bug? Actonia ps: for anyone from Zoho Customer Service or tech team,  its Invoice 785 in our account
    • server response: 451.4.7.1

      Good day.  Some email clients of our domain receive an error about sending and receiving letters. while for the rest everything works fine. access to the mail made by pop protocol. Bless the mistakes: "server response: 451.4.7.1 System error". 
    • string(87) "{"code":"INVALID_TOKEN","details":{},"message":"invalid oauth token","status":"error"} " grtting this error

      Using access token i am trying to add sales orders through api but it is throwing errors like the above i have mentioned. Please help me for that
    • How to mute chat notification sound by default in Zoho SalesIQ?

      We’ve recently embedded the Zoho SalesIQ chatbot on our website, and we’ve noticed that notification sounds sometimes play even when the visitor hasn’t interacted with the chat widget yet. We’re trying to understand two things: Why do these sounds occur
    • Kanban View for Projects.

      At our organization, we describe active projects with various statuses like "In Proofing" or "Printing" or "Mailing". In the Projects view, one can set these project statuses by selecting from the appropriate drop-down. While this works, it's difficult to view and comprehend the progress of all of your projects relative to each other in a table. Creating a Kanban view for projects where I can move them from one status to another allows me to see where each project is in the order of our workflow.
    • How to Hide Article Links in SalesIQ Answer Bot Responses

      I have published an article in SalesIQ, and the Answer Bot is fetching the data and responding correctly. However, it is also displaying the article link, which I don’t want. How can I remove the link so that only the message is shown?
    • Add RECURRING option when adding email to calendar events

      When you add an email to a calendar event, there is no option to make that new calendar event into a recurring event.  It is counterproductive to make an event from your email to then have to go to your calendar, find the event, and make it recurring. 
    • Free Plan mail accounts details

      In the zoho mail pricing there's a free plan that includes: FREE PLAN Up to 25 Users 5GB* /User, 25MB Attachment Limit Webmail access only. Single domain hosting. I need to make sure that I'm able to create multiple email accounts in the form of: name@domain.com
    • LINE Auto Message Connect to Zoho

      When I integrated LINE into the CRM, I was prompted to disable “Chat,” “Auto Response,” and “Greeting Messages,” and to enable the webhook. However, since I have already set up some auto-reply features in LINE, including Rich Messages and greeting automation,
    • Option to block bookings from specific email address or ip adresss in zoho booking

      Sometime few of our client keep booking irrelevant booking service just to resolve their queries and they keep booking it again and again whenever they have queries. Currently its disturbing our current communication process and hierarchy which we have
    • Threaded conversations for emails sent via automation

      Hi Guys, I hope you are doing well. Don't you guys think we should have an option in a workflow to notify users either as a new email or the previous email thread. For example, if you have one deal in the process and there are 10 different stages during
    • Create folder is fetch fails

      coming from zapier... zapier has a google drive task that searches for a specific folder in google drive, and if it fails to find the folder it will create a folder based on the search criteria, and contine along the singluar path of the flow. Trying
    • Meetups de Usuarios de Zoho - Noviembre 2025

      ¡Hola, Comunidad! Durante el mes de noviembre celebraremos los Meetups de usuarios de Zoho, encuentros presenciales pensados para quienes queráis mejorar vuestras estrategias de lead nurturing y aprender a sacar el máximo partido a herramientas como Zoho
    • Introducing 8 New Connectors in Zoho DataPrep!

      We’ve just made data management even easier - Zoho DataPrep now supports 8 new external connectors to help you build more robust, scalable ETL pipelines. Why it matters: ✅ Broader data access ✅ More automation, less manual work ✅ Smarter pipelines, better
    • Sales Order, Invoice and Payment numbers

      Hi zoho friends, it is me again, the slow learner. I'm wondering if there is a way to have it so the Sales order, invoice and payment numbers are all the same? It would be easier for me if they were the same number so there is not so many reference numbers
    • First day of trying FSM in the field.

      What we found. 1. with out a network connection we were unable to start a service call? 2. if you go to an appointment and then want to add an asset it does not seem possible. 3. disappointed not to be able to actually take a payment from within the app
    • Zoho Desk app update: AI powered features

      Hello everyone! We’ve introduced various AI-powered services on the Zoho Desk app. Let's take a look at what's new. Generate Content: Generate Content uses AI to formulate responses based on the your query and provides a ready-to-use reply which can be
    • How to Automate Email Sequence

      I'm having trouble trying to set up a workflow to automate an email sequence. Once a group of emails in a Task has been tagged by a certain tag, I want an instant email template to be sent. After 7 days with no response, another email template would be
    • Turning off the new UI

      Tried the new 'enhanced' UI and actively dislike it. Anyone know how to revert back?
    • Zoho Sprints Android v2.0.4 app update: Item reminders, archive Epics, Kanban projects, Epic progress

      Hello everyone! In the latest version(v2.0.4) of the Zoho Sprints Android app update, we have introduced various new features. Let's take a look at what's new! Item Reminder Stay organized and never miss an important date with the all-new Item Reminder
    • Credit Management: #3 Setting Credit Limit for Customers

      Think about that one familiar customer of yours who always buys on credit. They usually pay on time, maybe a little late here and there, but not alarming. So, you are fine saying, "Sure, pay later." Then, one day, they place a significantly bigger order
    • Adding Reports to Portals

      Is there a way to add Reports to portals so only the user can see report templates relevant to them?
    • Update on the client portal URL for Guest users

      We’re updating the way Guest users access their Connect network. As part of this change, all client organization portals used by Guest users will now be accessible through a dedicated domain specific to each data center. The access URLs mentioned here
    • Preserve Ticket Issue Mapping When Migrating from Jira to Zoho Projects

      Hello Zoho Projects Team, We hope you are doing well. We are currently exploring a full migration from Jira to Zoho Projects, and we identified a critical limitation during the migration process involving Zoho Desk integration. Current Situation: We use
    • Unable to see Zoho contacts in Zoho app on ios

      Hi Support Team, I am a new user, I have created my account and installed zohomail app on iOS 16 which works. I was also able to import my Gmail contacts into Zoho Contacts, which I can see. The problem is that I can’t see these imported cobalts in Zohomail
    • Task Due Date greater than 10 years.

      We use recurring tasks in Projects where every week, month, year etc Some of our projects are greater than 10 years and we are unable to set a new due date because the difference between start date and due date is greater than 10 years. As an example
    • External User onboarding for zoho connect is not really intuitive.

      So the external user is sent an invite, which has a button that directs them to login to zoho to view the invite, but if they don't have a zoho account, they cannot access that invite, which seems kinda silly, as there is not real way on for them to create
    • Hosting external websites on Zoho?

      How can I host my external website on zoho? Do we have that option? I am currently with hostinger and am looking to switch to zoho. Kindly help. Thanks.
    • How to Add Time Formula Duration (hh:mm)

      Hi everyone — I’m trying to create a formula field in Zoho CRM that calculates the difference between a “Call Start Time” and “Call End Time” and displays the duration in HH:MM format (for example: 1:04 for one hour and four minutes). My current setup
    • How can I calculate the physical stock available for sale?

      Hey Zoho Team,  I've tried to calculate the physical stock on hand in various ways - but always receive a mismatch between what's displayed in Zoho Inventory & analytics.  Can you please let me know how the physical stock available for sale is calculated?
    • Set Custom Icon for Custom Modules in new Zoho CRM UI

    • Marketing Tip #4: Build your email list early

      Email marketing has one of the highest returns on investment. Don’t wait until later; start collecting subscribers now. When you've got their attention, you can send them emails about offers, new product launches, seasonal greetings, and more. Try this
    • Is anyone else having trouble saving a custom image in their email signature, or is it just me?

      When I try to save the image I get an error that says "Operation Failed" I opened a support ticket two weeks ago and received a response that it would be debugged, but it still isn’t working
    • Unify Overlapping Functionalities Across Zoho Products

      Hi Zoho One Team, We would like to raise a concern about the current overlap of core functionalities across various Zoho applications. While Zoho offers a rich suite of tools, many applications include similar or identical features—such as shift management,
    • Zoho Desk Domain mapping / Cloudflare CNAME not recognized

      Hello, my website is behind Cloudflare and SSL. From the Cloudflare control panel I added a CNAME record such as support.mydomain.com pointing to desk.cs.zohohost.com but I'm stuck with the message "Make sure you've mapped the CNAME entry..."
    • Create an Eye-Catching Announcement Widget for Your Help Center

      Hello Everyone! In this week’s edition, let’s explore how to keep your customers updated with exciting news in the Help Center. See how ZylkerMobile wowed their customers by bringing updates right to their portal. ZylkerMobile, the renowned brand for
    • I want to add my other zoho account in same pc

      why does zoho restrict me doing many things as i also want to add my second mail account bit its not allowing me to do that
    • Search in Zoho Community Not Working

      I realize this is a bit of a meta topic, but the search for the various Zoho Communities appears to not be working. I'm under the impression that they run on some version of the Zoho Desk platform, so I'm posting this here.
    • Capture Stripe’s Customer ID

      Does anyone know of a way to capture Stripe’s customer ID that is created when the form/payment is processed? I would like to have the customer ID stored in our CRM so we could utilize in some custom functions down the road.
    • Next Page