Custom metadata is customizable, deployable, packageable, and upgradeable application metadata. First you create a custom metadata type, which defines the form of the application metadata. Then you build reusable functionality that determines the behavior based on metadata of that type.
Required Editions
| Available in: Salesforce Classic and Lightning Experience |
|
Available in: Enterprise, Performance, Unlimited, and Developer Editions You can create, edit, and delete custom metadata type records from installed packages in: Group and Professional Editions |
After you create a public custom metadata type, you or others can declaratively create custom metadata records that are defined by that type. When you package a public custom metadata type, customers who install the package can add their own records to the metadata type. Your reusable functionality reads your custom metadata and uses it to produce customized application behavior. For example, you can use custom metadata types for these use cases.
- Mappings—Create associations between different objects, such as a custom metadata type that assigns cities, states, or provinces to particular regions in a country.
- Business rules—Combine configuration records with custom functionality. Use custom metadata types and some Apex code to route payments to the correct endpoint.
- Primary data—Let’s say that you use a standard accounting app. Create a custom metadata type that defines custom charges such as duties and VAT rates. If you include this type as part of an extension package, subscriber orgs can reference this primary data.
- Allowlists—Manage lists, such as approved donors and preapproved vendors.
Custom metadata rows resemble custom object rows in structure. You create, edit, and delete custom metadata rows in Metadata API or in Setup. Because the records are metadata, you can migrate them using packages or Metadata API tools.