Reference - Configuration keys

In addition to the settings available in the Xperience administration, the system’s functionality can be adjusted via low-level application settings. These application settings are managed using ASP.NET Core configuration providers. By default, Xperience projects contain an appsettings.json file for this purpose.

The appsettings.json file also contains the database connection string.

The following configuration categories are available:

General settings





Specifies characters that are forbidden in page URLs (see content tree-based routing). Forbidden characters are automatically replaced by the character specified in the Forbidden characters replacement setting in Settings → URLs and SEO.

By default, the following characters are forbidden:

\/:*?"<>|&%.’#[]+=„“ and the space character.

If you add this key, its value overrides the default forbidden character set. You can either allow some of the forbidden characters or add new ones.

We recommend keeping the default characters forbidden, since they may prevent URLs from working correctly.

"CMSForbiddenURLValues": "$\\/:?&quot;&lt;&gt;|&amp;%.&apos;#[] ="


Sets the salt value the system uses in hash functions, for example when creating macro signatures. If a specific hash salt value is not assigned during the installation of a new Xperience project, the key is set to a random GUID.

If you plan to deploy your project to the SaaS environment, use the hash salt value provided in Xperience Portal.

Note: Changing the hash salt on an instance with defined content may prevent macros from resolving correctly. If you encounter such problems, you must re-sign macros (the system then creates the hashes using the new salt).

"CMSHashStringSalt": "eb2d6fac-8b9e-427c-b98b-3c562dffbb35",

Random GUID


Specifies the file extensions that the system recognizes as image files. For example, files of these types are offered in the Insert image dialog of the rich text editor.

Note: If this key is not configured, the system attempts to automatically detect and support any media image file type. Adding the key disables the automatic detection, and only the explicitly listed file types are supported as images.

"CMSImageExtensions": "bmp;gif;ico;png;wmf;jpg;jpeg;tiff;tif;webp"



The size of the system’s event log is limited by the Settings → System → Event log size setting. This key determines the extra percentage of events that is retained in the log over the specified limit. This percentage of the oldest events is deleted by batch when the percentage is exceeded.

For example, if the event log size is 1000 and the CMSLogKeepPercent is 20, the event log can contain up to 1200 events, and the 200 oldest events are deleted when the log size reaches 1201.

If the key is set to 0, the event log retains the exact number of records specified by the limit.

"CMSLogKeepPercent": 20,


> Back to list of configuration key categories

Continuous Integration and Deployment settings

You can use the following keys to configure the Continuous Integration and Continuous Deployment features:





Sets the character encoding used when the CI/CD features generate non-binary files in the repository folder. The key supports values matching the encoding names listed in the Encoding Class article.

Changing the value of the CMSCIEncoding key does not update the encoding type of existing files in the repository folder. To fully update the encoding of the repository content, you need to:

  • Run complete serialization for all objects.
  • Manually update the encoding type of your repository configuration file.

"CMSCIEncoding": "utf-16",



Sets the location of the Continuous Integration file repository root folder. The key’s value must be an absolute or relative path of a folder on a local drive, or a network location for which the application has sufficient permissions.

The specified location is used when serializing object data to the file system and when restoring data back to the database. The key also allows you to set a shared Continuous Integration repository when developing multiple projects with the same database.

"CMSCIRepositoryPath": "C:\\ExternalSourceControl\\CIRepository",


> Back to list of configuration key categories

Contact management settings

By adding the following keys, you can configure the behavior of contact management.





Sets the interval (in seconds) in which contact data and activities are batch processed by the system. Consider raising the interval if your system processes a large number of activities.

The interval affects the following:

  • How often the application saves logged activities and contact detail updates from the memory into the database.
  • How often the system recalculates data that could be affected by activities and contact updates, such as automation process triggers, scores, personas, etc.

"CMSProcessContactActionsInterval": 30,



If enabled, all web farm servers recalculate contact scores, contact groups, personas, and marketing automation triggers.

If you wish to improve performance, you can set this key to false for one or more of your web farm servers, and the recalculation will be disabled for them.

Note: If you set the key value to false for all of your web farm servers, the recalculation will be disabled completely.

"CMSCreateContactActionsLogWorker": false,


> Back to list of configuration key categories

Email settings

The following keys configure emails.





Sets the scheme (protocol) used when resolving relative URLs within email content – https (the default value) or http. For example, applies to click tracking links, asset URLs, page links added via the page selector, subscription and unsubscription URLs, etc.

The scheme must be supported by the Xperience applications specified by the Email service URL of your email channels. Misconfiguration may break links in email content and prevent tracking from working, particularly in development or testing environments.

"CMSEmailUrlDefaultScheme": "http",


> Back to list of configuration key categories

Connection string

The database used by Xperience is specified by the CMSConnectionString connection string.

  "ConnectionStrings": {
    "CMSConnectionString": "Data Source=myserver;Initial Catalog=Xperience;Integrated Security=True;Persist Security Info=False;Connect Timeout=120;Encrypt=False;Current Language=English;" },