ExperiencePropertyTypeBundle

Represents a property type. Replaced in Spring ’26 by the updated LightningPropertyType. When you create a custom property type for a Lightning web component, use LightningPropertyType instead, and deploy that bundle to your org.

This feature is a Beta Service. Customer may opt to try such Beta Service in its sole discretion. Any use of the Beta Service is subject to the applicable Beta Services Terms provided at Agreements and Terms.

Note

Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.

Important

To create a custom property type, see LightningPropertyType.

Parent Type 

This type extends Metadata and inherits its fields.

File Suffix and Directory Location 

ExperiencePropertyTypeBundle components are stored in the experiencePropertyTypeBundles folder. Here’s an example of how the folder is structured.

1+--myMetadataPackage
2    +--experiencePropertyTypeBundles (1)
3        +--addressProperty (2)
4            +--schema.json (3)
5            +--design.json (4)
  • In the experiencePropertyTypeBundles folder (1) is a folder for each custom property type.
  • Each custom property type folder is named in the format propertyTypeName. In this example (2), the name is addressProperty.
  • Each propertyTypeName folder contains a JSON file or files that define the property type.
    • A schema.json file (3), which is a JSON schema that drives the property type validation
    • An optional design.json file (4), which provides the user experience and property editor information for that property type

Version 

Beta.

ExperiencePropertyTypeBundle components are available in API version 58.0 and later.

Special Access Rules 

The ExperiencePropertyTypeBundle metadata type is available only for use with Lightning web components on LWR sites.

Fields 

description 

  • Type: string
  • Required: No
  • Description: Explanatory text about the property type.

masterLabel 

  • Type: string
  • Required: Yes
  • Description: Required. A user-friendly name for ExperiencePropertyTypeBundle, which is defined when the ExperiencePropertyTypeBundle is created.

resources 

ExperiencePropertyTypeBundleResource Type 

Represents a resource inside ExperiencePropertyTypeBundle.

Fields 

fileName 

  • Type: string
  • Required: Yes
  • Description: Required. The file name of the resource.

filePath 

  • Type: string
  • Required: Yes
  • Description: Required. The file path of the resource.

source 

  • Type: base64Binary
  • Required: Yes
  • Description: Required. The content of the resource.

Declarative Metadata Sample Definition 

This package.xml file retrieves all the ExperiencePropertyTypeBundle components in an org.

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>*</members>
5        <name>ExperiencePropertyTypeBundle</name>
6    </types>
7    <version>58.0</version>
8</Package>

In the retrieved .zip file, each property type is nested under an experiencePropertyTypeBundles folder.

This example shows the directory structure in the .zip file of a property type named addressProperty.

1experiencePropertyTypeBundles
2    addressProperty
3        schema.json
4        design.json

Here are the contents of the files in the addressProperty directory. The addressProperty is a complex type that includes subproperties for firstName, lastName, address, city, state, and postal code. Each subproperty is a primitive type.

Contents of schema.json:

1{
2 "title": "Simple Address Type",
3 "lightning:type": "lightning__objectType",
4 "properties": {
5   "firstName": {
6     "lightning:type": "lightning__textType",
7     "title": "First Name"
8   },
9   "lastName": {
10     "lightning:type": "lightning__textType",
11     "title": "Last Name"
12   },
13   "address": {
14     "lightning:type": "lightning__textType",
15     "title": "Address Line 1"
16   },
17   "city": {
18     "lightning:type": "lightning__textType",
19     "title": "City"
20   },
21   "state": {
22     "lightning:type": "lightning__textType",
23     "title": "State"
24   },
25   "postalCode": {
26     "lightning:type": "lightning__numberType",
27     "title": "Postal Code"
28   }
29 },
30 "required": ["firstName", "lastName"]
31}

Contents of design.json (an optional file):

1{
2 "definition": "lightning/tabsetLayout",
3 "children": [
4   {
5     "definition": "lightning/tabLayout",
6     “attributes”: {
7        “label”: “First Tab”
8     },
9     “children”: [
10       {
11         "definition": "lightning/propertyLayout",
12         "attributes": {
13           "property": "aProperty"
14         }
15       },
16       {
17         "definition": "lightning/propertyLayout",
18         "attributes": {
19           "property": "bProperty"
20         }
21       },
22    ]
23   },
24     {
25     "definition": "lightning/tabLayout",
26     “attributes”: {
27        “label”: “Second Tab”
28     },
29     “children”: [
30       {
31         "definition": "lightning/propertyLayout",
32         "attributes": {
33           "property": "cProperty"
34         }
35       },
36     ]
37   },
38 ]
39}

Wildcard Support in the Manifest File 

This metadata type supports the wildcard character * (asterisk) in the package.xml manifest file. For information about using the manifest file, see Deploying and Retrieving Metadata with the Zip File.