---
schema_version: "1"
id: 26c89a236619e9eacc76ddaa15e726de72919807176211ddfdecb6ee288ef771
title: Custom Metadata Types
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/custommetadatatypes_overview.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_overview.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 6ca76a09d0b09120356e52190e7de428bf74d4dfc03493396f13e0376f438cab
description: You can create your own declarative developer frameworks for internal teams, partners, and customers. Rather than building apps from data, you can build apps that are defined and driven by their own types of metadata. Metadata is the information that describes the configuration of each customer’s organization.
products:
  - Salesforce Platform
release: "264"
---
# Custom Metadata Types

You can create your own declarative developer frameworks for internal teams, partners, and customers. Rather than building apps from data, you can build apps that are defined and driven by their own types of metadata. Metadata is the information that describes the configuration of each customer’s organization.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition">
      <colgroup>
        <col>
      </colgroup>
      <tbody>
        <tr class="">
          <td class="slds-cell-wrap" style="vertical-align:top;">Available in: Salesforce Classic and Lightning Experience</td>

        </tr>
        <tr class="">
          <td class="slds-cell-wrap" style="vertical-align:top;">
            <p>Available in: <strong>Enterprise</strong>, <strong>Performance</strong>,
              <strong>Unlimited</strong>, and <strong>Developer</strong> Editions
            </p>
            <p style="margin-bottom:0;">You can create, edit,
              and delete custom metadata type records from installed packages in:
              <strong>Group</strong> and <strong>Professional</strong> Editions
            </p>
          </td>

        </tr>
      </tbody>
    </table>

- **[What are Custom Metadata Types?](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_about.htm&release=264.0.0&type=5)**  
    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.
- **[Create, Edit, and Delete Custom Metadata Types and Records](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_metadata_api.htm&release=264.0.0&type=5)**  
    You can use Setup to create, update, and delete custom metadata types and records declaratively. Use the Metadata API to perform these tasks programmatically.
- **[Custom Metadata Relationships](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_relationships.htm&release=264.0.0&type=5)**  
    Create relationships between custom metadata types, entity definitions, field definitions, or entity particles. Use relationships rather than text fields to directly reference objects, simplify your Apex code, and enforce referential integrity, for example, when packaging custom metadata types.
- **[Custom Metadata Type Validation Rules](https://help.salesforce.com/s/articleView?id=platform.custommetadatatype_validation.htm&release=264.0.0&type=5)**  
    Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True” or “False”. Validation rules also include an error message to display to the user when the rule returns a value of “True” due to an invalid value.
- **[Reference Custom Metadata Type Records in Default Values](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_default_fields.htm&release=264.0.0&type=5)**  
    Default field values make your users more productive and decrease errors by reducing the number of fields to fill in manually. Reference a custom metadata type record in a default value. If a default field value changes, you can update it in the custom metadata type instead of updating multiple field references.
- **[Custom Metadata Types and Advanced Formula Fields](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_formula_fields.htm&release=264.0.0&type=5)**  
    When you create a custom metadata type, you can reference its values in an advanced formula field. If a field value changes, you can update it in the custom metadata type instead of changing multiple, hard-coded formulas. If you use packaging, define the logic you want and allow your subscribers to customize the details.
- **[Create and Manage Custom Metadata Types Using CLI Commands](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_cli.htm&release=264.0.0&type=5)**  
    You can use the Salesforce command-line interface (CLI) to create custom metadata types, generate fields, create records, create records from a CSV file, and generate custom metadata types from an sObject.
- **[Access Custom Metadata Records Programmatically](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_accessing.htm&release=264.0.0&type=5)**  
    Use SOQL to access your custom metadata types and to retrieve the API names of the records of those types.
- **[Control Read Access to Custom Metadata Types](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_permissions.htm&release=264.0.0&type=5)**  
    Admins with the Customize Application permission can grant Read access to specific custom metadata types through profiles and permission sets.
- **[Protection and Privacy Options for Custom Metadata Types](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_protection.htm&release=264.0.0&type=5)**  
    Manage the visibility and permissions of custom metadata types.
- **[Package Custom Metadata Types and Records](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_package_install.htm&release=264.0.0&type=5)**  
    You can package custom metadata types and records in unmanaged packages, managed packages, or managed package extensions. Your packages can then be installed in Professional, Developer, Enterprise, Performance, Unlimited, and Database.com Edition organizations.
- **[Custom Metadata Types and Process Builder](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_process_builder.htm&release=264.0.0&type=5)**  
    Reference custom metadata type records from a Process Builder formula to automate your business processes, reusing functionality that you define. To change a value, you can update it in the custom metadata type instead of in your process and any hard-coded formulas that your process uses.
- **[Deploy Custom Metadata Types and Records to Production Orgs Using Change Sets](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_changesets.htm&release=264.0.0&type=5)**  
    Use change sets to deploy custom metadata types and records from a sandbox to another org. Typically you deploy the change set to a production org.
- **[Custom Metadata Types Limitations](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_limitations.htm&release=264.0.0&type=5)**  
    When using custom metadata types, be aware of these special behaviors and limitations.
- **[Custom Metadata Allocations and Usage Calculations](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_limits.htm&release=264.0.0&type=5)**  
    Understand requirements for custom metadata types and records and how your custom metadata type usage is calculated.