How to Create Custom Picklist Fields Using Salesforce Metadata API

Salesforce Metadata API is a powerful tool that allows you to manage your organization’s metadata model, not just perform CRUD operations on records. One of the many things you can do with this API is programmatically create custom picklist fields. In this blog post, we’ll walk through the steps to do just that.

Prerequisites
Before we begin, make sure you have the following:

  • A Salesforce Developer Edition org or a sandbox environment.
  • The Metadata Service class added to your Salesforce org.

Step 1: Create a Metadata Service Instance

The first step is to create an instance of the MetadataService.MetadataPort class. This class provides methods for creating, reading, updating, and deleting metadata components.

Step 2: Define the Custom Field

Next, we define the custom field that we want to create. We specify the field’s API name, label, and type. In this case, we’re creating a picklist field.

Step 3: Define the Picklist Values

We then define the picklist values that we want to add to our custom field. We create an instance of metadataservice.ValueSet and metadataservice. ValueSetValuesDefinition. We also create instances of metadataservice.CustomValue for each picklist value.
Also read: How to create a generic Picklist in LWC?

Step 4: Create the Custom Field

Finally, we call the createMetadata method on our service instance to create the custom field. We pass in an array of metadata components that we want to create.

Conclusion

And that’s it! You’ve just created a custom picklist field using Salesforce Metadata API. You can use similar steps to update or delete metadata components.
Feel free to try out the solution and share your feedback with us. We will be back with another interesting Salesforce development solution soon. Until next, keep learning!

Our Location worldwide
India
3rd Floor, A-10, Pegasus Tower, Sector 68, Noida, Uttar Pradesh 201301 +91-1203117884
SR Tower 2nd Floor Hydel Gate Haldwani Uttarakhand 263126 +91-5946359996
USA
333 West Brown Deer Road Unit G – 366 Milwaukee WI, USA 53217 +1(262) 310-7818
UK
7 Bell Yard, London, WC2A 2JR +44 20 3239 9428
Canada
HIC Global Solutions INC
43 Lafferty Lane, Richmond Hill, L4C 3N8, CA +1(262) 310-7818