Newer Version Available

This content describes an older version of this product. View Latest

ExperienceBundle

Represents a text-based code structure of the settings and site components, such as pages, branding sets, and themes, that make up an Experience Builder site. Developers can quickly update and deploy Experience Builder sites programmatically using their preferred development tools.This type extends the Metadata metadata type and inherits its fullName field.

File Suffix and Directory Location

ExperienceBundle components have the suffix .json and are stored in the experiences folder when retrieved. Each Experience Builder site in your org has its own folder. Each of these folders contains other folders for the supported properties.

The ExperienceBundle can contain one or more site definitions under the experiences folder. Each site definition has resource folders for brandingSets, config, routes, themes, variations, and views, each with additional, related configuration information in JSON files. Here’s an example site definition, showing the resource folders.

Three-level folder structure

Version

ExperienceBundle components are available in API version 46.0 and later.

Special Access Rules

To use the ExperienceBundle metadata type for Aura-based Experience Builder sites, from Setup, enter Digital Experiences in the Quick Find box, and then select Settings. Select Enable ExperienceBundle Metadata API, and save your changes. LWR sites use ExperienceBundle by default.

Fields

Field Name Field Type Description
experienceResources ExperienceResources[] The list of resources in this ExperienceBundle. Each resource represents an artifact of a site such as brandingSets, config, routes, themes, variations, and views.
label string Required. Represents the name of the ExperienceBundle.
type SiteType (enumeration of type string) Required. Identifies the kind of site. Only Experience Builder sites are supported, using the value ChatterNetworkPicasso.

ExperienceResources

Represents a list of sites in the bundle.

Field Name Field Type Description
experienceResource ExperienceResource[] The list of resources in this ExperienceBundle. Each resource represents a property for the site, such as brandingSets, config, routes, themes, and views.

ExperienceResource

Represents specific site information included in the ExperienceBundle.

Each type has a folder in the structure. Each folder contains one or more files providing information about that type and the site. Each corresponds to a specific folder and file in the ExperienceBundle.

Field Name Field Type Description
fileName string Required. Name of resource file.
format string Required. Only JSON is allowed.
source base64 The JSON content of each file.
type string Required. The type of the resource. Valid values are:
  • brandingSets
  • config
  • routes
  • themes
  • views

Folders and Bundled Definitions

Each ExperienceBundle includes folders and associated data that is contained in JSON files.

brandingSets Folder

This folder contains one JSON file per branding set, named brandingSets_name.json. Each file has the same structure and properties.

<brandingSets_name>.json

Property Type Description
brandingSetType string Required in LWR sites. Not applicable for Aura sites.. Represents whether the color palette stored in the branding set is for the entire site or a specific section. You can’t change one branding set type to another. Available in API Version 52.0 and later.
Valid values are:
  • APP: The branding set applies to the entire site. There can only be one branding set of this type.
  • SCOPED: The branding set applies to a specific section.
definitionName string Required. Represents the name for the branding set that is used in grouping branding sets under a theme. Defined as theme:branding-theme.

For example, if the site theme is Stella, the definitionName would be stella:branding-stella.

In addition, there are several standard templates that have unique naming:
  • Customer Account Portal uses cpt:branding-cpt
  • Customer Service uses service:branding-service
  • Help Center uses helpCenter:branding-helpCenter
  • Partner Central uses prm:branding-prm
  • Build Your Own uses starter:branding-starter

The combination of definitionName + label must be unique in your org.

Note

id UUID Represents the component's GUID.
label string Represents the name of the branding set.

The combination of definitionName + label must be unique in your org.

Note

type string Represents the component type. The only supported value is brandingSet.
values map Required. Represents a map of branding values that can be applied to a site.
1{
2  "values" : {
3    "HeaderBackgroundColor" : "#FFFFFF",
4    "TextTransformStyle" : "none",
5    "BorderColor" : "#D4D4D4",
6    "DetailTextColor" : "#5A5A5A",
7    "HeaderFonts" : "Ek Mukta",
8    "CardBackgroundColor" : "rgba(255, 255, 255, 0)",
9    "LoginBackgroundColor" : "#F4F4F4",
10    "_ActionColorTrans" : "rgba(25, 124, 190, 0.9)",
11    "LoginBackgroundImage" : "../../../../sfsites/picasso/core/external/salesforceIdentity/images/background.jpg?v=1",
12    "PageBackgroundColor" : "#F5F7FA",
13    "_HeaderTextColor" : "rgba(34,34,34,.8)",
14    "_NavigationMenuHoverColor" : "rgba(255,255,255,.2)",
15    "_HeaderInputBackgroundColor" : "rgba(255,255,255,.4)",
16    "TextColor" : "#222222",
17    "NavigationMenuTextColor" : "#222222",
18    "_HeaderPlaceholderTextColor" : "rgba(85,85,85,.8)",
19    "_OverlayTextColorShadow" : "#000000",
20    "ActionColor" : "#0099DE",
21    "CompanyLogo" : "",
22    "_LinkColorDarker" : "#135F90",
23    "_ActionColorDarker" : "#135F90",
24    "_HoverColor" : "rgba(25, 124, 190, 0.05)",
25    "ErrorFontColor" : "#ff9e9e",
26    "OverlayTextColor" : "#FFFFFF",
27    "PrimaryFont" : "Ek Mukta",
28    "LinkColor" : "#3558D6"
29    },
30  "definitionName" : "cpt:branding-cpt",
31  "label" : "Customer Account Portal",
32  "id" : "283407c3-5938-4a6b-b97f-621cda6968c8",
33  "type" : "brandingSet"
34 }

config Folder

The config folder contains several JSON files.
  • sitename.json
  • languages.json
  • page_name.json

    One for each single-page application in the site: loginAppPage.json and mainAppPage.json

    Note

sitename.json File Properties

Property Type Description
authenticationType string For LWR sites, indicates whether guest users have access to the site.

For Aura sites, use isAvailableToGuests instead.

Note

Unlike Aura sites, when you create an LWR site, you can select the site’s authentication type—Authenticated or Unauthenticated—in the site creation wizard.

Valid values are:
  • AUTHENTICATED: The site isn’t public. Only authenticated users can access the site after logging in.
  • AUTHENTICATED_WITH_PUBLIC_ACCESS_ENABLED: The site is an authenticated site, but the Public can access the site checkbox is enabled in Experience Builder in Settings | General. Guest users can access the site.
  • UNAUTHENTICATED: The unauthenticated site is publicly available to anyone on the web, and doesn’t support login or authentication. Guest users can access the site.

Available in API version 51.0 and later.

forgotPasswordRouteId UUID Represents the ID of the route to use when a user forgets their password.

Unsupported if the active Experience Builder template for the site doesn't support login (such as Help Center).

Note

isAvailableToGuests boolean For Aura sites, indicates whether public users have access to the site (true) or not (false). The default value is false.

For LWR sites, use authenticationType instead.

Note

isFilteredComponentsView boolean Indicates whether the list of components is filtered based on the current page type (true) or not (false). Some components require specific parameters from the page and don't work unless you manually configure them. The default value is false.
isProgressiveRenderingEnabled boolean Indicates whether the display order of page components is prioritized (true) or not (false). The default value is false.
loginAppPageId UUID Represents the ID of the login page.

Unsupported if the active Experience Builder template for the site doesn't support login (such as Help Center).

Note

mainAppPageId UUID Required. Represents the ID of the main page.
preferredDomain string Represents the name of the domain to use for indexing a site’s pages. Improves search engine results.

Available in API version 48.0 and later.

preferredDomainId string Represents the domain to use for indexing a site’s pages. Improves search engine results.

Removed in API version 48.0. Use preferredDomain instead.

selfRegistrationRouteId UUID Represents the ID of the login route to use for self-registration.

Unsupported if the active Experience Builder template for the site doesn't support login (such as Help Center).

Note

type string Represents the component type. The only supported value is site.

trustedSitesForScript container

When implemented, there is one trustedSitesForScript container in sitename.json.

Property Type Description
id UUID Represents the component's GUID.
isActive boolean Indicates if allowlisted item is active (true) and should be respected or inactive (false) and should not be treated as an allowlisted source. Default is false.
trustedSiteName string Name of the allowlisted source as it appears in the UI.
trustedSiteUrl string The fully qualified URL of the allowlisted source.
type string Represents the component type. The only supported value is trustedSitesForScripts.
1{
2   "isAvailableToGuests" : false,
3   "isFilteredComponentsView" : false,
4   "mainAppPageId" : "df9907cb-6e68-4ca1-8bb2-51173ca5374e",
5   "loginAppPageId" : "58e9939a-84b2-498d-bbc5-7a89d89087fa",
6   "selfRegistrationRouteId" : "ad5c8bf1-297f-4ad3-b47c-0e35d85f10ef",
7   "forgotPasswordRouteId" : "e3139f6f-44d8-4eec-be9d-3609ce063039",
8   "isProgressiveRenderingEnabled" : false,
9   "preferredDomain" : "none",
10   "selfRegistrationRouteId" : "b8fe8ab1-f266-41e1-a63b-4791165f3c1d",
11   "trustedSitesForScript" : [ {
12     "id" : "92c489e2-0b7b-4a48-9c88-bef7e8fe6f1b",
13     "isActive" : true,
14     "trustedSiteName" : "test",
15     "trustedSiteUrl" : "https://123.com",
16     "type" : "trustedSitesForScripts"
17   }, {
18     "id" : "92c489e2-0b7b-4a48-9c88-bef7e8fe6f1c",
19     "isActive" : true,
20     "trustedSiteName" : "test1",
21     "trustedSiteUrl" : "https://1234.com",
22     "type" : "trustedSitesForScripts"
23  } ],
24    "type" : "site"
25}

languages.json File Properties

Property Type Description
defaultCode string Required. Represents the base language code plus the country code where used.
defaultLabel string Required. Defines the display label for the language.
id UUID Represents the component's GUID.
type string Represents the component type. The only supported value is languageContainer.

There is one section per supported language as a container in languages.json

language container

Property Type Description
countryCode string Represents the country code of the selected language. This string can be empty. It applies only when the selected language has variations depending on the country, like Arabic (Algeria) and Arabic (Bahrain). In this case, use countryCode to distinguish between them.

For example:{ languageCode" : "ar", "CountryCode" : "DZ", "Label" : "Arabic (Algeria) (DZ)",}, { "Code" : "ar", "CountryCode" : "BH", "Label" : "Arabic (Bahrain) (BH)",}

fallbackLanguageId UUID Represents the language to use when no content is available for the selected language. For example, imagine that a site visitor chooses Japanese from the language selector, but there is no content for that page in Japanese. Content is displayed in the fallback language.
id UUID Represents the component's GUID.
isActive boolean Indicates whether a language is available to site visitors in the language selector (true) or not (false). The default value is true.
label string Defines the display label for a language. The display label appears in any language selector components that you add to your site and in the language selector in Experience Builder.
languageCode string Represents the language code for the selected language.
type string Represents the component type. The only supported value is language.
1{
2    "defaultCode" : "en_US",
3    "defaultLabel" : "English (US)",
4    "id" : "04597c83-0b9d-4f16-9f4d-4ec28bd553b4",
5    "type" : "languageContainer",
6    "languages" : [ {
7        "languageCode" : "af",
8        "countryCode" : "",
9        "isActive" : true,
10        "label" : "Afrikaans",
11        "fallbackLanguageId" : "c6e7fe67-55e0-47b3-ad58-bf49539249f0",
12        "id" : "22036d6f-11ce-4f7b-b7f0-f2c409f817ea",
13        "type" : "language"
14        }
15     ]
16 }
The page file represents single-page applications in the site. One file per page, named page_name.json.

Each Experience Builder site is actually a single-page application, which is a web app that loads a single HTML page. Single-page applications use multiple views to update the page dynamically as the user interacts with it.

Note

page_name.json File Properties

Property Type Description
cmsSettings map Settings for the CMS Connect header and footer. Valid values are:
  • headerName
  • headerUrl
  • headerPersonalization
  • footerName
  • footerUrl
  • footerPersonalization
Both source and target org must have the CMSConnect and CMSPersonalization org perms enabled for settings to be retrieved.
currentThemeId UUID Required. Represents the UUID of the site's current theme. This field is available for mainAppPage.json and loginAppPage.json (where applicable).
headMarkup string Required. Allows the addition of custom markup to the site's main page <head> tag. Similar to using Experience Builder | Setting | Advanced | Head Markup See Salesforce Help for markup guidance.
id UUID Required. Represents the component's GUID.
isRelaxedCSPLevel boolean Controls the ability to run scripts and script access to third-party hosts. The default is false. This field is available for mainAppPage.json and loginAppPage.json (where applicable).
label string Required. Represents the name of the page.
templateName string Required. The unique developer name of the template. Allowed values are:
  • Help Center Template (which represents the Help Center template)
  • CPT Community Template (which represents the Customer Account Portal template)
  • Service Community Template (which represents the Customer Service template)
  • Starter Template (which represents the Build Your Own template)
  • PRM Community Template (which represents the Partner Central template)
  • talon-template-byo (which represents the Build Your Own (LWR) template)
  • Custom_template_name (which is the name of a customized template that was exported as a Bolt Solution)
type string Required. Represents the component type. The only supported value is appPage.
1{
2    "headMarkup" : null,
3    "isRelaxedCSPLevel" : false,
4    "templateName" : "Starter Template",
5    "cmsSettings" : { },
6    "currentThemeId" : "ff52089c-6ad9-4dd9-b5b5-251d4a117ce3",
7    "label" : "main",
8    "id" : "df9907cb-6e68-4ca1-8bb2-51173ca5374e",
9    "type" : "appPage"
10}

routes Folder

The routes folder contains one JSON file per page, named <page_name>.json.

<page_name>.json

Property Type Description
activeViewId UUID Required. Represents the default view of the route. Used when there are no defined audiences or the user doesn’t match any audience.

Available in API version 48.0 and later.

appPageId UUID Required. Represents the Single Page Application (SPA) page for the route. It points to either main.json or login.json.
configurationTags string[] Required. Represents the configuration tags for the route. The only supported value is allow-in-static-site. Available in API Version 51.0 and later.

This is an internal property and should not be edited.

Note

id UUID Required. Represents the component GUID. Inherited from the component.
label string Required. Represents the name of the route. Inherited from the component.
objectApiName string Required. The name of the custom object API. (Not available for standard objects.)
pageAccess string Required. Identifies the status of a route as public or private. When set to the default value UseParent, the status of the site determines the status of the route. Not editable from the user interface for routes that are always private. Valid values are UseParent, Public, and RequiresLogin.
routeType string Required. Identifies the type of route. Value is unique among all routes that share the same SPA page. The value in viewType must match.
type string Required. Represents the component type. The only supported value is route.
urlPrefix string Required. Represents the base URL for the route.
1{
2    "urlPrefix" : "",
3    "appPageId" : "b5fe94e2-071f-47b2-b76d-427a624cb407",
4configurationTags” : “allow-in-static-site
5    "routeType" : "home",
6    "pageAccess" : "UseParent",
7    "label" : "Home",
8    "id" : "c7263124-7bc4-4147-a39a-25fe7e305b98",
9    "type" : "route"
10}

themes Folder

The themes folder contains one JSON file per theme named theme_name.json.

theme_name.json

Property Type Description
activeBrandingSetId UUID The id of the branding set currently in use. The branding set's definitionName must match the theme's brandingSetReference.
customCSS string Custom CSS for pages created in the Experience Builder template.
developerName string Required. The unique developer name of the theme. Most themes derive their names directly, for example Jepson uses jespon for its developerName.
Standard templates have unique values:
  • cpt for Customer Account Portal
  • service for Customer Service
  • helpCenter for Help Center
  • prm for Partner Central
  • starter for Build Your Own
id UUID Required. Represents the component's GUID.
label string Represents the name of the theme.
layouts map Required. Maps ThemeLayoutType to UUID, and contains the definition of the ThemeLayout. Login and Inner theme layouts are always required.
type string Required. Represents the component type. The only supported value is theme.
1{
2    "developerName" : "cpt",
3    "layouts" : {
4        "Login" : "12162c3e-06ac-43a9-adc7-db36ae5140b0",
5        "Inner" : "c09d58be-0622-4fc4-806a-ed34174929f9"
6    },
7    "customCSS" : "",
8    "activeBrandingSetId" : "283407c3-5938-4a6b-b97f-621cda6968c8",
9    "label" : "Customer Account Portal",
10    "id" : "ff52089c-6ad9-4dd9-b5b5-251d4a117ce3",
11    "type" : "theme",
12    "views" : [ {
13        "componentName" : "salesforceIdentity:loginBody2",
14        "label" : "Login",
15        "id" : "12162c3e-06ac-43a9-adc7-db36ae5140b0",
16        "type" : "view",
17        "regions" : [ {
18            "regionName" : "header",
19            "id" : "f8354922-11f2-495d-9d89-0a51943af2b0",
20            "type" : "region",
21            "components" : [ ]
22        } ]
23    } ]
24}

Views can be children of a theme. These children are structured the same as views in the views folder.

Note

variations Folder

Experience variations let you change the default behavior of the Experience Builder site based on the audience. The variations folder contains one JSON file per experience variation. The file is named experienceVariation_name.json.
  • Experience variations are available in API version 47.0 and later.
  • The name of your JSON file must match the developerName of your variation to avoid issues when deploying a site more than once.

Note

Four distinct types of variations are supported: branding sets, page variations, component visibility, and component attributes. The different variations are indicated through the componentVariant container.

For example, you might want the site to show a page variation for the home page when a user meets certain audience criteria. To achieve this, create an audience and then target that audience to your experience variation using targetId in the componentVariant container of the experience variation definition file.

experienceVariation_name.json

Property Type Description
componentVariants list Required. A list of component variants that belong to this experience variation.

Only one component variant per experience variation is allowed.

Note

developerName string Required. The unique developer name of the experience variation. This name is used in the targetValue field of a Personalization API target and can’t be updated after it’s set.

For more information, see Audience.

Note

id UUID Required. Represents the GUID of the component.
type string Required. Represents the type of the component. The only supported value is experienceVariation.

When implemented, there is one container in each experienceVariation_name.json file describing the variation.

componentVariant container

Property Type Description
id UUID Required. Represents the GUID of the component.
propertyOverrides map Required. Defines the property overrides for the given theme, route, or component targetId.

For example, if the targetId is pointing to a theme, you can override the defaultBrandingSet property of the theme to use a different branding set for this experience variation.

Supported property overrides:
activeBrandingSetId
Defines which branding set to use when targetId is a theme. Uses the format:
1"activeBrandingSetId" : "ID_of_brandingset"
activeViewId
Defines which page variation to use when targetId is a route. Uses the format:
1"activeViewId" : "ID_of_view"
componentAttributes
Supported only for CMS Collection components and navigation components, such as Navigation Menu or Tile Menu. Components can be placed in header and footer regions, and also in the view body.
  • Defines which navigation linkset to display when targetId is a navigation component.

    The value of the property is a JSON container with a single key-value pair denoting the attribute and the value of the attribute.

    NavigationMenuEditorRefresh is the only supported attribute. Uses the format:
    1"componentAttributes" : {
    2   "NavigationMenuEditorRefresh" : "linkset_name"
    3}
  • Defines which content collection to display when targetId is a CMS Collection component.
    The value of the property is a JSON container with a single key-value pair denoting the path to the attribute and the value of the attribute. config/dataProviderDefinition/attributes/dataProviderInfo/apiName is the only supported attribute. Uses the format:
    1"componentAttributes" : {
    2   "config/dataProviderDefinition/attributes
    3/dataProviderInfo/apiName":"collection_name"
    4}
isVisible
Defines whether a component is visible for the audience when targetId is a component. Unsupported for components in header or footer regions. Uses the format:
1"isVisible": boolean
  • Only one entry in the map is allowed.
  • For a component, you can vary either its visibility or attributes but not both together.

Note

targetId UUID Required. The UUID of the item whose properties you are overriding. Must be the ID of a theme, route, or component.
type string Required. Represents the type of the component. The only supported value is experienceVariation.

Example of an experience variation for a branding set

1{
2   "id": "64e93604-78fa-11e9-8f9e-2a86e4085a59",
3   "developerName": "BrandingVariation",
4   "type": "experienceVariation",
5   "componentVariants": [{
6      "id": "4bf0af78-8d73-11e9-bc42-526af7764f64",
7      "type": "componentVariant",
8      // Theme UUID
9      "targetId": "c810858e-78fa-11e9-8f9e-2a86e4085a59",
10      "propertyOverrides": {
11         // Brandingset UUID
12         "activeBrandingSetId": "be9f4760-78fa-11e9-8f9e-2a86e4085a59" 
13      }
14   }]
15}

Example of an experience variation for a page variation

1{
2   "id": "64e93604-78fa-11e9-8f9e-2a86e4085a59",
3   "developerName": "PageVariation",
4   "type": "experienceVariation",   
5   "componentVariants": [{
6      "id": "4bf0af78-8d73-11e9-bc42-526af7764f64",
7      "type": "componentVariant",
8      // Route UUID
9      "targetId": "c810858e-78fa-11e9-8f9e-2a86e4085a59", 
10      "propertyOverrides": {
11         // View UUID
12         "activeViewId": "be9f4760-78fa-11e9-8f9e-2a86e4085a59"
13      }
14   }]
15}

Example of an experience variation for component visibility

1{
2   "id": "64e93604-78fa-11e9-8f9e-2a86e4085a59",
3   "developerName": "ComponentVisibilityVariation",
4   "type": "experienceVariation",
5   "componentVariants": [{
6      "id": "4bf0af78-8d73-11e9-bc42-526af7764f64",
7      "type": "componentVariant",
8      // Component UUID
9      "targetId": "c810858e-78fa-11e9-8f9e-2a86e4085a59", 
10      "propertyOverrides": {
11         "isVisible": true
12      }
13   }]
14}
Example of a component variation for a CMS Collection component
1{
2   "id" : "6ce1260f-cb01-45a0-8947-f2d85602a3db"
3   "developerName": "Home_CMS_Collection_Component_Properties",
4   "type": "experienceVariation",
5   "componentVariants": [{
6      "id" : "3gh1260f-cb01-45a0-8947-f2d92037a4db"
7      "type": "componentVariant",
8      "targetId": "d77369e6-7230-43e7-9b59-6e91c47b3273",
9      "propertyOverrides": {
10         "componentAttributes": {
11            "config/dataProviderDefinition/attributes/dataProviderInfo/apiName":"SilverCollection"
12         }
13      },
14   }],
15}
Example of a component variation for Navigation Menu component
1{
2   "id" : "8cf943b8-525d-4c13-a719-6ebc7d61a81e",
3   "developerName" : "Default_Navigation_Menu_Component_Properties", 
4   "type" : "experienceVariation",
5   "componentVariants" : [{
6      "id" : "5be1260f-cb01-45a0-8947-f2d85602a4db",
7      "type" : "componentVariant",
8      "targetId" : "fdf9eb51-ddc5-4e79-9ea8-5b94f5ca8db4",
9      "propertyOverrides" : {
10         "componentAttributes" : {
11            "NavigationMenuEditorRefresh" : "NavMenu1"
12         }
13      },
14   }],
15}

views Folder

The views folder contains several JSON files that each define a view. Each Experience Builder site is built from single-page applications, which are web apps that load a single HTML page. Single-page applications consist of multiple views that update the page dynamically as the user interacts with it.

A view is made up of regions that contain other regions or components in the rendered page for the user. Within the views folder there is one file per view, named view_name.json.

Single-page applications in your site are defined in the page files of the config folder.

Note

view_name.json

Property Type Description
appPageId UUID Required. Single Page Application (SPA) page ID of the view. It points to either main.json or login.json.
componentName string Required. The FQN of the layout component. The component must implement forceCommunity:layout or, for theme layouts, forceCommunity:themeLayout
id UUID Required. Represents the GUID of the component.
label string Required. The name that appears in Experience Builder | Settings | Theme | Configure.
themeLayoutType string Theme layout type of the view (exposed only for views).
type string Required. Represents the type of the component. The only supported value is view.
viewType string Required. Matches routeType for the route.

There are one or more regions as a container in each <view_name>.json

region container

Property Type Description
id UUID Required. Represents the component GUID.
regionLabel string Specifies region labels for tabs.

This property is present only for tab regions that are children of a component.

Note

regionName string Required. Matches the design attribute in the design file of the layout component.
type string Required. Represents the component type. The only supported value is region.

There are one or more components as a container in the region section of each <view_name>.json

component container

Property Type Description
componentAttributes HashMap Required. The design attribute values of the component.
componentName string Required. The FQN of the component. Only components that can be used in the component panel in Experience Builder can be used in this field.
id UUID Required. Represents the component GUID.

If you add a component to ExperienceBundle, you can enter any value because the system automatically generates a UUID for the component when deployed.

Note

renderPriority enums.priority Sets priority value for progressive rendering of the component. Possible Values: HIGHEST, HIGH, NEUTRAL

Only evaluated if the site has progressive rendering turned on in Experience Builder | Settings | Advanced.

Note

renditionMap HashMap Map of different rendition keys to UUIDs of RenditionComponents.
scopedBrandingSetID UUID Required for LWR sites. Not applicable for Aura sites. Represents the ID of a branding set for a specific community_layout:section component. Available in API Version 52.0 and later.
type string Required. Represents the component type. The only supported value is component.

Each component can have a rendition container in each <view_name>.json

rendition container

Property Type Description
id UUID Required. Represents the component GUID.
renditionValue map Map of different variations of a component, such as different languages of text.
type string Required. Represents the component type. The only supported value is renditionComponent.
1{
2    "themeLayoutType" : "Inner",
3    "viewType" : "account-management",
4    "appPageId" : "df9907cb-6e68-4ca1-8bb2-51173ca5374e",
5    "componentName" : "siteforce:sldsOneColLayout",
6    "label" : "Account Management",
7    "id" : "9ca8fa47-8e87-4915-a6f7-c2d8d37f3076",
8    "type" : "view",
9    "regions" : [ {
10         "regionName" : "content",
11         "id" : "969ada98-7d72-4e45-8a10-7db51fae247c",
12         "type" : "region",
13         "components" : [ {
14            "componentName" : "forceCommunity:tabset",
15            "componentAttributes" : {
16                "tabsetConfig" : "{\"UUID\":\"4711850e-ffdc-4375-a45e-f716bcdbbb1c\",\"activeTab\":\"tab1\",
17                \"useOverflowMenu\":false,\"tabs\":[{\"UUID\":\"bc8fb51f-4783-43d4-9376-60c07677a367\",\"tabName\":\"Members\",
18                \"tabKey\":\"tab1\",\"locked\":false,\"allowGuestUser\":false,\"seedComponents\":[{\"fqn\":\"forceCommunity:relatedList\",
19                \"attributes\":{\"parentRecordId\":\"{!CurrentUser.accountId}\",\"relatedListName\":\"Users\",\"customTitle\":\"Members\",
20                \"showCustomTitle\":\"true\",\"showBreadCrumbs\":\"false\",\"showRowNumbers\":\"false\",\"showManualRefreshButton\":\"false\"}}]},
21                {\"UUID\":\"f2793a99-b757-4be4-846f-dc98a13a8139\",\"tabName\":\"Branding\",\"tabKey\":\"tab2\",\"locked\":false,
22                \"allowGuestUser\":false,\"seedComponents\":[{\"fqn\":\"forceCommunity:accountBrandRecord\",
23                \"attributes\":{\"recordId\":\"{!CurrentUser.accountId}\"}}]}]}",
24                "regions" : ""
25            },
26            "renderPriority" : "NEUTRAL",
27            "renditionMap" : { },
28            "id" : "4711850e-ffdc-4375-a45e-f716bcdbbb1c",
29            "type" : "component",
30            "renditions" : [ {
31               "renditionValue" : {
32                  "LumenInstanceAttributes" : {
33                  "richTextValue" : "<p>new text</p>"
34                  }
35               },
36              "id" : "9d8878df-f520-4010-861c-57b930a3daab",
37              "type" : "renditionComponent"
38            } ]
39        } ]
40    } ]
41}

Declarative Metadata Sample Definition

Here’s an example of an ExperienceBundle declaration. For individual folder and file examples for the bundled code, see brandingSets, config, routes, themes, variations, and views.

1<xsd:complexType name="ExperienceBundle">
2    <xsd:complexContent>
3        <xsd:extension base="tns:Metadata">
4            <xsd:sequence>
5                <xsd:element name="experienceResources" minOccurs="0" type="tns:ExperienceResources"/>
6                <xsd:element name="label" type="xsd:string"/>
7                <xsd:element name="type" type="tns:SiteType"/>
8            </xsd:sequence>
9        </xsd:extension>
10    </xsd:complexContent>
11</xsd:complexType>
12    <xsd:complexType name="ExperienceResources">
13        <xsd:sequence>
14            <xsd:element name="experienceResource" minOccurs="0" maxOccurs="unbounded" type="tns:ExperienceResource"/>
15        </xsd:sequence>
16    </xsd:complexType>
17<xsd:complexType name="ExperienceResource">
18    <xsd:sequence>
19        <xsd:element name="fileName" type="xsd:string"/>
20        <xsd:element name="format" type="xsd:string"/>
21        <xsd:element name="source" minOccurs="0" type="xsd:base64Binary"/>
22        <xsd:element name="type" type="xsd:string"/>
23    </xsd:sequence>
24</xsd:complexType>

Usage

Before you update the .json files of an Experience Builder site, we recommend making a copy of the site’s folder as a backup.

Tip

When you add a component to ExperienceBundle, you can enter any value for the id, because the system automatically generates a UUID for the component when deployed.

When deploying an Experience Builder site with ExperienceBundle, ensure that the SiteDotCom type isn’t included in the manifest file.

ExperienceBundle doesn’t support retrieving and deploying across different API versions. If you’re trying to upgrade ExperienceBundle metadata from an earlier API version to a later one—for example, from API version 48.0 to 49.0—take the following steps:
  1. Set the API version in the package.xml manifest file to 48.0 and deploy the package.
  2. Then, set the API version in package.xml to 49.0.
  3. Retrieve the package to get the latest ExperienceBundle updates.

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.