---
schema_version: "1"
id: 1b36fa7d460a4f8993f7a074977fec11c184fa44b2bd14141beb381194d333f2
title: Custom Properties for Page Templates or Widgets Overview
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/siteforce_widget_properties_about.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_properties_about.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 828415a8b5cc5a19ca8851243720887b57509e5ef4ab79b5724b2aed7a7e2be6
description: When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property to achieve greater flexibility over how templates and widgets are reused.
products:
  - Salesforce Platform
  - Security
release: "264"
---
# Custom Properties for Page Templates or Widgets Overview

When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property to achieve greater flexibility over how templates and widgets are reused.

### 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</td>

        </tr>
        <tr class="">
          <td class="slds-cell-wrap" style="vertical-align:top;">
            <p>Available for purchase in: <strong>Enterprise</strong>, <strong>Performance</strong>, and
              <strong>Unlimited</strong> Editions
            </p>
            <p style="margin-bottom:0;">Available (with limitations) in:
              <strong>Developer</strong> Edition
            </p>
          </td>

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

Then, by adding custom code or content blocks to the page template or the widget, you can access the property values by using expressions. Expressions serve as placeholders for data that’s replaced with information when the page loads.

In turn, when you or your team create a page from the template, the page is a copy or instance of the template. Similarly, when you add the widget to a page, it creates an instance of the widget. You can't edit the instance, but you can update its property values.

Because expressions are just placeholders, their values are updated automatically when you update the values in the Properties pane of the page or widget.

You can also create sections to group related properties. These sections control how properties are grouped in the Properties pane.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png)

Example

For example, let's say you add a content block to a template to contain the page’s heading. In this case, when users create a page from the template, you want to let them replace part of the text to suit their needs, but without letting them edit the entire content block.

By adding a custom property that’s called pageSubject and specifying an initial value, you can instead use the following expression in the content block:

Learn About `{!pageSubject}`

This action lets team members rename any page that’s derived from the template by updating the Page Subject property in the page’s Properties pane, which automatically updates the value that’s represented by the {!pageSubject} expression.

![Page with replaceable heading](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_temp_prop.png)

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png)

Example

Alternatively, let's say you want to create a YouTube widget using the following embed code:

```html
<iframe width="560" height="315" src="//www.youtube.com/embed/hcUaN6XBTz4" frameborder="0" allowfullscreen></iframe>
```

However, you want users to specify which video to display when they add an instance of the widget to the page. In this case, you could create a section called YouTube, add a custom property labeled Video URL with videoURL as the expression name, and instead use the following code:

```html
<iframe width="560" height="315" src="{!videoURL}" frameborder="0" allowfullscreen></iframe>
```

Now, when users add the YouTube widget to the page, they can point to any video by updating the Video URL property in the YouTube section of the Properties pane, which automatically updates the value represented by the {!videoURL} expression.

![YouTube Video URL property](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_widget_property1.png)

#### See Also

- [Widgets Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_overview.htm&release=264.0.0&type=5 "Widgets let you save time by building custom page elements that you and your team can reuse throughout the site.")
- [Add Custom Properties to Page Templates or Widgets](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_properties_add.htm&release=264.0.0&type=5 "When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property.")
- [Custom Property Types](https://help.salesforce.com/s/articleView?id=platform.siteforce_prop_type.htm&release=264.0.0&type=5 "Property types are available when designers or site administrators create site branding properties, site custom properties, widget branding properties, and widget custom properties.")
- [About Displaying Dynamic Data Using Expressions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5 "Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page.")