Creating a Restricted Picklist with a Global Value Set is the standard production pattern: centralized values, strict enforcement, reusable across objects. The setup takes 10-15 minutes.
- Create the Global Value Set
Setup, then Picklist Value Sets, then New. Name the set (Account_Industry, Case_Origin, Opportunity_Stage). Add the allowed values in the order they should appear in dropdowns. Save.
- Open the target object
Setup, then Object Manager, then the object. Navigate to Fields and Relationships.
- Create the Picklist field
Click New. Select Picklist as the data type. Click Next.
- Choose Use a Global Picklist Value Set
On the field setup page, select Use Global Picklist Value Set and pick the one you just created. This links the field to the centralized set.
- Set the Restricted flag
On the field detail page, check Strictly enforce picklist values. This makes the field a Restricted Picklist that rejects any value not in the set.
- Add the field to page layouts and test
Add the field to the relevant page layouts. Create a test record, confirm the dropdown shows the right values, confirm that programmatically setting an invalid value via Apex throws an error.
The API and UI name for the field. Standard naming conventions apply.
Picklist or Multi-Select Picklist. Determines the underlying behavior.
The list of allowed values. Either inline or from a Global Picklist Value Set.
Strict enforcement flag. Recommended for production picklists.
- Default Picklists are not restricted. The API accepts any string value with a warning. Production picklists should be marked Restricted to enforce data quality.
- Multi-Select Picklists complicate reporting. Counting records by individual value requires the INCLUDES operator and may need a separate report per value. Pick this type deliberately.
- Global Picklist Value Sets cannot be unlinked once linked. The field permanently uses the set; you cannot revert to per-field values without recreating the field.
- Apex enums and picklist fields are not the same object. Mapping between them requires explicit code; do not assume the Apex enum value matches the Picklist API value.