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

      • Can we handle a support like (incident management) project in Zoho Projects?

        Hi, I have a new profile of a project whereby we provide "ticket" base support to a client. They have a request and ideally we would handle comms via a email exchange logged in Zoho. Today we use Zoho Projects for all out projects, which means that we
      • Trying to show the actual Terms & Conditions on PDF

        Hi, On Zoho forms I am trying to have the actual terms and conditions that the user needs to accept also show on the pdf that they receive after. Right now it only says "Agreed". Please help.
      • Installing EMAIL Setup in New Domain

        Respected Support team, I'm facing an issue with cloudflare in Pakistan, I want to setup Zoho Mail Setup but I Don't know how to enable Zoho mail setup without cloudflare. My Website https://stumbleguyzzapk.com/, https://fakservices.com/ is using CF,
      • Enhancements to Zoho Meeting Annotator

        Hello Zoho Meeting Team, Hope you are doing well. We would like to share a few improvement suggestions regarding the Zoho Meeting Annotator used during screen sharing. While the current version provides helpful annotation tools, there are several limitations
      • Cliq iOS can't see shared screen

        Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
      • Triggering rules on lead conversion

        There is no field on the Rule list for rule conversion to trigger an alert on liead conversion to a potential. I assigned a rule to file on any creation or update of a lead. The lead was changed a lead to a potential but no rule was fired. Rajesh Bhadra
      • Add "Fetch Composite Item" Action for Inventory

        I want to make a Flow that uses information returned in the GET call for Composite Items, and it's not currently available in Zoho Flow. Please consider adding this functionality.
      • Zoho Social/Marketing Plus - Addition to "Monitor" function

        It would be very helpful if the Monitor function would allow us to add a column to monitor hashtags in addition to pages and mentions. This is a common and very valuable function in other social listening tools.
      • Almacenamiento

        Hola, Quisiera saber como podría hacer para bajar el almacenamiento de 5gb a mis usuarios, en otras palabras los quiero ir limitando de la cuota real, y luego ir agregando poco a poco la cantidad hasta llegar a los 5gb que me dan en el plan free. 
      • Zoho Invoice Now Supports VeriFactu for Businesses in Spain

        Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
      • Will I Get a Refund If I Downgrade Zoho Mail?

        Hello, We upgraded an email account for our new employee. However, the employee left after one month, and now I've reduced the number of Zoho Mail users from 7 to 6. Can we get a refund for the remaining portion of our annual payment?
      • Zoho Billing Now Supports VeriFactu for Businesses in Spain

        Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
      • how to add subform over sigma in the CRM

        my new module don't have any subform available any way to add this from sigma or from the crm
      • Introducing the revamped What's New page

        Hello everyone! We're happy to announce that Zoho Campaigns' What's New page has undergone a complete revamp. We've bid the old page adieu after a long time and have introduced a new, sleeker-looking page. Without further ado, let's dive into the main
      • Zoho Books - France

        L’équipe de Zoho France reçoit régulièrement des questions sur la conformité de ses applications de finances (Zoho Books/ Zoho Invoice) pour le marché français. Voici quelques points pour clarifier la question : Zoho Books est un logiciel de comptabilité
      • Name autocomplete

        Hi, During searching emails the web tool does not always propose the auto-completion of the saved emails. As a result I either have to go to contacts and look up the exact email, or the exact full name including the middle name and any dots, which is very annoying. For example I have a contact that I emailed in the past that has "First M. Last" <email@email.com> type of contact. When I start typing 'First' the email may or may not pop up in the autocomplete menu. Then if I start typing "first last"
      • Using a CRM Client Script Button to create a Books Invoice

        Hello, I need help handling error messages returned to my client script from a function. The scenario I have setup a client script button which is available from each Deal. This CS executes a crm function, which in turn creates an invoice based on the
      • Possible to connect Zoho CRM's Sandbox with Zoho Creator's Sandbox?

        We are making some big changes on our CRM so we are testing it out in CRM's Sandbox. We also have a Zoho Creator app that we need to test. Is it possible to connect Zoho CRM's Sandbox to Zoho Creator's Sandbox so that I can perform those tests?
      • How do i follow up my email campaign in-thread

        Is there a way to follow up the email campaign so that it is in-thread using zoho campaigns? eg customer gets original email with subject line "hello" then 5 days later follow up would be with subject line "RE: hello".
      • Announcing new features in Trident for Mac (1.29.0)

        Hello everyone! Trident for macOS (v1.29.0) is here with new features and enhancements to enhance your business communication. Let's take a quick look at them. Access shared mailboxes. You can now view and access shared mailboxes in Trident, which are
      • Books is extremely slow again today !

        Everything is running slowly even with 500mb connection speed
      • Cyclic dependencies in many-to-many relationships...

        I have an application which includes a form for companies, and a form for contacts. Each company can be assigned 1 technical and 1 administrative contact. I have this working okay so far, but I want to copy the scripts used so far to a new empty application. When I import the scripts it fails with a message that says: Problem encountered while creating the application Error in resolving form dependency:Cyclic dependency among the forms:[Company, Contact] What can I do to resolve this? After all,
      • Zoho Workdrive for Office, "vsto runtime not found"

        Hi all, I have been trying to get ZohoWorkdrive_MS-addin_1.4.exe installed, but I keep getting the error "VSTO Runtime Not Found!" - even though I have installed it ... Anyone else hear had problems with the MS addin?  FYI, I am using O365 on A Dell laptop running Win 10 Home - fully patched and up-to-date.  I have tried compatibility modes and running explicitly as Administrator - the usual steps. Any advice would be appreciated.
      • Zia’s AI Assist now helps you write clearer notes — in seconds

        After helping recruiters craft job descriptions, emails, and assessments, Zia’s AI Assist is now stepping in to make note-taking effortless too. Whether you’re recording feedback after an interview or sharing quick updates with your team, you can now
      • Zoho API to create ticket

        I'm developing an integration to create tickets via API, but, locally it works (send and recieve requests). In production it also works sending requests, but, my file don't recieve any response data. My URL is available in Zoho API Console and I have
      • Automate Timesheet Approvals with Multi-level Approval Rules

        Introducing Approval Rules for Timesheets in Zoho Projects. With this automation, teams can manage how timesheets are reviewed and approved by setting up rules with criteria and assigning approvers to handle submissions. Timesheet, when associated to
      • Building Toppings #1 - Serving your needs with Bigin Toppings

        Hey Biginners! We're excited to kick off our Developer Community series on building toppings for Bigin, and our goal is to provide an accessible, beginner-friendly, and relevant path for every developer. Imagine creating tiny pieces of software that unlock
      • Can we create Sprint with tasks from Multiple projects?

        Hi Team, We were using Zoho Sprints for quite sometime. Currently we have started the process of Sprint method. We couldnt create the active sprint board with the tasks from multiple projects. I would like to know whether this is possible or Any timeline
      • Tip of the Week #74– Create automated workflows in MS Power Automate

        Zoho TeamInbox now connects directly with Microsoft Power Automate, letting you streamline everyday routines tasks such as from sending emails to managing threads, with automated workflows. About the integration Zoho TeamInbox integrates with Microsoft
      • Account validation

        Hello everyone, I registered my account on ZeptoMail to use the system, but the problem is that the verification period on Zepto's end has already passed and I have limited functionality.
      • Paste issues in ZOHO crm notes

        Hi, since a week or so I have issues with the paste function in ZOHO CRM. I use "notes" to copy paste texts from Outlook emails and since a week or so, the pasting doesnt function as it should: some text just disappears and it gives a lot of empty lines/enters.....
      • Is it possible to add a gradient color to a newsletter im designing?

        From where i sit it looks like you can only choose a single color but not combine 2 colors?
      • New Feature: Audit Log in Zoho Bookings

        Greetings from the Zoho Bookings team! We’re excited to introduce Audit Log, a new feature designed to help you track all key actions related to your appointments. With Audit Log, you can maintain transparency, strengthen security, and ensure accountability.
      • Custom validation in CRM schema

        Validation rules in CRM layouts work nicely, good docs by @Kiran Karthik P https://help.zoho.com/portal/en/kb/crm/customize-crm-account/validation-rules/articles/create-validation-rules I'd prefer validating data input 'closer to the schema'
      • Customised Funnel

        We are running the standard plan for our ZOHO CRM. I have been asked if there is a way to combine data from the Calls module, Deals module and Contact Module into 1 funnel, similar to the view you can get when viewing Deals By Stages, you can see the
      • Account disabled

        I have an issue I need help with. Whilst trialing ZOHO CRM I created the following: Account1 (-------------) using m__ame@m__rg___s__i__.___.__ and 2 personal emails Account2 (-------------) using a personal email and 2 users _al__1@______________._o_.__
      • Blocked Email

        We are a Zoho One subscriber and use Yahoo as our MX provider. A few times each year, for the past four years, CRM blocks one or more of my Zoho One users from receiving internal email from CRM. This includes "@mentions" in all modules, and emails from
      • message var is empty in bot mention handler

        Hi, I'm encountering a problem: in my bot's mention handler, I want to retrieve the text the user typed when mentioning the bot. Example: On the #tests-cyril channel, I send this message: “@Donna hello how are you ?” I expect the system variable "message"
      • Remembrance Day to Remember – Recalling Values

        The phrase “at the eleventh hour” refers to the 11th hour of the 11th day of the 11th month in 1918, when the hostilities of World War I came to an end—but it still holds meaning today. Remembrance Day (Veterans Day in the US) is observed on November
      • Enhancing Zia's service with better contextual responses and article generation

        Hello everyone, We are enhancing Zia's Generative AI service to make your support experience smarter. Here's how: Increased accuracy with Qwen One of the key challenges in AI is delivering responses that are both contextually accurate and empathetic while
      • Next Page