You are here:
Custom Metadata Type Fields
Similar to a custom object or custom setting, a custom metadata type has a list of custom fields that represent aspects of the metadata.
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 |
Important
- Custom Metadata Types don’t support Shield Platform Encryption for fields.
- After defined, Custom Metadata Type custom field types can’t be updated. For example, after you define a custom field as Text, you can’t change it to Text Area.
- You can’t add fields directly to a custom metadata type that’s in an installed managed package. To add fields, see Add Custom Metadata Type Fields to Existing Packages.
Supported Custom Field Types
Custom metadata types support the following custom field types.
- Metadata Relationship
- Checkbox
- Date
- Date and Time
- Number
- Percent
- Phone
- Picklist
- Text
- Text Area
- Text Area (Long)
- URL
Field Manageability Options
Custom metadata type fields are manageable, which means that the developer of a type can decide who can change field values after they’re deployed to a subscriber org. This list contains the Field Manageability options.
- Only the package developer (via package upgrade)—(Developer controlled) The developer of a record can change the value of the field by releasing a new version of the custom metadata package. The subscriber can’t change the value of the field.
- Any user with the Customize Application permission (managed package upgrades won't overwrite the value)—(Subscriber-controlled) Anyone with the correct permissions can change the value of the field. First-generation and second-generation manageability package upgrades don’t overwrite the value, however, second-generation unlocked packages do overwrite the value.
- No one—(Locked after release) For any record of the type, the value of the field is immutable after deployment, even on the developer org where the record was created.
Did this article solve your issue?
Let us know so we can improve!

