Skip to main content

Custom metadata types are like list custom settings, but the records are deployable and packageable metadata.

Custom metadata types are custom objects that also act as metadata types: Their records, like records of WorkflowRule or ApexClass, are accessible in the metadata API and in Setup.

Custom metadata records, like most other metadata records (and unlike custom settings records or records of regular custom objects):

  • Have records that can be deployed from Sandbox to a production organization
  • Have records that can be included in a managed or unmanaged packages
  • Are not creatable/deletable/updateable outside the metadata API, the Apex Metadata API, or Setup
  • Require the Customize Application permission to create/delete/update
  • Are visible in Apex tests, even those without the SeeAllData = true annotation value
  • Can be related to certain standard types of metadata (such as object definitions) but not to business data records (such as accounts)