Global Sets using Zoho CRM APIs

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



    • Sticky Posts

    • Kaizen #197: Frequently Asked Questions on GraphQL APIs

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

      Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
    • Kaizen #193: Creating different fields in Zoho CRM through API

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Client Script | Update - Introducing Commands in Client Script!

      Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands
    • Recent Topics

    • Deluge Script: Onboarding → Access Form

      Hello everyone, Edit: Sorry, I think I put this topic in the wrong section. I’ve recently run into an issue that’s been giving me a bit of a headache for the past few weeks. Context: This is my first time using Deluge to create a script, but it’s not
    • How can I optimize a Zoho Site page for SEO when embedding external menu or restaurant links?

      Hi everyone, I’m experimenting with building small content hubs on Zoho Sites and want to make sure I’m doing it in an SEO-friendly way. For example, I tried creating a page that highlights restaurant menu items and linked out to a resource like this:
    • Diff signature for compose new email and replies

      Hi,   How do i have different signature for replies and new emails. its inconvenient to have one large signature for replies. Usually on Outlook we have the option to keep separate signatures for new emails and for replies.
    • Zoho Website Site Speed Up & Setting

      We are experiencing slow loading speeds on our Zoho website and would like assistance in optimizing its performance. Kindly review the site and suggest or implement necessary improvements to enhance speed, especially related to: > Caching mechanisms >
    • Clickjacking: Zoho Vault's Response

      Issue Password manager browser extensions are found vulnerable to clickjacking security vulnerabilities that could lead attackers to steal account credentials, TFA codes, card details, under certain conditions. Reported by Marek Toth, Independent Security
    • Optimize your Knowledge Base for better visibility by allowing search engine crawling and indexing

      All you need to know about no-follow and no-index in KB. What are article crawlability and indexability? Crawlability and indexability are vital for making an article visible and accessible to search engines. When a search engine crawls an article, it
    • No option for pick up in Zoho Books / Inventory but yes on commerce

      Is it planned to release soon on books/inventory?
    • Archiving Contacts

      How do I archive a list of contacts, or individual contacts?
    • 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é
    • Blueprint Issue - Being able to set a subform field as mandatory

      I'm creating a blueprint. My record involves a subform which is only shown once field is set but the field gets set in step two of the process. My problem - I can't save the record as the subform field is set to mandatory - If I unset the mandatory field,
    • Blueprint - Mandatory file upload field

      Hi, File upload (as we as image upload) field cannot be set as mandatory during a blueprint transition. Is there a workaround? Setting attachments as mandatory doesn't solve this need as we have no control over which attachments are added, nor can we
    • Has anyone created a public ASAP Guide that I can check out?

      I am thinking of adding an ASAP guide to my web application, but I have noticed that the ASAP widget itself can be really slow to load sometimes. Has anyone created a public ASAP Guide that I can check to see how performant it is? I don't want to spend
    • Zoho Books - Include Quote Status in Workflow Field Triggers

      Hi Zoho Books team, I recently tried to create a Workflow rule based on when a Quote is Accepted by the customer. This is something which I thought would be very easy to do, however I discovered that Status is not listed as a field which can be monitored
    • Zoho Books - Show Related Sales Orders on Quotes

      Hi Books team, I've noticed that the Quotes don't show show the related Sales Order. My feature request is to also show related Sales Orders above the Quote so it's easy to follow the thread of records in the sales and fulfilment process. Below screenshot
    • Add VAT/Tax line to bank adjustments

      When categorising transactions and matching bank feeds with transactions such as customer payments, we use the "Add Adjustment" to add things like fees/bank fees. It would be useful to choose a VAT/Tax rate here. Whilst there is a bank charges option when adding a payment, this goes into the default bank charges account. We use the adjustments so that we can choose the account and separate our fees. We use different card providers and Worldpay charges VAT so we are stuck. We cannot integrate with
    • New Menu Layout Feedback

      I'd really like to see the banking item back on the top of the menu. I'm sure part of it is just because that's what I'm accustomed to. However, for a bookkeeping program, I think there's a logic to having banking be on top. Not a giant issue, but something
    • How to use Rollup Summary in a Formula Field?

      I created a Rollup Summary (Decimal) field in my module, and it shows values correctly. When I try to reference it in a Formula Field (e.g. ${Deals.Partners_Requested} - ${Deals.Partners_Paid}), I get the error that the field can’t be found. Is it possible
    • Cannot schedule report delivery

      The only 'send option' available when exporting reports is 'immediately' The option to schedule the report is missing.
    • adding attachment in sendmail script where attachment is in a CRM field

      Hi all, I have a custom field of type 'File Upload' in one of my modules in my CRM. I want to include the file in that field as an attachment to an email - which is done from a button on  the 'Results' module. I have created a script and a button to initiate an email from that module. The Deluge scripting window has allowed me to add arguments for all the fields I need to use except for the one file upload type field. My script currently looks like the below (content of the email omitted). As you
    • Signature field is showing black

      Hello, When customer signed the service form, it is showing as below picture Phone model: iPhone 16 Pro We tried delete and install application, but it not solved. This has on phone of a few person. There is any advice to solve this?
    • [Free Webinar] Learning Table Series - AI-Enhanced Insurance Claim Management in Zoho Creator

      Hello Everyone! We’re excited to invite you to another edition of Learning Table Series, where we showcase how Zoho Creator empowers industries with innovative and automated solutions. Struggling with lengthy claim processes, a lack of visibility into
    • How to update changed purchase account of item in invoice

      I have selected the wrong purchase account for various articles and created invoices. I had to adjust the purchase account in the article afterwards, but the old purchase account is still posted in the transaction-journal of the invoice. To adjust the
    • How can I see content of system generated mails from zBooks?

      System generated mails for offers or invices appear in the mail tab of the designated customer. How can I view the content? It also doesn't appear in zMail sent folder.
    • How can I see content of system generated mails from zBooks?

      System generated mails for offers or invices appear in the mail tab of the designated customer. How can I view the content? It also doesn't appear in zMail sent folder.
    • Zoho Suite is very slow

      Since today Zoho is incredibly slow over all applications! What's going on?
    • Not sure how to use credits to my account

      Hi I have a $50 credit to my account. I'm just wondering how I can apply that to either a current invoice or to try a new service. Any advice would be great, thanks. Kind Regards Chris
    • Control who sees Timeline and Interactions in Zoho CRM through Profiles

      The feature has been enabled for all DCs (except US, EU, and IN DCs). We will be rolling it out to the other DCs in the upcoming days. Dear All, In a CRM, not all users would require access to the history of a record. For instance, a Marketing Operations
    • Zoho Desk Integration - Add the option to send the estimate from the Zoho Desk Ticket Integration

      Hi, Currently in the Zoho Desk integration, the user is able to create an estimate from a ticket, once the estimate is created the user can see the estimate under the ticket (see screenshot below), but is not able to send that estimate from Zoho Desk.
    • Zoho Creator to Zoho CRM Images

      Right now, I am trying to setup a Notes form within Zoho Creator. This Notes will note the Note section under Accounts > Selected Account. Right now, I use Zoho Flow to push the notes and it works just fine, with text only. Images do not get sent (there
    • Utilisation de Zoho en conformité avec l’article 286 du Code général des impôts (CGI)

      Cher(e) client(e), Conformément à l’article 286 du Code général des impôts (CGI) impose aux entreprises assujetties à la TVA d’utiliser des systèmes de caisse ou de gestion commerciale certifiés lorsqu’elles enregistrent des ventes à des particuliers.
    • Issue showing too many consultations in my workspace link.

      Hi Team, I’ve set up two Workspaces to track meetings from different sources. So far, this has been working well, and the two Workspaces are differentiated without any issues. However, when I navigate to Consultations and share the link to my personal
    • Zoho CRM Plain Text Template: Line Breaks and Formatting Issue

      Hello, I'm following the instructions to create email templates in Zoho CRM, but I'm having a problem with the plain text version. https://help.zoho.com/portal/en/kb/zoho-sign/integrations/zoho-apps/zoho-crm/articles/zoho-crm-email-templates#Steps_to_create_a_custom_email_template
    • Introducing Profile Summary: Faster Candidate Insights with Zia

      We’re excited to launch Profile Summary, a powerful new feature in Zoho Recruit that transforms how you review candidate profiles. What used to take minutes of resume scanning can now be assessed in seconds—thanks to Zia. A Quick Example Say you’re hiring
    • Zoho MCP has no tools for Creator or 3rd Party Apps?

      I don't see a Zoho MCP community forum so putting this here. Two big problems I see: 1) Although Zoho advertises "over 950 3rd party apps" as available through their MCP, when I go to "Add Tools" there are ZERO 3rd party apps available to choose from.
    • 👋 Welcome to the Zoho MCP Community

      Hello all, glad to have you here! This is your space for everything AI agents, MCP tools, and intelligent business apps. This community is for you — developers, partners, creators, and businesses exploring how agents can transform work. Whether you’re
    • CRM Validation Rules Support Only Single Condition

      Simply put, CRM validation rules support only a single condition for each field on "All Records". You also cannot specify additional validation rules on the same field because it has already been used in an existing validation rule. The ONLY solution
    • Maximum file limit in zoho people LMS

      Dear Team, I am having approximately 4.9 GB of material, including PPTs and videos for uploading in zoho people LMS course. May I know what is the maximum limit limit for the course files Thanking you, With regards, Logeswar V Executive _ Operations
    • Unapproved Leaves are hard to distinguish in Attendance View

      This is a an unapproved leave request It appears in the Attendance view without any visual indicator if its approved or not For a whole day request this might be manageable but for hourly requests it gets very hard to know which are approved, which are
    • Performance Appraisal Probation Period

      Hello All,  Is there any possible way to create an appraisal cycle for new staff members, at the end of probation period? Many thanks!
    • Zoho Creatorの一括操作における処理の同期/非同期について

      現在、Creatorのレポート機能を利用して、複数のレコードに対して一括で処理を実行しようとしていますが、処理の実行順序について確認したいことがあります。 レポート内の複数レコードに一括で処理を実行した際、処理は同期的に行われるのでしょうか?それとも非同期的に行われるのでしょうか? 【同期処理の場合】 レコード①に対する処理が開始され、終了後にレコード②に対する処理が開始され、最後にレコード③に対する処理が実行されるように、処理が順番に行われる場合。 【非同期処理の場合】 レコード①、レコード②、レコード③の処理が一斉に開始され、それぞれ並行して処理が行われ、全処理が終了する場合。
    • Next Page