# Custom string properties

The string definition property template can be used to add a custom property of string type. When defining a string property, the following fields can be used:

Definition properties

| Field | Description |
| --- | --- |
| type | Used for all custom property type definitions. Can be either string, integer, number, array or boolean.<br><br>This field is mandatory and should always be "string" for a string property type definition. |
| label | Used for defining the label that is displayed in the property panel. |
| ref | Name or ID used to reference a property. |
| defaultValue | Used for defining the default value of your custom property. |
| expression | Used for defining if values starting with = will be treated as expressions which are evaluated by the Qlik associative engine. Can be either "always", "optional" or "" (empty).<br><br><ul> <li><span>"always"</span>: the property will always be evaluated as an expression meaning that the property will be the value of for example <span>"Avg(Sales)"</span>.</li> <li><span>"optional"</span>: the property will only be evaluated as an expression if a <span>=</span> sign is leading the expression. For example <span>"Avg(Sales)"</span> will be presented as the string <span>"Avg(Sales)"</span> while <span>"=Avg(Sales)"</span> will be evaluated as an expression and presented as either <span>5</span> or <span>"5"</span> depending on if it is used in a Number/Integer component or in a String component.</li> <li><span>""</span>: If the setting is left empty or not defined at all, the property will not be evaluated as an expression meaning that the property will be the string <span>"Avg(Sales)"</span>.</li> </ul> |
| show | Function returning true if property should be displayed. |
| maxlength | The maximum number of characters the string can consist of. |

## Examples

Defining a custom property of string type can look like below.

Example: Add custom string property to Appearance accordion

Information noteCustomization of properties always start with items:.

```
	return {
		type: "items",
		component: "accordion",
		items: {
			settings: {
				uses: "settings",
				items: {
					MyStringProp: {
						ref: "title",
						label: "My string property",
						type: "string",
						defaultValue: "MyNewExtension"
					}
				}
			}
```

This is what it looks like in the property panel

![Custom string property entry object in extension](https://help.qlik.com/en-US/sense-developer/May2026/Subsystems/Extensions/Content/Resources/Images/ex_ExtensionPropertiesCustomStringProp.png)

You can also define a new accordion item as a string property

Example: Add custom string property as a new accordion item

```
	return {
		type: "items",
		component: "accordion",
		items: {
			MyAccordion: {
				type: "string",
				label: "Description",
				ref: "description",
				defaultValue: "This is my description"
			}
```

![Custom string property entry object in extension as accordion item](https://help.qlik.com/en-US/sense-developer/May2026/Subsystems/Extensions/Content/Resources/Images/ex_ExtensionPropertiesCustomStringProp2.png)