Kaizen #161: Global Sets using Zoho CRM APIs

Kaizen #161: Global Sets using Zoho CRM APIs

 Hello all!
In this week, we will see how to work on the Global Sets using our Zoho CRM APIs. Global Picklist APIs were introduced in Zoho CRM API version 6.

In this post, we will cover the following
  • Global Sets in Zoho CRM
  • Advantages of the Global Sets
  • Use case
  • Create a Global Set using the POST Global Picklist API
  • Use the Global Set with a Picklist Field in the Required Modules
  • Update the Global Set Values Using the PATCH Global Picklist Field API
  • Conclusion

Global Sets in Zoho CRM

Zoho CRM offers an efficient way to maintain a set of data that will be used commonly across the modules to maintain accuracy via the Global Sets or Global Picklists.
Global Sets or Global Picklists are collections of picklist values that can be associated with multiple picklists across modules. When you create Global Sets, you define a set of values that can be associated with fields in different CRM modules, ensuring uniformity in data input across your organization. Refer to this link to know more about Global Sets.

Advantages of Global Sets

  • Consistency: The same list of values is available across multiple modules, reducing errors and inconsistencies in data entry.
  • Time-saving: You do not have to update picklist values in each module manually. Once updated centrally, changes reflect across all associated fields in all modules.
  • Scalability: Easily expand your picklist when your business grows, adding new values (e.g., Adding new showroom location for franchises) without repetitive work.
  • Easy Management: Centralized management of picklist values means less administrative work.

Use case

Global Picklist for Showroom Locations at Zylker Electronic Franchise 
Zylker, an electronics business franchise, operates several showrooms across multiple cities, all managed in Zoho CRM. As the franchise expands, they need to add new showrooms to various modules such as Leads, Deals, and Services frequently.  Whenever a new showroom opens, they can update the Global Picklist, ensuring that all modules are updated instantly and preventing inconsistencies.
In these situations, different teams manually entering showroom locations in the picklist field can lead to mistakes like typos or different spellings of the same location.
By implementing a Global Picklist for "Showroom Location," Zylker ensures that all teams select from the same list of showroom locations.

Create a Global Set using the POST Global Picklist API

Create a Global Set with the desired values. 

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

Request Body

{
    "global_picklists": [
        {
            "display_label": "Showroom Location",
            "description": "Use this picklist option to manage showroom locations across all modules in your CRM.",
            "pick_list_values": [
                {
                    "display_value": "New York Showroom",
                    "sequence_number": 1,
                    "actual_value": "New York Showroom"
                },
                {
                    "display_value": "Los Angeles Showroom",
                    "sequence_number": 2,
                    "actual_value": "Los Angeles Showroom"
                },
                {
                    "display_value": "Chicago Showroom",
                    "sequence_number": 3,
                    "actual_value": "Chicago Showroom"
                },
                {
                    "display_value": "Houston Showroom",
                    "sequence_number": 4,
                    "actual_value": "Houston Showroom"
                }
            ]
        }
    ]
}


If the API call is successful, a global picklist will be created with the specified options. The following GIF demonstrates the newly created global picklist in the UI.



Use the Global Set with a Picklist Field in the Required Modules

Create picklist fields in the required modules, such as Leads and Contacts, and link the created Global Set with a picklist field in modules using the Create Custom Field API.

Follow the below steps to link the created Global Set with a picklist field in a module.

Step 1: Retrieve the unique ID of the Global Set 

Retrieve the unique ID of the created Global Set using the GET - Global Picklists API to link it with a picklist field. The below URL retrieves all Global Sets in your org.

Request URL: {api-domain}/crm/{version}/settings/global_picklists
Request Method: GET

Response:


The API retrieves all available Global Sets in the organization.

In this case, the "Showroom Location" field needs to be associated with the modules, and its unique ID is 5725767000004230002. Use the following request URL to view the specific global picklist field along with its options.

Request URL: {api-domain}/crm/{version}/settings/global_picklists/5725767000004230002
Request Method: GET

Response:



Step 2: Use the Global Set in the desired module

Create a new picklist field in the required modules and associate the "Showroom Location" Global Set with the picklist field.
  • Leads - To track customer inquiries by showroom location.
  • Deals - To monitor sales by showroom location.
  • Sales Orders - To process orders based on showroom location.
  • Service Requests - To handle customer service tickets by showroom location.
This post uses the "Leads" module as an example. Use the Create Custom Field API to associate the Global Set with the Leads module.

Request URL: {api-domain}/crm/{version}/settings/fields?module=Leads
Note: The module parameter is mandatory to create a field in a module.
Request Method: POST

Request Body:


{
    "fields": [
        //Associating the Showroom Location Global Set with the Leads module
        {
            "field_label": "Showroom",  //The Showroom field in the Leads module, where the "Showroom Location" Global Set is associated

            "data_type": "picklist", //To associate a global picklist, use the data type "picklist"
            "global_picklist": {
                "id": "5725767000004230002" //ID of the global picklist
            }
        }
    ]
}


Response in the UI:



Use the above process to create the Global Set across modules using the Create Custom Field API

Below are the request URLs to associate the field with other modules as per our use case:

  • {api-domain}/crm/{version}/settings/fields?module=Deals
  • {api-domain}/crm/{version}/settings/fields?module=Sales_Orders
  • {api-domain}/crm/{version}/settings/fields?module=Service_Requests


Update the Global Set Values Using the PATCH Global Picklist Field API

Any changes made to the Global Set will automatically reflect across all modules associated with it. Use the PATCH - Global Picklist Field API to update the values in a Global Set.

Request URL
{api-domain}/crm/{version}/settings/global_picklists/5725767000004230002
Request Method: PATCH

Request Body:


{
    "global_picklists": [
        {
            
            "pick_list_values": [
                {
                    //"display_value": "New York Showroom", 
                    "id": "5725767000004230003", 
                    "type": "unused" // to move the option to the unused state
                },
                {
                    "display_value": "Chicago Showroom",
                    "sequence_number": 3,
                    "actual_value": "Chicago Showroom",
                    "id": "5725767000004230007",
                    "type": "unused",
                    "_delete": null // deleting the option from the global Field
                },
                // Creating a new option or adding a new showroom location to the Global Set 
                {
                    "display_value": "San Francisco Showroom",
                    "actual_value": "San Francisco Showroom"
                },
                {
                    "display_value": "Boston Showroom",
                    "actual_value": "Boston Showroom"
                }
            ]
        }
    ]
}



Using the PATCH Global Picklist API, you can easily manage and perform various operations. In the above request, Zylker performed the following operations:

  • Moving an Option to Unused State: The "New York Showroom" option is marked with "type": "unused", meaning the showroom is moved to the "unused" state, indicating the option is no longer active but has not been deleted from the system.
  • Deleting an OptionThe "Chicago Showroom" option is deleted from the picklist field using the  "_delete": null, meaning the option is removed or deleted from the system and is no longer valid.
  • Adding New OptionsIn addition to the above operations, two new showrooms namely "San Francisco Showroom" and "Boston Showroom", are added to the field using the "display_value"(mandatory) and "actual_value" (optional), as Zylker expands its franchise to new cities and manages them across the modules.
Note: The updated value will replace its old value in areas such as Records, Criteria, Workflow Actions, and Field Dependency. 

Conclusion

Hence, the Global Sets help Zylker keep the showroom location list up-to-date and consistent across modules, making it easier to manage showroom locations in their CRM system.

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!!!



      • Recent Topics

      • Module Name doesn't exist

        I am trying to create a module named Activity, with plural Activities, but I have an error that module name already exists. This module is doesn't exist, and I don't have a single field called Activity or Activities.
      • Zoho Desk iOS and Android app update: AI powered: Reply Assistance and Refine Messages on IM module.

        Hello everyone! We are excited to introduce new AI powered features on the IM module of the Zoho Desk app. Reply Assistance: Reply Assistance generates suggested responses for incoming chat messages, which you can directly insert into the conversation
      • Is it possible to embed Youtube shorts?

        Hi Zoho desk support, This is Ryan from Accuver America. While I'm trying to create a knowledge base article with embed video, I ran into this issue. "www.youtube.com refuse to connect" A little bit background is that because this video is recorded on
      • Split functionality - Admins need ability to do this

        Admins should be able to split an expense at any point of the process prior to approval. The split is very helpful for our account coding, but to have to go back to a user and ask them to split an invoice that they simply want paid is a bit of an in
      • Delegates - Access to approved reports

        We realized that delegates do not have access to reports after they are approved. Many users ask questions of their delegates about past expense reports and the delegates can't see this information. Please allow delegates see all expense report activity,
      • How to include total km for multiple trips in expense report.

        Whenever I create a mileage report it only shows the total dollar amount to be reimbursed. The mileage for each individual trip is included but I also need to see the total distance for all trips in a report? How do I do this?
      • I didn't receive my domain verification mail

        I didn't receive my domain verification mail 
      • Get logged in user ID in Deluge script

        Hello all, How do I get the id of the logged-in user in a deluge script? the "zoho.loginuserid" function actually returns the users email address or whatever the user id they use to login to zoho with and not the id of the user record, and given that
      • Item Details Field - New Barcode / Document option?

        Is this a new feature??? its in both books and inventory.
      • Is SMTP included in the free plan?

        My client has a Zoho Mail Free 14 day trial that ends tomorrow. She has set up a domain email address with SMTP on a third party app and is wondering if it will continue working once her plan downgrades to the free forever plan. Thanks
      • Shared Mailbox - Mark as read for all users

        Hi all, Maybe someone can help me out. At the moment we have a shared mailbox without streams. When a users reads an mail or marks it as read other users will not see this. How can we resolve this? We now archive the mails when read and followed up. However
      • Can I export to PDF in Zoho Learn

        I have seen help pages where export to pdf options are available but I do not see that option available from the application. I see that exprt is available in my free trial version but that is only to html pages. I need to be able to export my manuals
      • Zoho Sites "pages" management page

        I have 80 plus pages on zoho sites. When I go to the "pages" link to view and edit pages, They are not in any kind of order, so I spend lots of time searching for pages when I need to edit or create new. How can I change the view order of all my pages
      • Staff rules

        Hi! Do you people know what are the default staff rules when a new booking is created? We have two staff members in my team (me as the admin, and my employee). As we share the same services, I'm wondering how Zoho will pick the staff for new apointments.
      • Add Image Upload Field to Zoho Bookings Registration Form

        Hi, We would like to request the addition of an image upload field to the Zoho Bookings registration form. Currently, Zoho Bookings only supports text-based fields (e.g., Single Line, Multi-Line, Email, Checkbox, Dropdown, Radio Button, and Date), but
      • Zoho mail issue.

        I have verified my domain ohhoexpress.online by adding necessary TXT and MX records. But when I am sending email to any external email id, it is showing as zohomail.com. Also while I am sending mail to internal mail id, it is saying user not found whereas
      • Merge Tags Output Incorrect Placeholder Text After CRM Sync

        Hi everyone, I’m experiencing an issue with merge tags in Zoho Campaigns after last sync of contacts and leads from Zoho CRM (days before everything worked perfectly). Here’s the situation (seems like a default configuration in Campaigns) : My leads have
      • UI Improvement - Ability to Collapse Flow

        The UI for Flow is generally pretty good. However, when multiple decision trees are used, the layout can get pretty convoluted and hard-to-follow (see one of my Flows below): In these cases, even the auto-arrange fails to make this something that a normal
      • Windows agent 2025_M02 release notes

        Agent Version: 111.0.3.300 Release date: 24 February, 2025 Various Major enhancements to improve overall performance and optimize the user experience. Squashed a few bugs to improve overall product quality.
      • Windows agent 2025_M01 release notes

        Agent Version: 111.0.3.299 Release date: 05 February, 2025 Major Enhancement: Live Monitor feature compatibility released. Major Enhancement: Updated Scaling for multi technician cases with Android and Web based viewers. Various other bug fixes and performance
      • My email is blocked from sending

        I get this message when I try to send any message .. > Unable to send message, Reason 554 5.1.8 Email Outgoing Blocked We have urgent emails to send and the issue continues to persist from yesterday. Please help us with this issue as soon as possibl
      • how to record deferred revenue?

        Dear Zoho Team, We issue invoices relating to 12-month web hosting service. When we issue the invoice, we should record the entire amount of the invoice as DEFERRED REVENUE (ie. $10 x 12 mths = $120, balance sheet item). After the particular month of the hosting service, $10 of revenue has been earned and deferred revenue amount will be $110. We must keep adjusting the balance sheet and income statement over the course of the service until the company has fulfilled its obligation of services and
      • Sending of username did not succeed: Mail server pop.zoho.com responded: User already specified

        I am having issues receiving emails from Zoho in Thunderbird.  I am getting the above error.  The first error tells me Authentication failed, and prompts me to enter in my password.  Then I get the above error.  I can receive emails when I log in online to zoho, but for some reason, it's stopped working in Thunderbird. 
      • Narrative 13: Importing your data

        Behind the scenes of a successful ticketing system: BTS Series Narrative 13: Importing your data When importing data into an application, it is crucial to prevent data loss or duplication. These types of errors can hinder the development of a clean and
      • Blueprint Not Triggering When Lead Status Is Updated by Workflow (IndiaMART Integration)

        I have set up a blueprint that triggers when a lead’s status is “New Lead.” Our CRM is integrated with IndiaMART, and when leads are created from IndiaMART, their Lead Status is initially set to None. To handle this, I created a workflow that automatically
      • Update Subform in specific field(Status) without affecting other fields in Zoho CRM using Deluge?

        Scenario: PRODUCT Module(change name Plot) in any product status change From Available to Booked then on PROJECT Custom Module have Subform So, Subform name is Property Details now in that Subform 1 field is STATUS that update according to  product status
      • YouTube Live #2: Agreement Intelligence with Zoho Sign's eSign AI assistant

        Hi there, We're back again with our YouTube live series and this time, we'll take you through our holistic agreement intelligence powered signature workflows. Struggling to draft an agreement? Need help double-checking clauses and going through complicated
      • cannot recieve or send emails

        we are not recieving or cannot send emails.Shows sysytem error
      • Can I Build a POS using ZOHO creator and integrate it with ZOHO Books?

        Hello,  I have a Zoho Books account and I was wondering if I can have a POS system that integrates with it. Primarily with Inventory, Customers and Payment and ofcourse Create invoices and credit notes.   So, would Zoho creator provide me with this solution?  Thank you, 
      • An important update for Zoho Cliq desktop users

        The latest version of the Zoho Cliq desktop app (v1.8.0) will no longer be supported on macOS 10.15 Catalina and earlier versions. This is because the framework we use (Electron) no longer supports some older macOS versions. If you’re using macOS 10.15
      • Zoho Projects - Visual improvement to parent and sub-task relationship

        Hi Projects Team, My feature request is to improve sub-task visibility. Please see screenshot below. I really think parent child relationships could be visually improved. Even if the first letter of the parent task was inline with other same level tasks
      • New Toolbar in Zoho Sheet

        We have revamped our toolbar design in this new version of Zoho Sheet. Below are some screenshots to help you get accustomed to this new interface. Click on the picture below to view the animated image in its original size. Scroll down this post to learn about the changes. Highlight of Changes: The previous format tab is now split into 2 tabs - Home and Format. The Home tab contains the commonly used functions and the Format tab holds formatting related options. Under the Home tab towards the far
      • Zoho inbuilt Telephony made a lot of issues!

        Hi there, I am a user that I am working with zoho inbuilt telephony around 1 month. Non of my colleagues are happy with this app! most of the time customer cannot hear my customer service team, customers say our voice is breaking. whenever Telephony support
      • Best way to integrate Zoho with mobile app for managing customer requests with real-time notifications?

        Hello, I'm building a solution for a travel company where customers submit requests through a website, and the sales team manages these requests through a mobile app. The Requirement: Customers fill a form on the website (name, email, number of children,
      • Sending workflow notifications using popular chat services

        Hello everyone, We have introduced instant and scheduled notifications on some of the most popular chat platforms to facilitate easy collaboration, quick action, and wider reach. Workflow notifications can be sent to the following chat platforms: Zoho
      • Webhook not firing.

        I created a webhook using the Web UI, it looks very nice and the testing worked without an issue, but when i save/ update a ticket, the webhook is not firing. Here are the details of the web-hook i get from using the API "modifiedTime": "2019-10-22T09:23:37.380Z",
      • Adding Images to a Quote in Zoho CRM

        We are currently preparing to use Quotes in Zoho CRM and we are building out our Quote templates.  We came across an issue of not being to add Images of the products to the Quote - specifically in the body of the Quote templates.   This is a problem,
      • Applications built with Zoho Creator

        Hi, I’m really interested in seeing how others have built their application using Zoho Creator, especially those designed for external users (clients, vendors, or the public). If you’ve developed something along those lines and don’t mind sharing, I’d
      • Is it posssible to add Asap Widget on Wordpress?

        I have tried to add the ASAP widget so users could iniciate chats and see the KB information but nothings seems to work. I have tried to add the script using a php snippet that adds the to the footers and also tried one for the header in the functio
      • Require ticket resolution

        Hi Zoho team, Is there a way to require resolution even if an agent did not use a blueprint? for example, our blueprint has a "resolve" transition but what if agent revoked blueprint and manually set the status of ticket to closed? Is there a way where
      • Next Page