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

    • Need more details on API Usage Dashboard

      Hi Team, We have implemented Zoho Expense for a client and has done some integrations with well known third party ERP via api. Recently we have noticed a huge spike in the API consumption. But we couldn't get the root cause for the same. I accept there
    • Power of Automation:: Automating SLA Timelines for First Response & Resolution for Issues module.

      Hello Everyone, Ever wished SLAs could update automatically based on issue severity i.e no manual tracking, no missed timelines? That is exactly what one of our customers, Alex, wanted to achieve in the Issues module. So, we have setup a simple automation
    • Can't login to Zoho mail

      I'm logged into Zoho but when I try to go in zoho mail I get: Invalid request! The input passed is invalid or the URL is invoked without valid parameters. Please check your input and try again. I just set up my mx records and stuff with namecheap a few
    • Power of Automation :: Quick way to associate your Projects with Zoho CRM

      A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and
    • Free webinar! Build smarter apps with Zoho Sign and Zoho Creator

      Hello, Bring the power of digital signatures to the apps you build in Zoho Creator! Connect Zoho Sign as a microservice and enable seamless e-signature workflows in your applications. This integration allows you to automate signing tasks using Deluge.
    • Move orders scan ISBN

      Hi We have ISBN setup to be searched in items zoho but move orders dissent recognize the ISBN is there q missing configuration? regards, JS
    • What's New - October 2025 | Zoho Backstage

      Hey everyone! We’ve been busy rolling out a host of upgrades for Zoho Backstage. While some major features are still going through final rounds of testing to make your event experience smooth as butter, here’s what was new and improved in October 2025.
    • Zoho People Attendance Regularization – Wrong Total Hours Displayed

      While using Zoho People, I observed that the attendance regularization is showing wrong total hours when applied to past dates. For example, if a check-in is added at 10:00 AM and check-out at 6:00 PM for a previous date, the system sometimes calculates
    • Add Flexible Recurrence Options for Meeting Scheduling in Zoho Cliq (e.g., Every 2 Weeks)

      Hello Zoho Cliq Team, We hope you are doing well. Currently, when scheduling a meeting inside Zoho Cliq, the recurrence options are limited to Daily, Weekly, Monthly, and Yearly. There is no ability to set a meeting to occur every X weeks — for example,
    • AI generated meeting notes associated to Account or Deal

      As our organization works to improve efficiency we are looking for a solution to leverage AI to generate meeting notes and then add those notes to a CRM record such as an Account or Deal. I see Zoho has a Notebook AI offering that talks about the ability
    • Subform Disabled Fields Should Remain Disabled on Edit/View

      Currently, when we disable a subform field using on user input or on add new row, it works perfectly during the initial data entry. However, when the record is saved and reopened for viewing or editing, these disabled fields become editable again. This
    • How do you print a refund check to customer?

      Maybe this is a dumb question, but how does anyone print a refund check to a customer? We cant find anywhere to either just print a check and pick a customer, or where to do so from a credit note.
    • What is Resolution Time in Business Hours

      HI, What is the formula used to find the total time spent by an agent on a particular ticket? How is Resolution Time in Business Hours calculated in Zohodesk? As we need to find out the time spent on the ticket's solution by an agent we seek your assistance
    • Is it possible to turn off all capabilities for a customer to schedule, reschedule or cancel an appointment?

      Is it possible to turn off all capabilities for a customer to schedule, reschedule or cancel an appointment? I would like to set it up so only staff can schedule appointments. Is this possible?
    • Hide "Section" headers when using a form as a subform in "List view"

      When using a form as a subform and setting the "View Type" to "List View" it is not possible to hide the section headers. This can become an issue if I have a section which is not applicable to this subform and I hide the fields within that section and
    • Add additional field to quick search results

      IN the advanced search, we can add any field to the columns. In the regular search results (before you press enter, there is no option to modify the results. It would be super useful to include a custom field where it currently displays the pipleine
    • Need Help: Updating Related Records via Subform Entries in Zoho Creator

      Hi everyone, I’m trying to set up a workflow in Zoho Creator where each row in a subform updates related records in another form automatically. Here’s the situation: My main form (e.g., “Receipts”) contains a subform where each row selects a related record
    • Disable signing in using email aliases?

      Hi, I currently have user accounts that have multiple aliases, for example: Main: name@domain.com Alias: alias1@domain.com, alias2@domain.com Currently, I am able to use any of those 3 emails in the 'username' box during login, and it will log me into the email. Is there a way to setup so that email aliases cannot be used to sign on? I'd still be able to receive and send emails using those aliases in the main email account like it works now, except only the main email can be used to login. Cheers!
    • Zoho Desk - Community - Customer Portal - Description Field UX Improvement

      Hi Zoho Desk Team, As a prolific user of Zoho Cares Community, I find it very frustrating that I cannot increase the size of the Description box (this one which I am typing this message). Many apps with multi line text fields have a small handle in the
    • Add the same FROM email to multiple department

      Hi, We have several agents who work with multiple departments and we'd like to be able to select their names on the FROM field (sender), but apparently it's not possible to add a FROM address to multiple departments. Is there any way around this? Thanks.
    • Can I change the format of the buttons in the email templates?

      Hi all! We have been working hard trying to brand our email templates, and have some way to go yet. One of the things we can't seem to edit is the green ${Cases.CUSTOMER_PORTAL_BUTTON} button and the font of the View Ticket text. Is there any way of doing
    • Lead to Contact Conversion with multiple email address fields

      We are a B2C business with a strong repeat cycle, and as such it's not uncommon for customers to use multiple email addresses with us. We have both our Contacts & Leads modules set up with 3 email fields. (Primary Email / Secondary Email / Historic Email)
    • Does Thrive work with Zoho Billing (Subscriptions)?

      I would like to use Thrive with Zoho Billing Subscriptions but don't see a way to do so. Can someone point me in the right direction? Thank you
    • Exporting Charts from ZohoCRM

      Hi...I'm relatively new to ZohoCRM, but very happy with it so far. I have all my leads and potentials accurately entered, and like the reports that I can view, with charts at the top of the data. But when I export the data, I'm receiving only the data, whether I export as excel, csv or pdf. How can I export both the chart and the data? In case it makes a difference, I'm using the free version right now. I tried researching the other editions to see if a paid version of the software offered the ability
    • Automatically Update Ticket Status in Zoho Desk Based on Actions in Zoho Projects

      Hi Zoho Desk Team, Hope you’re doing well. We’re using the Zoho Desk–Zoho Projects integration to manage tasks related to customer tickets, and it works well for linking and tracking progress. However, there are a few important automation capabilities
    • sms long credits

      I’m trying to purchase Long Code credits so I can send SMS campaigns to my contacts. However, when I click the “Buy Now” button, the page appears blank and doesn’t load any purchase options. Could you please assist me in purchasing the Long Code credits
    • Tip #48- Power Your AI Workflows with Zoho Assist on Zapier’s MCP- 'Insider Insights'

      We’re thrilled to announce that Zoho Assist is now part of Zapier’s Model Context Protocol (MCP), bringing remote support automation right into your AI ecosystem. What is MCP? The Model Context Protocol (MCP) is Zapier’s new framework designed to connect
    • Insert Cookie Policy in Zoho Sites

      Hello, i need to insert a banner on my site because i'm in Italy so i have to respect EU laws for Cookie Policy and Privacy Policy. I see that i need to insert a code in <head> section of my site to show a banner/popup with cookie info. How i can do this? Thank you Luca
    • Marketing Tip #1: Optimize item titles for SEO

      Your item title is the first thing both Google and shoppers notice. Instead of a generic “Leather Bag,” go for something detailed like “Handcrafted Leather Laptop Bag – Durable & Stylish.” This helps your items rank better in search results and instantly
    • Customer Parent Account or Sub-Customer Account

      Some of clients as they have 50 to 300 branches, they required separate account statement with outlet name and number; which means we have to open new account for each branch individually. However, the main issue is that, when they make a payment, they
    • Forced Logouts - Daily and More Frequent

      In the last month or so, I've been getting "power logged out" of all of my Zoho apps at least daily, sometimes more frequently. This happens in the same browser session on the same computer, and I need to re-login to each app separately after this happens.
    • ENTER key triggering Submit

      Is it possible to stopped the ENTER key from the mandatory triggering of the Submit button on Creator form? I want forms submitted "ONLY" when the Submit button is pressed. 
    • Is it possible to assign Client user to external task ON PROJECTS' TEMPLATES?

      Is it possible to assign Client user to external task ON TEMPLATES PROJECTS?
    • How to download all attachments from inbox, send, other folders in one go

      Hi All, Appreciate if anyone could help me with steps for below requirement. How to download all attachments from inbox, send, other folders in one go. Even mapping to new folder will help me.  Thanks in advance. 
    • Cliq does not sync messages after Sleep on Mac

      I'm using the mac app of Cliq. When I open my mac after it was in sleep mode, Cliq does not sync the messages that I received. I always have to reload using cmd + R, which is not what I want when using a chat application.
    • Link to images

      I have added images in pages. I would like to link those images with linked in URL so that they open in new window. There is an option of image -> link but I am not able to use the same to open URL in new window. Please check the attached image. Can you
    • Canvas View - Print

      What is the best way to accomplish a print to PDF of the canvas view?
    • Respond faster and smarter with Zia in your IM Inbox

      You’re in the middle of a busy chat queue. New messages keep popping up. One customer sounds upset. Another is asking a long list of questions. You need context. You need speed. You need help. That’s exactly when Zia Insghts jumps into action. It shows
    • Meeting impossible to use when sharing screen

      he Meeting tool in Brazil is practically unusable when sharing anything, whether it’s a presentation or simple navigation. When accessed via Cliq, the situation gets even worse: even basic calls fail to work properly, constantly freezing. And as you are
    • WARNING : Smart list automatically unsubscribes your contacts.

      I created a smart list of my team members based on the criterion that their email domain was @_____. The list refreshed as expected — but it ended up unsubscribing almost all members of my team. I contacted support, but it took two months to get a reply,
    • Next Page