You are here:
Considerations for Custom Metadata Type Packages
Be aware of the behaviors for packages that contain custom metadata types.
Required Editions
| Available in: Salesforce Classic and Lightning Experience |
Protected custom metadata types in managed packages are available in: Developer Edition and scratch orgs Package uploads and installs are available in Group, Enterprise, Performance, Unlimited, and Developer Editions Create, edit, and delete custom metadata type records from installed packages Group and Professional Editions |
Types and Records
After you upload a Managed - Released package that contains a custom metadata type, you can’t change a public custom metadata record or type in the package to protected. But you can change protected records and types to public, or change package protected types to namespace protected.
Fields
After you upload a Managed - Released package that contains a custom metadata type, you can’t:
- Add required fields to the custom metadata type.
- Set non-required fields to required.
- Delete custom fields that are in the uploaded version of the package. If you add a custom field after the upload, you can still delete it until you upload a new Managed - Released version.
- Change the manageability of any custom field in the package.
Visibility
- Custom metadata types with Visibility set to protected aren’t visible to flows in a subscriber org.
- If you increase the visibility of a custom metadata type, you can’t later decrease the visibility. For example, if you change the visibility from Only Apex code in the same managed package can see the type to All Apex code and APIs can use the type, and it’s visible in Setup, you can’t change it later.

