Picklist Value Sets
A picklist value set, often called a global value set, is a single list of picklist values that lives on its own in Setup and can be shared by more than one picklist field across different objects.
Definition
A picklist value set, often called a global value set, is a single list of picklist values that lives on its own in Setup and can be shared by more than one picklist field across different objects. Instead of typing the same options into each field, you define them once and point every field at that one shared list.
The Picklist Value Sets page in Setup is where these shared lists are created and managed. When you add or deactivate a value in the set, the change flows to every picklist field that uses it. A global value set is restricted by nature, so only an admin can change its values and users cannot save an unapproved entry, even through the API.
How shared picklist values keep your data consistent
One list, many fields
The point of a picklist value set is reuse. Say your org tracks an Industry value on Account, Lead, and Opportunity. Without a shared list you would create three separate picklists and retype the same options into each one. They start identical and slowly drift apart as someone edits one and forgets the others. A global value set removes that risk. You build one canonical list of values, and each of those three fields is defined against it. The fields still behave like normal picklists on their page layouts, but their options all come from the same source. Add a new Industry such as Renewable Energy once, and it appears on all three fields at the same time. Deactivate a value you no longer use, and it stops being selectable everywhere. This is the difference between maintaining one list and maintaining many copies that you hope stay aligned. For any value that has real meaning across objects, like Region, Status, or Industry, the shared set is the safer default.
Global value sets are restricted by design
A picklist value set is always a restricted picklist. That word matters. With an unrestricted picklist, an integration or an API call can push a value the field has never seen, and Salesforce quietly accepts it as an inactive entry. With a global value set, that cannot happen. Only a user with admin rights can add to or change the values, and any record that tries to save a value outside the approved list is rejected. You will see the bad value for restricted picklist field error when that happens. This is a feature, not a nuisance. It means the list of valid Industry or Status values is governed in one place and cannot quietly grow through a misconfigured data load. The tradeoff is that you, the admin, become the gatekeeper. New values must be added deliberately in Setup before any record or integration can use them. For data you report on and segment by, that control is usually worth the small amount of extra process it adds.
Editing the set updates every field at once
After a value set exists, you manage it from its detail page rather than from any single field. The Values related list is where you add, rename, deactivate, replace, or reorder entries. Because the fields inherit from the set, you cannot edit those values on the field itself anymore. You edit them on the set, and the change reaches every field that references it. This is powerful and also a reason to think before you act. Renaming a value or replacing it touches every object using the set, so a rushed edit can ripple further than you expected. Before you change anything, know which fields depend on the set. Salesforce shows the count and the list on the value set detail page. Treat a replace or a bulk rename the way you would treat a schema change, because for several objects at once, that is exactly what it is. Plan it, communicate it, and ideally test it in a sandbox first.
Promoting an existing field into a value set
You do not have to start from scratch. If you already have a custom picklist field with the values you want to share, you can promote its values into a new global value set. On the field, the option to make the values global lifts them out of that single field and turns them into a standalone set, then links the field back to it. From that moment the field reads from the set, and you can attach other fields to the same set too. This is the usual path when you notice drift, such as Account Industry and Lead Industry that have grown slightly different over the years. You promote one of them, then repoint the other field at the same set, and the two are aligned from then on. Keep in mind that promotion changes the field into a restricted picklist, since every global value set is restricted. Any value an integration was silently adding before will now be blocked unless it is part of the approved list, so reconcile your existing data before you flip the switch.
Record types still filter, the set still governs
A common point of confusion is how value sets interact with record types. The two do different jobs and work together. The global value set defines the full universe of valid values for a field. A record type then chooses which of those values are available to users on records of that type. So you might have twelve Status values in the set, while the Escalated record type exposes only the four that make sense for escalations. The record type never adds a value that is not in the set, it only narrows the list down. This means the set is your master catalog and the record type is the per-scenario filter. When you add a value to the set, it does not automatically appear in every record type. You still go into each record type and decide whether the new value belongs there. Understanding this split keeps you from looking in the wrong place when a value is or is not showing up where you expect.
Limits and the metadata behind it
There are ceilings to plan around. A single global value set can hold up to 1,000 values counting active and inactive together, and an org can have up to 500 global value sets in total. Those numbers are generous for normal use but worth knowing before you design something that generates values programmatically. Under the hood, each set is the GlobalValueSet metadata type, with a master label, an optional description, a sorted flag for alphabetical ordering, and a list of custom values that each carry a full name, a label, a default flag, and an active flag. A picklist field that uses the set references it by name through its value set name, rather than storing its own copy of the values. Because it is metadata, a value set moves through change sets and deployment tools like any other component. One known gotcha is that a change set containing a field tied to a global value set can fail with a cannot be resolved error if the set itself is not already present in the target org, so deploy the set first or include it in the same change set.
Create and share a global picklist value set
Create a global value set in Setup, then base one or more picklist fields on it so they all share the same governed list of values.
- Open Picklist Value Sets
From Setup, type Picklist in the Quick Find box and select Picklist Value Sets. The page lists existing global value sets and standard value sets.
- Create the global value set
Next to Global Value Sets, click New. Enter a label, which appears in Setup and when someone builds a picklist on this set. Type the values one per line.
- Set ordering and default
Optionally choose to sort the values alphabetically and to use the first value in the list as the default. Save the set. You can edit the API name and description from its detail page.
- Base a field on the set
Create or edit a custom picklist field, and choose to use a global value set, then pick the one you just made. The field now reads its values from the set. Repeat on other objects to share the same list.
- Maintain values centrally
To change values later, open the value set detail page and use the Values related list to add, deactivate, replace, or reorder entries. The change reaches every field that uses the set.
The display name of the value set in Setup and in the picklist creation screen. Pick something that reads as a reusable list, like Industry or Region.
The entries themselves, one per line. A global value set is restricted, so only these approved values can be saved on any field using it.
Orders the values A to Z for users instead of keeping your entry order. Leave it off when a deliberate sequence such as a status flow matters.
Sets the top value as the default selection on fields built from the set. Useful when one option is the common starting state.
- Once a field uses a global value set, you can no longer edit that field's values on the field itself. Edit them on the value set, and the change affects every field that references it.
- Global value sets are restricted, so integrations cannot introduce new values. Reconcile any values a data load was silently adding before you promote a field, or saves will fail.
- Adding a value to the set does not add it to every record type. You still enable the new value per record type where it should appear.
- When deploying with change sets, include the value set or deploy it first. A field that references a missing global value set fails with a cannot be resolved error.
Prefer this walkthrough as its own page? How to Picklist Value Sets in Salesforce, step by step
Trust & references
Cross-checked against the following references.
- Create a Global Picklist Value SetSalesforce
- GlobalValueSet | Metadata API Developer GuideSalesforce
Straight from the source - Salesforce's reference material on Picklist Value Sets.
- Make Your Custom Picklist Field Values GlobalSalesforce
- Picklist LimitationsSalesforce
Hands-on resources to go deeper on Picklist Value Sets.
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. What does the Picklist Value Sets page let an administrator create?
Q2. What happens to the referencing fields when a value is added to or removed from a global value set?
Q3. Why does a global value set beat creating identical inline picklists on Account, Lead, and Opportunity?
Discussion
Loading discussion…