In April we announced the GA release of custom metadata types, a brand new app configuration engine on The response from the community has been overwhelming.

Within days, the announcement became the most tweeted blog in the recorded history of the Salesforce Developers Blog. It even beat the announcement of last year’s million-dollar hackathon!

We are therefore changing our slogan. Instead of, “the app configuration engine for” you will start seeing, “custom metadata types: more loved than money.”

Here is what some of you said in April:

Eager adopters

Custom metadata types allow you to create your own setup objects so you can manage, package and deploy the sophisticated configuration layers in your apps. Building mappings, rules engines, or master data with custom objects or custom settings requires special tooling or manual processes to deploy the records.

With custom metadata types you can use the automation tools provides to deploy app configurations through the Metadata API. Developers save 1-2 person-years of writing custom tools and easily meet compliance requirements.

We are already seeing customers replace custom settings with custom metadata types so they can deploy their configuration changes with change sets and other metadata API tools. They have eliminated time consuming and error prone manual migration of configuration data.

Partners are refactoring apps, spending a few days to move their previously unpackageable app configuration data from custom settings to custom metadata types, saving weeks or months of tooling updates and upgrade management.

Winter ‘16

We are especially excited about the Winter ’16 features available soon (safe harbor) through the Pre-Release Program. We have closed some of the key feature gaps of the initial release that I discussed here. Specifically, in the Winter ’16 release you will find:

User interface

We have added a native UI for creating and managing custom metadata types and records. You can still use the tools we have provided to create your own UI, but that is no longer necessary with the powerful, out-of-the-box Salesforce Setup experience.

Field management, FTW!

Partners can now manage the editability of custom fields on their metadata types.

  • Subscriber controlled fields let you provide default values that a customer can modify. You can change the value of the default, which will be reflected in new package installs, but it will not overwrite customers’ customizations when they upgrade.
  • Upgradable (developer controlled) fields cannot be edited by package subscribers. You can change them in an upgrade without impacting subscribers’ customizations.

I cannot overstate the importance of this feature. The ability to delegate editability on a field-by-field basis is a huge step in the manageability of packaged apps. With custom metadata types it’s easy for partners to prevent customers from changing configuration values, which can change the behavior of an app in unintended ways or be overwritten during an upgrade.

Now managed package developers have total control over customizability and upgrades. You can let customers change specific app configuration values while retaining control of others, ensuring safe upgrades.

Record-level protection

Like custom settings, custom metadata types can be made hidden or public. In the Winter ‘16 release we have added the ability to protect individual custom metadata records. You can now leave the type exposed for your customers to extend, while still hiding some or all of your records in that type.

Setup audit trail history

Prior to the release of custom metadata types you could not create setup objects, so the records of your app configurations were not tracked in the setup audit trail history. Now you can track all changes to your configuration layer, both the objects and records, in setup audit trail history.

Custom metadata types and custom settings comparison

(Don’t like that red “X” in the bottom right corner? Vote to change it!)


We have several of opportunities for you to explore custom metadata types and talk to the development team at Dreamforce. We hope to see you in some of the following sessions:

The first two sessions will explore current features and use cases of custom metadata types through production apps demonstrated by customers and partners.

And the third session will blow your mind! Our development efforts on this product are just getting started.

Do you want to build not just apps, but your very own platform on Do you want to learn what dynamic triggers are and how they will enable high-power, customizable workflows? Do you want to easily build reflection into your app? Or add inheritance? This is the session for you! Come learn about the possibilities we are opening up on the platform. And tell us what else you want to see!

See you at Dreamforce!
Update: Updated Dreamforce session titles and added session links

Get the latest Salesforce Developer blog posts and podcast episodes via Slack or RSS.

Add to Slack Subscribe to RSS