I would like to get a suggestion on centralizing pickilst values. In salesforce, we need to define picklist values in each object for same kind of fields. For example, i want to add 'status' field in multiple objects. The picklist values also needs to be defined in each objects.

Instead, i would like to centralize the picklist values, so that, when added status values in that list, it will correspond the same value in each objects.

For this, I am thinking of creating another object called 'Picklist Value'. This will hold picklist values for each category, which in turn can be used in multiple objects.

eg My object 'Picklist Value' contains following field :
Name             Value           Category
Draft               Draft            Status
Open              Open            Status
US          United States       Country
CA                Canada           Country

One major disadvantage with this approach is that, i lose translation capability provided by salesforce. Is this the best way to handle the centralization of picklist values? Or is there any better way?


2 Answers 2


With your approach, wouldn't you end up creating a lot of loop up relationships with your custom objects and the newly proposed 'picklist custom object'? Not sure how many objects you have but you may end-up going over the look-up and MD relationship limits.

In my opinion, for countries and states' pick lists, you should use SF's built-in capability of 'state and country picklist' under data management. As for the rest of the status values, I would recommend keeping them in their respective custom objects.

  • I think their is no restrictions on the lookup relationships on the looked up object (in this case PickList value). If you are talking about the current limit of 40 relationship per object (Check winter 15 limits on na17.salesforce.com/help/pdfs/en/…). I think there should be very less chance of hitting the relationship limit, not sure what @Sagar has to say about this.
    – Learner
    Commented Jan 5, 2015 at 4:24

So, You already have an object (lets Say PickList Value Obj) which has all the values of "Centralized Picklist".

If you add any values to this , you wanted these values to get reflected on the following Objects

  • Object 1
  • Object 2

One way to do this is to write a Trigger on Insert of record in "Picklist Value Obj". You can write custom code to add the new value to Obj 1's picklist, Obj 2's picklist values. By this way, all the objects Picklist values would be in Sync.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .