---
title: Release notes - Xperience 13
related:
  - https://docs.kentico.com/13/installation/upgrading-to-xperience-13.md
  - https://docs.kentico.com/13/installation/system-requirements.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

> **Info:** Kentico Xperience 13 Refreshes are product updates that include new features, released in the form of larger than standard [hotfixes](https://devnet.kentico.com/download/hotfixes):
>
> - [Refresh 14](#releasenotesxperience13-ref14) – hotfix **13.0.197** or newer
> - [Refresh 13](#releasenotesxperience13-ref13) – hotfix **13.0.167** or newer
> - [Refresh 12](#releasenotesxperience13-ref12) – hotfix **13.0.142** or newer
> - [Refresh 11](#releasenotesxperience13-ref11) – hotfix **13.0.131** or newer
> - [Refresh 10](#releasenotesxperience13-ref10) – hotfix **13.0.115** or newer
> - [Refresh 9](#releasenotesxperience13-ref9) – hotfix **13.0.104** or newer
> - [Refresh 8](#releasenotesxperience13-ref8) – hotfix **13.0.94** or newer
> - [Refresh 7](#releasenotesxperience13-ref7) – hotfix **13.0.83** or newer
> - [Refresh 6](#releasenotesxperience13-ref6) – hotfix **13.0.73** or newer
> - [Refresh 5](#releasenotesxperience13-ref5) – hotfix **13.0.64** or newer
> - [Refresh 4](#releasenotesxperience13-ref4) – hotfix **13.0.52** or newer
> - [Refresh 3](#releasenotesxperience13-ref3) – hotfix **13.0.43** or newer
> - [Refresh 2](#releasenotesxperience13-ref2) – hotfix **13.0.31** or newer
> - [Refresh 1](#releasenotesxperience13-ref1) – hotfix **13.0.16** or newer
>
> See the [Hotfix instructions](https://docs.kentico.com/13/installation/hotfix-instructions-xperience-13.md) to learn how to apply refreshes via the hotfix.

> **Warning:** **Kentico Xperience 13 support ends on December 31, 2026**
>
> After this date, Kentico no longer provides hotfixes, security patches, or technical support for Xperience 13. See the [Product support lifecycle](https://www.kentico.com/customers/supportcenter/support-lifecycle) for details. We recommend planning your [upgrade to Xperience by Kentico](https://docs.kentico.com/guides/upgrade-to-xbyk/upgrade-from-kx13.md).
>
> **.NET 8 and .NET 9 end of support**
>
> .NET 8 and .NET 9 reach Microsoft's planned [end of support](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core) on November 10, 2026. To continue receiving security updates for your ASP.NET Core projects, migrate to [.NET 10](https://dotnet.microsoft.com/en-us/download/dotnet/10.0), which is supported since [Refresh 14](#releasenotesxperience13-ref14).

## &#x20;Kentico Xperience 13 Refresh 14 (released December 4, 2025)

## .NET 10 support

Xperience 13 now supports live site application development using .NET 10, the latest major .NET framework release. For more information on .NET 10, see Microsoft’s [official announcement](https://devblogs.microsoft.com/dotnet/announcing-dotnet-10/).

## Xperience by Kentico news tile added to admin UI dashboard

A news tile highlighting the latest Xperience by Kentico features and articles from the [Kentico Community Portal](https://community.kentico.com/) has been added to the Xperience 13 [admin UI dashboard](https://docs.kentico.com/13/using-the-xperience-interface.md#using-the-application-dashboard).

## Updates and changes

- The [installer](https://docs.kentico.com/13/installation.md) now installs .NET 8 SDK version `8.0.415` if no .NET 8 SDK is found on the target machine.

## Fixed issues

- Pages – The _Compare_ view mode failed to load when a user previously had the compare view open in Edit mode, switched to Preview mode, and then returned to Edit mode.
- Security – The version of the .NET SDK that is automatically [installed](https://docs.kentico.com/13/installation.md) if no SDK is present on the system has been updated from `8.0.403` to version `8.0.415` to resolve a critical security vulnerability present in older versions. This change applies only when installing new projects via the latest Xperience installer released with Refresh 14.
- Security – The _js-yaml_ transitive dependency of Page builder and Form builder client scripts was updated to version _4.1.1_, which addresses security vulnerabilities from the previous versions.
- Security – The _glob_ transitive dependency of Page builder and Form builder client scripts was updated to version _11.0.3_, which addresses security vulnerabilities from previous versions.
- Security – The third-party dependencies of the Dancing Goat MVC sample project were updated to address security vulnerabilities present in previous versions. This update applies only to new projects created via the latest Xperience installer released with Refresh 14.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.196 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 13 (released November 21, 2024)

## .NET 9 support

Xperience 13 now supports live site application development using .NET 9, the latest major .NET framework release. For more information on .NET 9, see Microsoft’s [official announcement](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/).

### Known issues

The `MapStaticAssets` feature is currently not supported. Adding the middleware to your application pipeline prevents [Page builder](https://docs.kentico.com/13/developing-websites/page-builder-development.md) and [Form builder](https://docs.kentico.com/13/developing-websites/form-builder-development.md) from working. As a workaround, use the existing `UseStaticFiles` middleware.

- **Note**: This issue was fixed in [hotfix 13.0.170](https://devnet.kentico.com/download/hotfixes).

## Updates and changes

- .NET 6 support is being discontinued as a consequence of the framework reaching Microsoft's planned end of support on [November 12, 2024](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core). All ASP.NET Core projects that update to this and future releases must target [.NET 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0).
- The minimum framework version required for starting new [ASP.NET Core](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core.md) projects is now .NET 8.
- The [installer](https://docs.kentico.com/13/installation.md) now installs .NET 8 SDK v8.0.403 if no .NET 8 SDK is found on the target machine.
- The _Blank site_ and _Dancing Goat_ web project templates newly created by the installer now target .NET 8.
- Added SQL Server 2022 to the list of supported SQL Server versions.
- The following NuGet package references were updated:
  - BouncyCastle.Cryptography       to version 2.4.0
  - MailKit                         to version 4.7.1.1
  - Microsoft.Rest.ClientRuntime    to version 2.3.24
  - MimeKit                         to version 4.7.1
  - System.Formats.Asn              to version 8.0.1
  - System.ServiceModel.Duplex      to version 4.10.3
  - System.ServiceModel.Http        to version 4.10.3
  - System.ServiceModel.NetTcp      to version 4.10.3
  - System.ServiceModel.Primitives  to version 4.10.3
  - System.ServiceModel.Security    to version 4.10.3
  - System.ServiceModel.Syndication to version 4.7.0
  - System.ValueTuple               to version 4.0.3.0

## Updates and changes – API

The following API is now obsolete as it uses the `BinaryFormatter` framework API that is [being phased out](https://learn.microsoft.com/en-us/dotnet/core/compatibility/serialization/5.0/binaryformatter-serialization-obsolete):

- CMS.DataEngine.AsyncProcessData.SaveToPersistentMedium
- CMS.DataEngine.AsyncProcessData.UpdateFromPersistentMedium
- CMS.Helpers.PersistentStorageHelper.GetValue
- CMS.Helpers.PersistentStorageHelper.SetValue
- CMS.Helpers.PersistentStorageHelper.RemoveValue
- CMS.Tests.CMSAssert.Serialization

The API `RenderStandaloneWidgetAsync` and `RenderNestedWidgetAsync` for [rendering widgets](https://docs.kentico.com/13/developing-websites/page-builder-development/rendering-widgets-in-code.md#rendering-widgets) on ASP.NET Core sites is obsolete. Use the `RenderStandaloneWidget` and `RenderNestedWidget` API instead.

## Fixed issues

- Page builder – A runtime error occurred when using [Razor components](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-8.0) inside [Page Builder](https://docs.kentico.com/13/developing-websites/page-builder-development.md) widgets, sections, and areas. Only projects targeting ASP.NET Core 8 and newer were affected. This issue also impacted the [direct rendering](https://docs.kentico.com/13/developing-websites/page-builder-development/rendering-widgets-in-code.md#rendering-widgets) of widgets. The `RenderStandaloneWidgetAsync` and `RenderNestedWidgetAsync` methods are now obsolete and replaced with `RenderStandaloneWidget` and `RenderNestedWidget` (both also asynchronous).

## &#x20;Kentico Xperience 13 Update (released August 1, 2024)

## New features

### Form builder

- Form components – New [form components](https://docs.kentico.com/13/developing-websites/form-builder-development/reference-system-form-components.md) that allow you to add a single value or multi-value calendar to the [Form builder](https://docs.kentico.com/13/managing-website-content/forms/composing-forms.md). The components are provided via the [Kentico.Xperience.CalendarComponent](https://www.nuget.org/packages/Kentico.Xperience.CalendarComponent) NuGet package. For more information, see the [Kentico Xperience 13 Calendar Form Component](https://github.com/Kentico/xperience-calendar-component) GitHub repository.

## &#x20;Kentico Xperience 13 Refresh 12 (released March 7, 2024)

## New features

### Integrations

- Azure OpenAI – An external module that allows you to [automatically select](https://docs.kentico.com/13/managing-website-content/working-with-pages/categorizing-pages/assigning-pages-to-categories.md#automatic-selection-of-categories) the best fitting categories for a page based on its content using [Azure OpenAI](https://azure.microsoft.com/en-us/products/ai-services/openai-service). For more information, see the [Xperience Azure OpenAI integration](https://github.com/Kentico/xperience-module-openai-azure) GitHub repository.

## Updates and changes

- The Vue.js framework used in the Page and Form builders was updated to [version 3](https://v2.vuejs.org/lts/).

## Fixed issues

- Security – Fixed vulnerabilities in the Page and Form builder dependencies.
- Web farms – Execution of [custom web farm tasks](https://docs.kentico.com/13/configuring-xperience/scheduling-tasks/scheduling-custom-tasks.md) failed if the task data contained the '^' character.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.141 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 11 (released December 7, 2023)

## New features

### General

- .NET 8 support – Added support for project development on [.NET 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0).

### Content management

- Page builder – New features added to the [page builder widget selection dialog](https://docs.kentico.com/13/managing-website-content/adding-page-content-using-widgets.md), including widget search (filtering), selection of recently used widgets, and other UI improvements.
- Page and Form builder – jQuery can now be disabled for the form and page builder by setting the _CMSBuilderScriptsIncludeJQuery_ key in the configuration file of your live site project (_appsettings.json_ or _web.config_). All default features remain functional without jQuery.

## Fixed issues

- Application dashboard – The welcome tile on the [application dashboard](https://docs.kentico.com/13/using-the-xperience-interface.md) was incorrectly rendered behind the application tiles in the newest versions of the Chrome and Edge browsers.
- Pages – An error occurred when the value _00:00:00_ was saved into a _TimeSpan_ field of a page under workflow.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.130 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 10 (released June 22, 2023)

## New features

### Content management

- [Media libraries](https://docs.kentico.com/13/managing-website-content/working-with-files/media-library-files.md) and [page attachments](https://docs.kentico.com/13/managing-website-content/working-with-files/page-attachments.md) now support the [SVG](https://en.wikipedia.org/wiki/SVG) and [WebP](https://developers.google.com/speed/webp) formats for image files. Such images can be uploaded in the administration interface, selected via various image selectors, and [displayed on the live site](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-content-from-media-libraries.md). However, WebP and SVG files are not compatible with the built-in [image editor](https://docs.kentico.com/13/managing-website-content/working-with-files/editing-images.md), and do not support automatic generating of image thumbnails or the resizing API (such as the _WithSizeConstraint_ extension method when displaying images).

  - To use the new file types after updating an existing project, you need to allow and configure the _.svg_ and/or _.webp_ file extensions:
    - _Settings → Content → Media → Media file allowed extensions_
    - _Settings → System → Files → Upload extensions_
    - The allowed extension settings of individual image selector fields (for example, the _AllowedExtensions_ property of the _Media files_ or _Attachment_ [selectors for page builder components](https://docs.kentico.com/13/developing-websites/page-builder-development/selectors-for-page-builder-components.md)).
    - The _CMSImageExtensions_ configuration key (_web.config_ and/or _appsettings.json_). See [Configuring supported file types in Media libraries](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-media-libraries/configuring-supported-file-types-in-media-libraries.md).
    - For WebP files, add a [](https://learn.microsoft.com/en-us/iis/configuration/system.webserver/staticcontent/mimemap) MIME type mapping under the __ element in the _web.config_ file of your administration project (and live site project if using the MVC 5 development model).

      ```xml

      ...
      <staticContent>
        <remove fileExtension=".webp" />
        <mimeMap fileExtension=".webp" mimeType="image/webp" />

      ```
    - Note: SVG images may host scripts or CSS and can pose a security risk. Carefully consider your project's security before allowing the SVG file type.
  - If you are using the [responsive image](https://docs.kentico.com/13/developing-websites/managing-responsive-images.md) functionality for page attachments, you need to adjust your [ image filters](https://docs.kentico.com/13/developing-websites/managing-responsive-images/defining-image-filters.md) to handle the new image types. This may require installation of an external image processing package or API.

## Fixed issues

> **Info:** All bugs fixed within Xperience hotfixes 13.0.114 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 9 (released March 23, 2023)

## New features

### Content management

- Page builder – Content editors can now [copy entire sections](https://docs.kentico.com/13/managing-website-content/adding-page-content-using-widgets.md) and paste them on any page where page builder is available.

## Updates and changes

- Third-party dependencies in page builder client-side code that contained known security issues were updated.

## Fixed issues

- Page builder – Moving a page in the content tree caused inconsistent behavior with any custom link attributes added to the editor of the _Rich text_ widget (e.g., a custom _title_ attribute).
- Forms – After applying hotfix 13.0.12, it was possible to submit forms without selecting a value in a _Drop-down list_ form component, even if the field was set as required.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.103 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 8 (released December 13, 2022)

## New features

### Content management

- Workflows and publishing – Content editors can now set a redirect after a page is unpublished, i.e., the _Publish to_ [date](https://docs.kentico.com/13/managing-website-content/working-with-pages/scheduling-pages-for-publishing.md) has passed or the page is moved to the _Archived_ [workflow step](https://docs.kentico.com/13/managing-website-content/working-with-pages/using-workflows.md).
- Page metadata – Content editors can now use macros in all properties available on the [Metadata tab of pages](https://docs.kentico.com/13/managing-website-content/working-with-pages/editing-metadata-of-pages.md). The macros are automatically resolved when using the [Xperience metadata extension methods](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-page-content.md#working-with-page-metadata) (e.g., _Kentico().PageTitle_) in the code of the live site application.

### On-line marketing

- Marketing automation – Marketers can now schedule the time interval when [automation processes](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-marketing-automation-processes.md) are enabled. The system automatically enables or disables processes based on a preconfigured _From_ and/or _To_ date.
- [Salesforce integration](https://docs.kentico.com/13/integrating-3rd-party-systems/salesforce-integration.md)
  - The system was updated to use version 54.0 of the Salesforce SOAP API (the previous version was 23.0, which will be retired in 2023).
  - The integration now supports synchronization of contacts and Salesforce leads in both directions. You can set up a Salesforce flow that automatically notifies your Xperience application whenever a previously replicated lead is updated, which synchronizes the lead data back to the corresponding contact in Xperience.
  - New extensibility options that allow you to set up custom data sources for Salesforce lead fields using macros or custom code.
  - For detailed information and instructions, see [Configuring Salesforce integration](https://docs.kentico.com/13/integrating-3rd-party-systems/salesforce-integration/configuring-salesforce-integration.md).

### Forms

- The _reCAPTCHA_ [form component](https://docs.kentico.com/13/developing-websites/form-builder-development/reference-system-form-components.md) was updated to support reCAPTCHA v3. This version of reCAPTCHA provides frictionless validation without interrupting users. A score is calculated for each request, indicating whether an interaction is likely to be a bot or a valid human user.

### Integrations

- Twilio SMS – An external module that allows you to send SMS messages to contacts via the [Twilio SMS](https://www.twilio.com/docs/sms) service. Additionally, the module also contains a [marketing automation](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation.md) action that allows you to send SMS messages from your automation processes. For more information, see the [Twilio SMS Kentico Xperience 13 Integration](https://github.com/Kentico/xperience-twilio-sms) repository.

## Fixed issues

> **Info:** All bugs fixed within Xperience hotfixes 13.0.93 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 7 (released September 29, 2022)

## New features

### General

- Minimal APIs support – The system now supports application configuration using [minimal APIs](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis) introduced in .NET 6.
  - The legacy configuration model with separate program entry (_Program.cs_) and startup files (_Startup.cs_ by default) remains fully supported. To migrate your codebase to the new model, follow [Migrate to the new minimal hosting model in ASP.NET Core 6.0](https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60-samples) for framework code, and [Hosting ASP.NET Core applications using minimal APIs](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core/starting-with-asp-net-core-development/hosting-asp-net-core-applications-using-minimal-apis.md) for Xperience-related code.

### Page and Form builder development

- The properties within builder configuration dialogs ([widgets](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-widgets/defining-widget-properties.md), [sections](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-page-builder-sections/defining-section-properties.md), etc.) now support [multiple visibility conditions](https://docs.kentico.com/13/developing-websites/form-builder-development/adding-visibility-conditions-for-builder-component-properties.md).
- Added the option to configure the state of editing components assigned to the properties of builder configuration dialogs. The configuration can run on the initial load of the properties dialog where the component is rendered or when the value of another field within the dialog changes. A typical use case for this type of configuration are selector components (dropdown, radio buttons), whose selection changes based on the value of a different property in the dialog. See [Configuring editing component state in builder configuration dialogs](https://docs.kentico.com/13/developing-websites/form-builder-development/configuring-editing-component-state-in-builder-configuration-dialogs.md).

### Media libraries

- Media file search improvements – The search for files in [media libraries](https://docs.kentico.com/13/managing-website-content/working-with-files/media-library-files.md) now covers all folders and subfolders within the given library, and looks for matches within all relevant file properties: file name, title, description and extension. The search improvements are available in all locations where users view or select media library files, including the _Media libraries_ application and all types of media file selection dialogs.
  - The new search no longer allows mass actions to be performed for media file search results (due to the global scope of the search across all folders in the media library).

### Integrations

- Looker Studio – An external module that allows you to display data from Xperience within  [Looker Studio](https://cloud.google.com/looker-studio) (Google Data Studio) reports. For example, these reports can show information about [contacts](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/contact-management.md) and their [activities](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/contact-management/tracking-contact-activities.md), [email marketing](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/email-marketing.md) statistics, and more. The module provides a way to select exactly which types of data will be available, as well as tools to generate the data and keep it up-to-date. To comply with personal data protection policies, the module also includes functionality that anonymizes data before it is transmitted to Looker Studio. The resulting data is accessed in Looker Studio using a dedicated connector for Kentico Xperience. For more information, see the  [Xperience Looker Studio Integration](https://github.com/Kentico/xperience-google-lookerstudio)  GitHub repository.

## Updates and changes

- The minimum framework version required for starting new [ASP.NET Core projects](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core.md) is now .NET 6.
- The [installation process](https://docs.kentico.com/13/installation/installing-xperience.md) now installs [.NET 6 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) (v. 6.0.400) if not found on the target machine.
- The Blank site and Dancing Goat web project templates newly created by the installer now target .NET 6.
- The following NuGet package references were updated:
  - [Azure.Core](https://www.nuget.org/packages/Azure.Core) from version 1.2.2 to version 1.25.0
  - [System.Net.Http](https://www.nuget.org/packages/System.Net.Http) from version 4.3.1 to version 4.3.4
  - [System.Text.Json](https://www.nuget.org/packages/System.Text.Json) from version 4.7.1 to version 4.7.2
- The following projects now target .NET 6:
  - _AspNetCore.Platform_
  - _Kentico.Membership_
  - _Kentico.Web.Mvc_
  - _Kentico.Web.Mvc.Proxies_
  - _Kentico.Content.Web.Mvc_
  - _Kentico.Content.Web.Rcl_
  - _Kentico.OnlineMarketing.Web.Mvc_

## Fixed issues

- NuGet packages – The refresh update consolidates the _System.Text.Encoding.CodePage_ NuGet package to version 4.5.1. Certain projects incorrectly referenced a lower version of the package, which caused issues when restoring NuGet package dependencies after a hotfix. This issue ocurred only after applying hotfix 13.0.80 or newer.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.82 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 6 (released June 10, 2022)

## New features

### General

- User experience improvements – the Refresh release introduces small tweaks and changes to certain applications with the goal of simplifying their workflow and improving the user experience. For example, you can now create new page types without having to define at least one field using the [page type creation wizard](https://docs.kentico.com/13/developing-websites/defining-website-content-structure/managing-page-types/creating-page-types.md).

### Integrations

- Google Search Console – an external module that allows Xperience users to view the indexed status of Xperience website pages from  [Google Search Console](https://search.google.com/search-console/about) . Users can easily track which pages are included in the site index and sitemaps, request page indexing, identify warnings and errors for specific pages, view reports for sections of the content tree, and create exports of issues to be fixed. For more information, see the  [Xperience Google Search Console integration](https://github.com/Kentico/xperience-google-searchconsole)  GitHub repository.
- Microsoft Dynamics 365 – an external module that enables the synchronization of Xperience contacts and activities to a [Dynamics 365](https://dynamics.microsoft.com/en-us/what-is-dynamics365/) tenant. Moreover, it ensures that updates of synchronized contacts via Dynamics 365 are reflected back into your Xperience website. The module also contains custom [marketing automation](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation.md) actions to log Dynamics 365 tasks and appointments. For more information, see the [Microsoft Dynamics 365 Sales integration](https://github.com/Kentico/xperience-dynamics365-sales) GitHub repository.
- SendGrid – Xperience offers an external module that allows you to send all Xperience emails from the email queue via [SendGrid](https://sendgrid.com/) using their [Email API](https://sendgrid.com/go/email-api-signup). The SendGrid API offers faster email processing with a customizable sending process. For more information, see the [Xperience SendGrid Integration](https://github.com/Kentico/xperience-twilio-sendgrid) GitHub repository.

## Fixed issues

- Page builder – Restrictions for [page builder zones](https://docs.kentico.com/13/developing-websites/page-builder-development/creating-pages-with-editable-areas.md) incorrectly evaluated widget identifiers in a case-sensitive way when copy-pasting widgets. This could prevent widgets from being copied into zones, even in cases where the widget was allowed in the target zone.
- Page builder – The [Page builder](https://docs.kentico.com/13/managing-website-content/adding-page-content-using-widgets.md) didn't work in certain cases for newly created pages or after changing a page's URL. This issue occurred after applying hotfix 13.0.72, and the fix reverses the hotfix's changes related to performance improvements of requests to non-page routes.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.72 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 5 (released March 29, 2022)

## New features

### Content management

- Media libraries – The system now allows content editors to view the usage of media library files within content stored in the Xperience database. See [Viewing media files usage](https://docs.kentico.com/13/managing-website-content/working-with-files/media-library-files/viewing-media-files-usage.md).

### Integrations

- Algolia – Xperience offers an external module that allows you to create [Algolia search indexes](https://www.algolia.com/products/search-and-discovery/hosted-search-api/) and index pages in the Xperience content tree using a code-first approach. The integration also enables you to provide a search interface on the live site using .NET API, JavaScript API, or the [InstantSearch.js](https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/) JavaScript library. For more information, see the [Algolia Search Xperience Integration](https://github.com/Kentico/xperience-algolia) GitHub repository.

## Updates and changes

- The [Froala WYSIWYG editor](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-the-rich-text-editor-for-page-builder.md) (for example used in the _Rich text_ widget) was updated to [version 4.0.8](https://froala.com/wysiwyg-editor/changelog/) in [hotfix 13.0.58](https://devnet.kentico.com/download/hotfixes).

## Fixed issues

- Forms – Form validation provided by the _reCAPTCHA_ [form component](https://docs.kentico.com/13/developing-websites/form-builder-development/reference-system-form-components.md) could be bypassed in certain scenarios.
- Integration bus – Subscriptions to form data records created for [outgoing synchronization](https://docs.kentico.com/13/integrating-3rd-party-systems/using-the-integration-bus/creating-integration-connectors/implementing-outgoing-synchronization.md) using the [integration bus](https://docs.kentico.com/13/integrating-3rd-party-systems/using-the-integration-bus/integration-bus-overview.md) didn't work if the site name parameter was specified for the _ObjectIntegrationSubscription_ object.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.63 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 4 (released November 23, 2021)

## New features

### Content management

- Images – The system now automatically sets the alternative text for images in the rich text content of websites. By helping content editors add suitable image alternative text, you boost the SEO capability and accessibility of your websites. If editors do not specify the alternative text directly when inserting an image, the value is loaded from the _Description_ property in the [metadata](https://docs.kentico.com/13/configuring-xperience/managing-files/editing-file-metadata.md) of the inserted image. For cases where the image _Description_ is also empty, the system can be configured to generate alternative text using automatic image recognition (see below).
- AI Image recognition – New integration of the [Microsoft Azure Computer Vision API](https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/overview) (Cognitive Services) that allows automatic generating of alternative text for images inserted into the rich text content of websites. See [Settings - Cognitive Services](https://docs.kentico.com/13/configuring-xperience/managing-sites/configuring-settings-for-sites/settings-content/settings-cognitive-services.md).

### Integrations

- Disqus – Xperience offers an external module that integrates with the [Disqus](https://disqus.com/) comment platform. The module contains a _Disqus comments_ widget that provides the option to add a comment section to any page on your website. Disqus also offers advanced moderation tools, analytics and monetization options. The module is distributed through NuGet packages and does not require Xperience 13 Refresh 4. For more information and detailed instructions, see the [Xperience Disqus Widget](https://github.com/Kentico/xperience-disqus) GitHub repository.
- Jira – An external module that integrates with the [Jira](https://www.atlassian.com/software/jira) issue tracking software. The module contains three custom actions for Xperience [workflows](https://docs.kentico.com/13/managing-website-content/working-with-pages/using-workflows.md) and [marketing automation](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation.md) processes that enable the creation of new Jira issues, a transition of existing issues between different Jira workflow steps, and the creation of [Jira webhooks](https://developer.atlassian.com/server/jira/platform/webhooks/). The integration is distributed as an open-source custom module and does not require Xperience 13 Refresh 4. For more information, see the [Xperience Jira integration](https://github.com/Kentico/xperience-jira) GitHub repository.
- Intercom – An external module that integrates with the [Intercom](https://www.intercom.com/) chat service. The module provides synchronization of Xperience [contact data](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/contact-management/working-with-contacts.md) to your Intercom organization, transfer of data submitted through the Intercom chat to Xperience contact attributes, logging of [activities](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/contact-management/tracking-contact-activities.md) in Xperience when users perform specified actions in the Intercom chat, and an HtmlHelper API that helps developers generate scripts that add the Intercom chat interface onto the pages of your website.  The module is distributed through NuGet packages and does not require Xperience 13 Refresh 4.  For more information and detailed instructions, see the [Kentico Xperience Intercom modules](https://github.com/Kentico/xperience-module-intercom) GitHub repository.

## Fixed issues

- Workflow – The default _administrator_ user account didn't receive notification emails about page transitions between workflow steps. The problem is fixed for new installations of Xperience 13 Refresh 4. For existing instances that utilize the _administrator_ user account, you can fix the issue manually:
  1. Open the _Users_ application in the Xperience administration.
  2. Edit the _administrator_ user.
  3. On the _Sites_ tab, assign the user to the related websites.
  4. On the _Languages_ tab, select the _User can edit all languages_ option.
- Page builder – On pages containing two instances of the _Rich text_ widget with long content, pressing Enter while editing the content of the second widget scrolled the page to the position of the first Rich text widget.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.51 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 3 (released September 14, 2021)

## New features

### Page builder

- The _Page_ and _Path_ [selectors](https://docs.kentico.com/13/developing-websites/page-builder-development/selectors-for-page-builder-components.md)   for page builder component properties now support selection of multiple pages. The same option is also available for page selection dialogs implemented using the [content selector API](https://docs.kentico.com/13/developing-websites/page-builder-development/selectors-for-page-builder-components/using-content-selector-javascript-api.md).
- [Widget zone restrictions](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-page-builder-sections.md) now allow developers to limit what widgets can be added to individual widget zones within a section.
- An identifier can be added to [widget zones](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-page-builder-sections.md) to ensure that widgets are correctly transferred when changing section types.

### Form builder

- An identifier can be added to [form zones](https://docs.kentico.com/13/developing-websites/form-builder-development/developing-custom-form-layouts.md) to ensure that form components (fields) are correctly transferred when changing form section types.

## Fixed issues

- Page Builder – If the _JsonSerializerSettings.NullValueHandling_ (_Newtonsoft.Json_) serialization option was globally set to _Ignore_ in a project's application start code, an error occurred when loading the list of widgets in the Page Builder interface, for example when adding a widget to a zone.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.42 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 2 (released June 22, 2021)

## New features

### Content management

- Page URLs and routing – New option to set culture aliases that replace the culture code within URL language prefixes. Culture aliases apply to multilingual sites that use content tree-based routing mode and the language prefix URL format. See [Configuring URLs for multilingual websites](https://docs.kentico.com/13/multilingual-websites/setting-up-multilingual-websites/configuring-urls-for-multilingual-websites.md).
- Text analytics
  - Integration of the [Microsoft Azure Text Analytics API](https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview) (Cognitive Services) that allows content editors to analyze the sentiment of text when editing page fields on the _Content_ tab in the _Pages_ application. See [Settings - Cognitive Services](https://docs.kentico.com/13/configuring-xperience/managing-sites/configuring-settings-for-sites/settings-content/settings-cognitive-services.md) and [Using text analytics](https://docs.kentico.com/13/managing-website-content/using-text-analytics.md).
  - The API also allows developers to implement custom sentiment analysis scenarios. See [Using the sentiment analysis API](https://docs.kentico.com/13/custom-development/using-the-sentiment-analysis-api.md).

### Page builder

- The page builder interface now allows users to [copy widgets](https://docs.kentico.com/13/managing-website-content/adding-page-content-using-widgets.md) into a clipboard and later paste them on the same or other pages using the add widget dialog.

### Form builder

- Developers can now create [form builder sections](https://docs.kentico.com/13/developing-websites/form-builder-development/developing-custom-form-layouts.md) with properties. Properties allow editors to adjust the content or behavior of sections within forms through a configuration dialog. For example, a property can be used to set the heading text of a section containing a group of fields. See [Defining form section properties](https://docs.kentico.com/13/developing-websites/form-builder-development/developing-custom-form-layouts/defining-form-section-properties.md).
- The [Rich text editor](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-the-rich-text-editor-for-page-builder.md) component can now be used within the form builder, for the properties of form components or form sections.

### On-line marketing

- Added a tip box with a Digital Marketing introduction video for the _Contact management_ and _Contact groups_ applications.

## Fixed issues

- Source code – Compilation of the source code solution resulted in an error due to duplicated files in the _Kentico.Content.Web.Mvc_ project. The issue only occurred after applying hotfix 13.0.29 or 13.0.30. If you have applied either of these hotfixes, you need to manually move the following files from the _CMSSolution/Mvc/Kentico.Content.Web.Mvc/Authentication_ folder to _CMSSolution/Mvc/Kentico.Content.Web.Mvc/Preview_ and overwrite the duplicated files with the same name:

  - KenticoVirtualContextAuthenticationController.cs
  - VirtualContextAuthentication.cs

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.30 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 Refresh 1 (released March 16, 2021)

## System requirement changes

- ASP.NET Core projects now support development using  [.NET 5.0](https://dotnet.microsoft.com/download/dotnet/5.0) and [.NET 6.0](https://dotnet.microsoft.com/download/dotnet/6.0). This also extends back to older patch versions, starting from _hotfix 13.0.3_.

## New features

### Platform

- Search
  - The system now provides a single search index type for the content of pages, which combines the original _Pages crawler_ and _Pages_ indexes. The data source for indexing (page HTML output and/or structured fields) can instead be configured separately for individual page types. This allows more flexibility and accurate search indexing based on the content type of each page.
    - See [Defining local page indexes](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-locally-stored-search-indexes/creating-local-search-indexes/defining-local-page-indexes.md) for more information.
    - Applying the Refresh automatically converts all existing page search indexes. However, you need to manually _Rebuild_ these indexes.
  - The search options for page fields now include the _Index update trigger_ flag, which controls whether the system updates the page in search indexes when the field's value is modified.

    - We recommend having the option enabled for all fields included in your indexes.
    - Applying the Refresh automatically sets the _Index update trigger_ flag, so the behavior of page indexes remains the same as before the refresh. However, if you have customized the search settings for page fields via the _SKU_ or _Page_ class, you need to set the flag manually for this class. We also recommend validating the search field settings of your page types and configuring the flag to meet your exact search requirements.
  - Sections of page HTML content can now be excluded from search indexing using elements marked with the _data-ktc-search-exclude_ [data attribute](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-locally-stored-search-indexes/creating-local-search-indexes/defining-local-page-indexes.md) (for page types that use the _HTML output_ or _Both_ data source for search). For example, excluding may be suitable for shared content within your site's layout, such as a header or footer.
  - Search customization API improvements:

    - New _ISearchCrawlerContentProcessor_ service, which allows developers to customize how the search crawler processes the HTML content of pages. See [Defining local page indexes](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-locally-stored-search-indexes/creating-local-search-indexes/defining-local-page-indexes.md#customizing-how-the-crawler-processes-html) for an example. Crawler customization through handlers for the _SearchCrawler.HtmlToPlainTextHandler_ event remains valid without any changes.
    - New global events that enable adding of custom fields for locally stored page search indexes. For example, custom index fields can be used to set up search result filtering or faceting based on external data not actually stored within the searched pages. See [Customizing the content of search indexes](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/customizing-the-content-of-search-indexes.md).
- Debug – Added support for [debugging](https://docs.kentico.com/13/developing-websites/troubleshooting-websites/debugging.md) the live site in the _Debug_ application. The available live site debugs cover the application [cache](https://docs.kentico.com/13/configuring-xperience/configuring-caching/debugging-the-application-cache.md), executed [SQL queries](https://docs.kentico.com/13/developing-websites/troubleshooting-websites/debugging.md) and resolved [macro expressions](https://docs.kentico.com/13/macro-expressions/troubleshooting-macros/debugging-macros.md).
- Caching
  - Introduced a new _cache-dependency_ tag helper tied directly to the _cache_ tag helper provided by the ASP.NET Core framework. The tag helper enables developers to specify cache dependencies on Xperience objects via [dummy cache keys](https://docs.kentico.com/13/configuring-xperience/configuring-caching/setting-cache-dependencies.md). See [Caching page output in ASP.NET Core applications](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core/caching-page-output-in-asp-net-core-applications.md).
  - The system now provides support for caching the output of page builder widgets on ASP.NET Core sites. The caching support is code-driven – widgets and editable areas provide properties that allow developers to design flexible caching strategies. See [Caching page output in ASP.NET Core applications](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core/caching-page-output-in-asp-net-core-applications.md).
- Hotfix – Added [event logging](https://docs.kentico.com/13/developing-websites/troubleshooting-websites/working-with-the-system-event-log.md) to identify the start and end of the procedure that runs on the first administration request after applying a hotfix. The events make it easier to identify potential problems that can occur during hotfix (or Refresh) installations.

### Page builder

- New  [selectors](https://docs.kentico.com/13/developing-websites/page-builder-development/selectors-for-page-builder-components.md)   for page builder component properties:
  - _Object selector_ – allows users to choose one or more Xperience objects of a specified type.
  - _General selector_ – allows users to choose items from any set of data defined by developers. The items offered by the selector can be of any type, including external data outside of Xperience. The general selector also grants developers more control over the behavior of the selector and the display names of items.
- The [content selector JavaScript API](https://docs.kentico.com/13/developing-websites/page-builder-development/selectors-for-page-builder-components/using-content-selector-javascript-api.md) can now be used in custom scripts when developing [modal dialogs for builder components](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-modal-dialogs-for-builder-component-properties.md).

### Content management

- Content recommendations – Xperience offers an external module that integrates with the [Recombee Artificial Intelligence Powered Recommender](https://www.recombee.com/) service. The module provides the data of your website's pages to Recombee, and then allows displaying of page recommendations (based on either the previous page views of each visitor or the content of the currently viewed page). The module is distributed through NuGet packages and does not require Xperience 13 Refresh 1. For more information, examples and detailed instructions, see the [Kentico Xperience Recombee modules](https://github.com/Kentico/xperience-module-recombee) GitHub repository.
- Bynder integration – An external module that integrates Xperience with the [Bynder](https://www.bynder.com/) digital asset management platform .  The module adds a [form control](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/developing-form-controls.md)  for Xperience administration forms. By assigning the form control to a page type field, users can select and display images stored in the Bynder service when editing pages in the Pages application. The module is distributed through NuGet packages and does not require Xperience 13 Refresh 1. For more information, examples and detailed instructions on using the module, see the [Kentico Xperience Bynder module](https://github.com/Kentico/xperience-module-bynder)  GitHub repository.

### On-line marketing

- Activities – New option to log _On-line form submission_ activities even for visitors who have not given [consent to be tracked as contacts](https://docs.kentico.com/13/configuring-xperience/data-protection/gdpr-compliance/working-with-consents.md). Data added into the system as a result of such activities only includes information explicitly entered into the [form](https://docs.kentico.com/13/managing-website-content/forms.md), and such logging does not enable any other type of tracking for the visitor. Personal data collected through such activities may only be used for legitimate interest purposes in accordance with the site's legal requirements. For more information, see [Enabling activity tracking](https://docs.kentico.com/13/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-activities/enabling-activity-tracking.md).

## Updates and changes

- Data engine – Developers can now extend or modify the system's Data provider (performs handling of low-level database operations) by implementing and registering a custom  _IDataProvider_  instance. For example, this can be used to integrate 3rd party tools for SQL profiling. Additionally, the system's default   _DataConnection_ class is now protected, which allows developers to create a derived class within _IDataProvider_ implementations.
- The Xperience API libraries now include the AngleSharp HTML parser, added via the AngleSharp NuGet package. The library allows improved parsing of page HTML content by Xperience search indexes, and can also be used by developers in custom scenarios.
- The [Froala WYSIWYG editor](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-the-rich-text-editor-for-page-builder.md) (for example used in the _Rich text_ widget) was updated to [version 3.2.6](https://froala.com/wysiwyg-editor/changelog/) in [hotfix 13.0.10](https://devnet.kentico.com/download/hotfixes).

## Fixed issues

- Form builder – On ASP.NET Core sites, the properties panel of the _Form builder_ in the _Forms_ application did not correctly validate the values of field properties. For example, this allowed users to enter invalid _Names_ for fields, which could result in errors or inconsistent behavior.

> **Info:** Additionally, all bugs fixed within Xperience hotfixes 13.0.15 or older are included in the Refresh. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Kentico Xperience 13 (released October 27, 2020)

## System requirement changes

- The minimum required version of Microsoft .NET Framework is now **4.8** (for the Xperience administration application and MVC 5 live site projects).
- Ended support of Internet Explorer (11) for the Xperience administration interface and live site components.
- Microsoft SQL Server for Xperience databases:

  - Version 2008 R2 is no longer supported (2012 or newer is required)
  - Added support for version 2019
- Server operating systems:
  - Ended support for: Windows 7, Windows 8 (8.1 remains supported), Windows 2008 R2
  - Added support for Windows Server 2019

## New features

### ASP.NET Core

- Added support for [developing live site applications](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core.md) using ASP.NET Core.

### Content management

- Page URLs and routing

  - New content tree-based URL routing mode. The system can now automatically generate URLs for pages based on their position in the content tree and the configuration of their page types. See [Content tree-based routing](https://docs.kentico.com/13/developing-websites/implementing-routing/content-tree-based-routing.md).
    - If you want to switch from custom routing based on URL patterns to content tree-based routing while preserving the former URLs, you can do so by manually executing a prepared code snippet. See [Enabling content tree-based routing](https://docs.kentico.com/13/developing-websites/implementing-routing/content-tree-based-routing/enabling-content-tree-based-routing.md).
  - Added support for configuring the format of URLs on multilingual sites using the content tree-based routing mode. For multilingual URLs, you can use separate domains or language prefixes. See [Configuring URLs for multilingual websites](https://docs.kentico.com/13/multilingual-websites/setting-up-multilingual-websites/configuring-urls-for-multilingual-websites.md).
  - New _Former URLs_ application, which enables automatic tracking of changes made to the URL paths of pages (e.g. by changing a URL slug). Old URLs are stored and the system handles redirection to the current URLs. See [Managing page URLs](https://docs.kentico.com/13/managing-website-content/working-with-pages/managing-page-urls.md).
- Added support for creating [linked pages](https://docs.kentico.com/13/managing-website-content/working-with-pages/copying-and-moving-pages-creating-linked-pages.md) on MVC and ASP.NET Core sites. Linked pages allow content to be reused in various scenarios, for example to simplify editing in the content tree when data stored in a page is displayed within multiple parts of the website.
- New navigation feature for [page types](https://docs.kentico.com/13/developing-websites/defining-website-content-structure/managing-page-types.md) and individual pages, which allows content editors to choose which pages are displayed in navigation menus. For more information, see [Building website navigation](https://docs.kentico.com/13/developing-websites/building-website-navigation.md).
- Improved support for editing and handling [metadata for pages](https://docs.kentico.com/13/managing-website-content/working-with-pages/editing-metadata-of-pages.md). The new metadata feature for [page types](https://docs.kentico.com/13/developing-websites/defining-website-content-structure/managing-page-types/creating-page-types.md) allows administrators to control which pages provide metadata editing, and developers can use new extension methods to render metadata tags when [displaying page content](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-page-content.md).
- Added settings and support for reflecting [page permissions](https://docs.kentico.com/13/managing-users/configuring-permissions/configuring-page-permissions/page-level-permissions-acls.md) on the live site. Page-level permissions are now automatically reflected on sites using the content tree-based routing mode. It is also possible to create authenticated sections that are enforced on the live site.
  - On sites using custom routing, developers can utilize methods from the Xperience API to check page permissions and authentication and authorization of users to access pages. See [Implementing page permission checks](https://docs.kentico.com/13/managing-users/configuring-permissions/configuring-page-permissions/implementing-page-permission-checks.md).
- The[ language version comparison mode](https://docs.kentico.com/13/multilingual-websites/editing-the-content-of-multilingual-websites/comparing-language-versions.md) used for viewing and editing two different language versions of pages side-by-side is now supported for MVC and ASP.NET Core sites.
- MVC and ASP.NET Core sites now support validation of [HTML](https://docs.kentico.com/13/developing-websites/validating-website-code-and-accessibility/validating-html-code.md) ,  [CSS](https://docs.kentico.com/13/developing-websites/validating-website-code-and-accessibility/validating-css.md) ,  [links](https://docs.kentico.com/13/developing-websites/validating-website-code-and-accessibility/validating-links.md) , and  ~~accessibility~~ for pages via built-in [validators](https://docs.kentico.com/13/developing-websites/validating-website-code-and-accessibility.md).
  - The [CSS validator](https://docs.kentico.com/13/developing-websites/validating-website-code-and-accessibility/validating-css.md) now checks CSS definitions used on pages against the [CSS3 standard](https://www.w3.org/Style/CSS/current-work) .
  - Page accessibility validation is no longer available after May 1, 2021 due to the termination of the used 3rd party validation service.
- New security web.config key for accepting all certificates when [validating website code or accessibility](https://docs.kentico.com/13/developing-websites/validating-website-code-and-accessibility.md) (e.g. CSS validation) using a 3rd party validation service over a secured protocol (HTTPS): _CMSValidationAcceptAllCertificates_. See [Reference - Web.config application keys](https://docs.kentico.com/13/configuring-xperience/reference-web-config-application-keys.md).

### Content API

- New _IPageRetriever_ service that simplifies loading of page data within live site applications. Supports dependency injection, automatically provides caching, and ensures default parameterization of the resulting page query for common scenarios.
- Page URLs and routing

  - Improved API for getting the live site URLs of pages from the Xperience content tree (new _IPageUrlRetriever_ service and extension methods). For more information, see [Displaying page content](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-page-content.md).
  - New system constraint _SiteCultureConstraint_ that automatically detects and sets the current culture for each request on [multilingual websites](https://docs.kentico.com/13/multilingual-websites/setting-up-multilingual-websites/setting-up-culture-detection.md) that use custom routing based on URL patterns. The constraint has a property _HideLanguagePrefixForDefaultCultur&#x65;_&#x74;hat enables hiding language prefixes for default content culture URLs.
  - New _Kentico().PageCanonicalUrl()_ extension method that helps developers render [Canonical link elements](https://en.wikipedia.org/wiki/Canonical_link_element) for pages with [alternative URLs](https://docs.kentico.com/13/developing-websites/implementing-routing/enabling-alternative-urls-for-pages.md) or for [linked pages](https://docs.kentico.com/13/managing-website-content/working-with-pages/copying-and-moving-pages-creating-linked-pages.md). The method replaces the _PageMainUrl()_ extension method used previously for this purpose. As a result, the _PageMainUrl()_ method is now obsolete.
- Media libraries – Improved API for retrieving and configuring URLs of media library files. For more information, see [Displaying content from media libraries](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-content-from-media-libraries.md).
- Page attachments – Improved API for retrieving and configuring URLs page attachments. For more information, see [Displaying page attachments](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-page-attachments.md).

### Page builder

- The system now provides the _Rich text_ widget out-of-the-box (for Kentico 12, the widget was available through a NuGet package as an extension). The _Rich text_ widget allows content editors to add stylized text content to pages. See [Using the Rich text widget](https://docs.kentico.com/13/managing-website-content/editing-rich-text-content/using-the-rich-text-widget.md). The same rich text editor can also be used by developers within custom components, as described in [Configuring the rich text editor for page builder](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-the-rich-text-editor-for-page-builder.md).
  - The editor used in the widget is [Froala WYSIWYG editor version 3.2.2](https://froala.com/wysiwyg-editor/changelog/).
- Development
  - Developers can now limit which sections are allowed in page builder editable areas (in addition to limiting widgets). See [Creating pages with editable areas](https://docs.kentico.com/13/developing-websites/page-builder-development/creating-pages-with-editable-areas.md).
  - New API for rendering widgets directly within the views of pages or other page builder components. For more information, see [Rendering widgets in code](https://docs.kentico.com/13/developing-websites/page-builder-development/rendering-widgets-in-code.md) and [Extending widgets](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-widgets/extending-widgets.md).
  - The API now allows developers to add visibility conditions to the properties of page and form builder components (widgets, page templates, personalization conditions, etc.). For more information, see [Adding visibility conditions for builder component properties](https://docs.kentico.com/13/developing-websites/form-builder-development/adding-visibility-conditions-for-builder-component-properties.md).
  - Added support for accessing the data of the current page within custom controller actions that handle POST requests (for both pages and page builder components, such as widgets, sections, and page templates). When handling such requests, the persisted page data can be accessed via the new _IPageDataContextRetrieve&#x72;_&#x73;ervice. For more information, see [Developing widgets](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-widgets.md), [Developing page builder sections](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-page-builder-sections.md), [Developing page templates](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-page-templates.md).
  - Added support for accessing the properties of page builder components (widgets, sections, page templates) from within custom controller actions that handle POST requests. For more information, see [Defining widget properties](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-widgets/defining-widget-properties.md).
  - Two new [selectors](https://docs.kentico.com/13/developing-websites/page-builder-development/selectors-for-page-builder-components.md) for page builder component properties: _URL selector_ and _Attachment selector_. The JavaScript API of all selectors has been unified into a single configurable [content selector API](https://docs.kentico.com/13/developing-websites/page-builder-development/selectors-for-page-builder-components/using-content-selector-javascript-api.md).

### Form builder

- New _Multiple choice_ form component that offers checkbox options, and allows users to select multiple options at the same time. See [Reference - System form components](https://docs.kentico.com/13/developing-websites/form-builder-development/reference-system-form-components.md).
- Development – Added dependency injection support for classes that implement form components. Components can now automatically resolve dependencies from the application's service container.

### Platform

- Site domains
  - Domain aliases can now specify alternative _Presentation URLs_ for the live site (MVC). See [Setting domain names for sites](https://docs.kentico.com/13/configuring-xperience/managing-sites/setting-domain-names-for-sites.md).
  - You can now specify a _Preview presentation URL_ for each _Administration domain name_ alias. The _Preview presentation URL_ is then used when previewing live site content within the scope of the administration interface. This can be useful, for example, when preparing environment for content staging.
  - The system now validates the _Presentation URL_ of sites for uniqueness. Different running sites (or their domain aliases) can no longer have matching Presentation URL values.
- Membership
  - All [Membership & Security](https://docs.kentico.com/13/configuring-xperience/managing-sites/configuring-settings-for-sites/settings-security-membership.md) and [Passwords](https://docs.kentico.com/13/configuring-xperience/managing-sites/configuring-settings-for-sites/settings-security-membership/settings-passwords.md) settings set via the _Settings_ application now also affect the configuration of the Xperience membership [OWIN integration API](https://docs.kentico.com/13/managing-users/user-registration-and-authentication/integrating-xperience-membership.md) used by the live site application. [Password policies](https://docs.kentico.com/13/securing-websites/designing-secure-websites/securing-user-accounts-and-passwords/password-strength-policy-and-its-enforcement.md), password reset token validity intervals, cross-site user account sharing, and other features can now be controlled directly from the _Settings_ application without the need to synchronize such changes with the configuration of the live-site application.
  - New API for managing user avatars. See [User avatars](https://docs.kentico.com/13/managing-users/user-avatars.md) for more information.
  - The _Kentico.Membership.User_ object used by the system's ASP.NET Identity integration now also maps the '_UserInfo.FullName_' property. See [Adding custom fields to users](https://docs.kentico.com/13/managing-users/adding-custom-fields-to-users.md).
- Licensing – Reworked how Xperience controls the maximum number of web farms allowed by site license keys. The number of allowed web farm servers is now counted separately for the live site and administration applications. For example, a license key for a live site hosted on _domain.com_ that allows up to 3 web farm servers allows you to scale the corresponding application to up to three instances. To scale the connected administration instance (e.g., hosted on _admin.domain.com_), you need a license key for _admin.domain.com_ with its web farm allowance. In previous versions, the scaling model enabled arbitrary distribution of web farm servers allowed by a single license across both applications. See [How licensing works](https://docs.kentico.com/13/configuring-xperience/managing-sites/managing-site-license-keys.md#how-licensing-works) for more information and examples illustrating various hosting configurations.
- Added _SameSite_ mode configuration options for cookies. Due to stricter enforcement of the _SameSite_ configuration of cookies adopted by major browsers, it is now possible to configure the _SameSite_ mode of cookies set via the system's API (for both system and custom cookies). By default, Xperience uses the _Lax_ mode for all system cookies, which is sufficient if the live site and administration are hosted on a single domain. However, if the applications comprising your site are hosted across multiple domains, you need to explicitly force the _None_ mode to ensure the [preview mode](https://docs.kentico.com/13/developing-websites/retrieving-content/adding-preview-mode-support.md) functionality and all dependent features, such as the page builder, work correctly. See:
  - [Configuring cookie SameSite mode](https://docs.kentico.com/13/developing-websites/working-with-cookies/configuring-cookie-samesite-mode.md) to learn how to configure the SameSite mode for system cookies depending on your hosting environment.
  - [Working with cookies](https://docs.kentico.com/13/developing-websites/working-with-cookies.md) to learn how to configure the SameSite mode for custom cookies set via the Xperience API.
- Macros
  - Updated the available macro methods to allow resolving by both the administration and live site application (with the exception of methods that only have a specific function within the administration interface). Certain methods that are no longer relevant were removed and others were made obsolete. To learn about the current macro methods, refer to [Reference - Macro methods](https://docs.kentico.com/13/macro-expressions/reference-macro-methods.md).
  - The macro report available in _System_ -> _Macros_ -> _Report_ was extended to report occurrences of removed or obsolete macro methods used in the administration application. See [Searching for macros](https://docs.kentico.com/13/macro-expressions/troubleshooting-macros/searching-for-macros.md).
- Scheduled tasks – The system now allows scheduling and running of _site-specific_ tasks on the side of the live site (MVC) application. For example, you can use this option for tasks that work with the application memory or the local file system. See [Processing scheduled tasks on the live site](https://docs.kentico.com/13/configuring-xperience/scheduling-tasks/processing-scheduled-tasks-on-the-live-site.md).
- Search
  - Improved the functionality of _Pages crawler_ indexes to allow better usability on sites presented by a separate live site application (MVC or ASP.NET Core). See [Defining local page indexes](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-locally-stored-search-indexes/creating-local-search-indexes/defining-local-page-indexes.md).
  - Added support for _Pages crawler_ indexes in combination with [Azure Cognitive Search](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-azure-cognitive-search.md).
- Event log – It is now possible to specify custom event logging destinations via _event log writers_. See [Customizing event logging](https://docs.kentico.com/13/custom-development/customizing-event-logging.md) for more information.
- REST
  - When generating URLs with [hash parameter authentication](https://docs.kentico.com/13/integrating-3rd-party-systems/xperience-rest-service/authenticating-rest-requests.md) for REST requests, the system now allows administrators to set an expiration date for individual URLs.
  - Hash parameters generated for authenticating REST requests can now be invalidated.
- Caching
  - New _CacheAsync_ method added to the _CacheHelper_ API that allows loading and caching of Xperience data in asynchronous code. See [Caching in custom code](https://docs.kentico.com/13/configuring-xperience/configuring-caching/caching-in-custom-code.md).
  - New _IProgressiveCache_ service that provides a full alternative to the static _CacheHelper_ API. Supports dependency injection and makes it easier to cache data within the code of unit tests.
- Performance – The general performance of [ObjectQuery ](https://docs.kentico.com/13/custom-development/retrieving-database-data-using-objectquery-api.md)calls was slightly improved (such calls are used to load object data within the system and in custom code).
- SharePoint integration – New API that allows developers to [retrieve the URLs of SharePoint files](https://docs.kentico.com/13/integrating-3rd-party-systems/integrating-sharepoint/displaying-sharepoint-data-on-the-live-site.md) and display the files on the live site.
- Added automatic registration of secured (HTTPS) endpoints for the WCF services used by the [marketing automation designer](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-the-automation-process-designer.md) and [advanced workflow designer](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-workflows/designing-advanced-workflows.md) (when the administration application is running over HTTPS). Manual configuration is only required in scenarios with advanced environment configurations. See [Configuring Windows Communication Foundation](https://docs.kentico.com/13/configuring-xperience/configuring-windows-communication-foundation.md) for more information.
- Data API
  - The API now contains interfaces (services) for most _InfoProvider_ classes, which are used for basic loading and management of Xperience objects. For example, _IUserInfoProvider_ for _UserInfoProvider._ The new services can be added using dependency injection or accessed through the _Provider_ property of the corresponding _Info_ class. The original static _InfoProvider_ methods that have replacements are now obsolete. See [Database table API](https://docs.kentico.com/13/custom-development/database-table-api.md).
  - Xperience objects can now be loaded asynchronously using the _GetAsync_ method of the new _IInfoProvider_ interfaces.
  - The [DocumentQuery](https://docs.kentico.com/13/custom-development/working-with-pages-in-the-api.md) and [ObjectQuery](https://docs.kentico.com/13/custom-development/retrieving-database-data-using-objectquery-api.md) classes provide a new _GetEnumerableTypedResultAsync_ method, which allows asynchronous execution of queries that load Xperience pages or objects.
  - The query parameterization methods available for the [DocumentQuery](https://docs.kentico.com/13/custom-development/working-with-pages-in-the-api.md) and [ObjectQuery](https://docs.kentico.com/13/custom-development/retrieving-database-data-using-objectquery-api.md) API are now virtual. This allows developers to call the methods when creating mocked data in automated unit tests (for example when using _Substitute.For_ with query objects).

### On-line marketing

- Marketing automation
  - New and improved visual design and overall interface for the [automation process designer](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-the-automation-process-designer.md). The steps for managing the flow of processes (conditions, etc.) were simplified and streamlined.
  - New _Time-based_ [triggers](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/setting-triggers-for-automation-processes.md), which can be used to start automation processes. Such triggers schedule the process to run for a specified set of contacts, either once at a specified time or recurring based on a set interval.
  - Automation processes can now be saved as templates and then later used as a starting point for creating new processes. The system provides several predefined templates to help quickly create processes that cover common scenarios (Send birthday message, Re-engagement campaign, Abandoned cart reminder). See [Managing automation process templates](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/managing-automation-process-templates.md).
  - Improved editing interface for [process triggers](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/setting-triggers-for-automation-processes.md) – triggers are now displayed and managed directly within the process designer interface as part of the _Start_ step.
  - Improved [analytics](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/viewing-marketing-automation-analytics.md) for automation processes, including reports showing the demographics of contacts handled by the process, and a visual representation of the journey that individual contacts have taken through the steps of the process.
  - Marketers can now document and annotate automation processes by adding notes to the process graph. See [Working with the automation process designer](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-the-automation-process-designer.md) for more information.
  - [Action steps](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-the-automation-process-designer/adding-marketing-actions-to-automation-processes.md) can now retrieve data and display the resulting information to users in the automation process designer interface. For example, the system's default _Send marketing email_ action step loads and displays available statistics for the related email (number of sent emails, open and link click rate). For more information about implementing data retrieval for custom steps, see [Developing custom marketing automation actions](https://docs.kentico.com/13/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-marketing-automation/developing-custom-marketing-automation-actions.md).
  - The automation process designer newly displays a warning icon and message for steps with required parameters that are not configured.
  - Users can now duplicate [steps within an automation process](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-the-automation-process-designer/managing-automation-process-steps.md), including their current configuration.
- The [Web analytics](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/web-analytics.md) feature is now supported for MVC and ASP.NET Core sites. Allows marketers to measure and analyze key metrics of websites directly in the Xperience administration interface.
  - New and improved API for developers who wish to log custom events as web analytics. See [Adding custom web analytics](https://docs.kentico.com/13/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-web-analytics/adding-custom-web-analytics.md).
- Email marketing
  - Emails can now be cloned (copied) between different email feeds. See [Composing marketing emails](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/email-marketing/composing-marketing-emails.md#copying-existing-emails).
  - Emails that have [A/B testing](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/email-marketing/a-b-testing-marketing-emails.md) enabled can now be selected and sent by marketing automation processes (using _Send marketing email_ action steps).
- The _Custom table form submit_ activity is [now supported](https://docs.kentico.com/13/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-activities/enabling-activity-tracking.md) for MVC and ASP.NET Core sites (logged automatically when calling the appropriate custom table API).
- New [macro rules](https://docs.kentico.com/13/macro-expressions/writing-macro-conditions/building-conditions-using-macro-rules.md):
  - Rule that evaluates whether a contact has their birthday on the current, preceding or following day.
  - Rule that evaluates whether a contact has been inactive for a specified number of days (i.e. was created at least X days ago and has not performed any activities in the last X days).
- Personas – The [staging](https://docs.kentico.com/13/deploying-websites/content-staging.md), [export/import](https://docs.kentico.com/13/deploying-websites/exporting-and-importing-sites.md), and [continuous integration](https://docs.kentico.com/13/developing-websites/setting-up-continuous-integration.md) features now support [persona](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/personas.md) data. If you want to synchronize, import or export data of personas that use[ custom activities](https://docs.kentico.com/13/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-activities/adding-custom-activity-types.md) in their rule definitions, you need to make sure each custom activity has its _Activity item object type_ configured in _Contact management -> Configuration -> Activity types -> Edit -> Scoring rule configuration_ section. Additionally, you need to manually resave all scoring rules that use such custom activities.

### General

- Published the [Kentico Xperience](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/kentico-software.kentico) item on the [Azure Marketplace](https://azuremarketplace.microsoft.com), which can be used to quickly deploy and evaluate a sample website as an Azure Web App.

## Updates and changes

- The [Preview mode](https://docs.kentico.com/13/developing-websites/retrieving-content/adding-preview-mode-support.md) feature for pages is now always active and no longer needs to be enabled on the side of the live site application (the _UsePreview_ method of the _ApplicationBuilder_ instance is obsolete). Developers may still need to adjust the configuration and code of the application to ensure that the preview mode works correctly, as described in [Adding preview mode support](https://docs.kentico.com/13/developing-websites/retrieving-content/adding-preview-mode-support.md).
- The [WYSIWYG editor](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-the-editor-for-rich-text-fields.md) used for rich text fields in the administration interface was updated to [CKEditor version 4.14.0](https://ckeditor.com/cke4/release/CKEditor-4.14.0).
- The jQueryUI library used in the administration application was updated to [v1.11.4](https://blog.jqueryui.com/2015/03/jquery-ui-1-11-4/).
- The jQuery library used by the [form builder](https://docs.kentico.com/13/developing-websites/form-builder-development.md) feature was updated to v3.5.1.
- The _Licenses_ application in the Xperience administration interface was renamed to _License keys_.
- [Marketing automation](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation.md) – The following [types of steps](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-the-automation-process-designer.md) for marketing automation processes were streamlined and renamed:
  - Standard – renamed to _Approve progress_.
  - First win – renamed to _If/Else_.
  - Condition – merged into the _If/Else_ step type (automatically converted when upgrading sites).
  - Multi-choice – removed, we recommend using the _If/Else_ step type (occurrences in existing processes remain when upgrading sites).
  - User choice – renamed to _Manual choice_.
  - Start process – renamed to _Start another process_.
- Countries – The country of _Saint Martin_ (MF, MAF) was split into:
  - _Saint Martin (French part)_ (MF, MAF) with the _SaintMartin_ code name.
  - _Sint Maarten (Dutch part)_  (SX, SXM) with the _SintMaarten\_DutchPart_ code name.
- Countries – The following countries were added to the system:
  - _Bonaire, Saint Eustatius and Saba (BQ, BES)_ with the _Bonaire\_SintEustatiusAndSaba_ code name.
  - _Curacao (CW, CUW)_ with the _Curacao_ code name.
- _Administration interface_ is a new application that merges the functionality of the following Portal Engine applications used to customize the Xperience interface:
  - Widgets (renamed to _Dashboard widgets_)
  - Web parts
  - Page layouts
  - Page templates
  - Form controls
- Due to the removal of community features and groups, any group-related media libraries are converted to regular media libraries when upgrading.

## Fixed issues

- E-commerce – If a [tax exemption](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customizing-tax-calculation.md) for customers was created by registering a custom _ICustomerTaxClassService_ implementation, it was only applied for products with a tax class that had the _Zero tax if tax ID is supplied_ property enabled. The property no longer affects custom tax exemptions (unless checked in the code of the custom implementation).

> **Info:** All bugs fixed within the Kentico 12 hotfixes  _**up to version 12.0.90**_  are included in Xperience 13. See the [Bugtracker on DevNet](https://devnet.kentico.com/download/hotfixes) for a full list (click **Fixed Bugs**).

## &#x20;Breaking changes (functionality, API, data structure)

### NuGet packages

- All [NuGet packages](https://docs.kentico.com/13/developing-websites/starting-with-mvc-development/installing-xperience-integration-packages.md) used for MVC development and general integration of the Xperience API were renamed (rebranded). When upgrading projects, you need to uninstall the original Kentico 12 packages and replace them with the equivalent packages for Xperience 13.

  | Kentico 12                   | Xperience 13                                                                                                                                                                                                               |
  | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Kentico.AspNet.Mvc           | Kentico.Xperience.AspNet.Mvc5                                                                                                                                                                                              |
  | Kentico.AspNet.Mvc.Libraries | Kentico.Xperience.AspNet.Mvc5.Libraries                                                                                                                                                                                    |
  | Kentico.Libraries            | Kentico.Xperience.Libraries                                                                                                                                                                                                |
  | Kentico.Libraries.Web.UI     | The package was removed. The contained _Web.UI_ libraries are only intended for use within the Xperience administration application. If necessary, you can access the libraries in the _Lib_ folder of Xperience projects. |
  | Kentico.LanguagePack.English | The package was removed. Localization files are now part of application assemblies (included as part of the _Kentico.Xperience.AspNet.Mvc5.Libraries_ package).                                                            |
  | Kentico.Libraries.Tests      | Kentico.Xperience.Libraries.Tests                                                                                                                                                                                          |
  | Kentico.Glimpse              | Kentico.Xperience.Glimpse                                                                                                                                                                                                  |
- [Azure Search](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-azure-cognitive-search.md)
  - The [Microsoft.Azure.Search](https://www.nuget.org/packages/Microsoft.Azure.Search) NuGet package provided in Xperience projects was updated to version 10.1.0 (both in the Xperience web project and as a dependency of the _Kentico.Libraries_ NuGet package). For this version update, the Azure Search SDK contains minor breaking changes that should not impact your project's integration with Xperience. However, version 9 of the SDK (cumulatively applied with this update) contains potentially significant breaking changes. For example, all non-generic types derived from _SearchResultBase_, _DocumentSearchResultBase_, _SuggestResultBase_, _DocumentSuggestResultBase_, _IndexBatchBase_ and _IndexActionBase_ were removed from the provided API. The derived types were meant to be used in "dynamically-typed" scenarios and assumed usage of the [Microsoft.Azure.Search.Models.Document](https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.search.models.document?view=azure-dotnet) class. For dynamically-typed scenarios in the newest version, use _SearchResult_, _DocumentSearchResult_, and so on (explicitly specify _Microsoft.Azure.Search.Models.Document_ as the type's generic parameter). For a detailed description of all changes and recommended upgrade process, see [Upgrading to the Azure Search .NET SDK version 9](https://docs.microsoft.com/en-us/azure/search/search-dotnet-sdk-migration-version-9) and [Upgrading to the Azure Search .NET SDK version 10](https://docs.microsoft.com/en-us/azure/search/search-dotnet-sdk-migration-version-10) in the official Microsoft Azure documentation. The Azure Search API provided by Xperience (_CMS.Search.Azure_ namespace) remains unchanged.
  - The Microsoft.Azure.Storage.\* NuGet packages were updated to version 11.2.2. There are no expected breaking changes associated with this update.
- [External authentication](https://docs.kentico.com/13/managing-users/user-registration-and-authentication/configuring-external-authentication.md) – To work with Xperience 13, the _Microsoft.Owin.Security_ NuGet packages that provide middleware components for external authentication on the live site must use version _4.0.0_ or newer. If using an older version and upgrading to Xperience 13, you need to update the packages.

### Platform

- The _web site_ project type is no longer supported for the Xperience administration application. New installations always use the _web application_ project type. The [upgrade procedure](https://docs.kentico.com/13/installation/upgrading-to-xperience-13.md) is not supported for web site projects.
- Deployment to Azure Cloud Service is no longer supported (along with the _Microsoft Azure_ project type). When deploying new projects to Microsoft Azure, use [Azure Web Apps](https://docs.kentico.com/13/deploying-websites/running-xperience-on-microsoft-azure/deploying-to-azure-web-apps.md) (or Azure Virtual Machines).
- Scheduled tasks
  - Automatic scheduling based on a timer is now the default mode for processing scheduled tasks (instead of processing at the end of web requests). See [Configuring scheduled task execution](https://docs.kentico.com/13/configuring-xperience/scheduling-tasks/configuring-scheduled-task-execution.md).
  - When creating scheduled tasks, the system no longer provides the option to create a copy of the task for all web farm servers (the scenario did not work correctly in dynamic web farm scenarios and was potentially misleading).
  - The _CMSSchedulerUrl_ web.config key is no longer handled – setting a custom automatic scheduler route is no longer a supported scenario.
- Localization – Resource string files that contain the default English localization strings used by the application _(CMS.resx_, _Kentico.Builder.resx_, _Kentico.PageBuilder.resx_, _Kentico.FormBuilder.resx_, _Kentico.Components.resx_) are no longer a part of the  _Kentico.Xperience.LanguagePack.English_ NuGet package, which was removed. Instead, they are delivered as embedded resources in application assemblies. If you need access to these files for purposes of application localization, contact us at <partners@kentico.com> or <support@kentico.com>. Upgrading the live site project to Xperience 13 NuGet integration packages removes the files from the file system. Existing localizations implemented according to our [localization practices](https://docs.kentico.com/13/multilingual-websites/setting-up-a-multilingual-user-interface/working-with-resource-strings.md) remain unaffected.
- Monitoring of online users and contacts is no longer supported (in the _Users_ and _Contact management_ applications). This feature was never available for MVC sites.
- Mapping the entire filesystem to external (shared) storage via the _CMSExternalStorageName_ web.config key is no longer supported due to potential deadlock issues. If the key is detected on application startup, the system logs a warning to the event log. Instead, map only the parts of the file system your project uses often using the [StorageProviderclass](https://docs.kentico.com/13/custom-development/working-with-physical-files-using-the-api/configuring-file-system-providers.md). For example, the media library and form data submission folders. This avoids the need to synchronize large volumes of data over web farms while keeping the main parts of the application file systems separate.
- The _Banned IPs_ application and related functionality were removed from the system. This feature was never available for MVC live sites.
- Introduced an additional layer of security for virtual context links (used in the administration interface when previewing or editing live site pages). The system now additionally stores the username of the current user on the client in a new _CMSVirtualContextIdentity_ cookie (in addition to the URL itself). When processing requests for virtual context links, the system checks the username in the cookie against the username present in the URL.
- Page type settings for configuring custom administration interface pages in the _Pages_ application were removed (New/Edit, Preview and Listing mode pages).
- Removed the _JavaScript files_ application, and the option to manage files in the Xperience project's _\~/CMSScripts/Custom_ folder through the administration interface.
- Removed the _CSS Stylesheets_ application, and the option to manage system stylesheets through the administration interface.
- Search indexes of the _Pages crawler_ type no longer allow configuration of the domain on which content is indexed. The crawler now always uses the main live site URL of the indexed page (the domain may be different between culture versions of pages).
- The _Membership - Forgotten password (obsolete)_ [email template](https://docs.kentico.com/13/configuring-xperience/managing-email-templates.md) was removed from the system, along with the related macro resolver, and the _Forgotten password_ template type. This template was obsolete and no longer used by the system's [password reset functionality](https://docs.kentico.com/13/securing-websites/designing-secure-websites/securing-user-accounts-and-passwords/configuring-password-resets-for-xperience-administration.md).
- The _Membership - Registration_, _Membership - Registration waiting for approval_, and _Membership - Registration confirmation_ email templates were removed from the system. These email templates were not used during the user registration process on MVC sites. To send emails regarding user registration or changes in account status, use the corresponding API provided by the _KenticoUserManager_ class. See [Enabling user registration](https://docs.kentico.com/13/managing-users/user-registration-and-authentication/enabling-user-registration.md).
- [Domain aliases for sites](https://docs.kentico.com/13/configuring-xperience/managing-sites/setting-domain-names-for-sites.md) no longer provide the option of setting a redirection URL.
- The option to save sites as web templates is no longer supported. If required, we recommend using the [export and import](https://docs.kentico.com/13/deploying-websites/exporting-and-importing-sites.md) feature for sites.
- The setting that ensured internal site prefixes for user names was removed and this option is no longer supported.
- The entire _Health Monitoring_ functionality was removed from the system. The corresponding Windows services and performance counter registrations are automatically removed during the upgrade.
- The following [font icons](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/working-with-font-icons.md) (used to display graphics in the administration interface) were renamed:
  - _@icon-parent-child-scheme_ > _@icon-parent-children-scheme-3_
  - _@icon-parent-child-scheme-2_ > _@icon-parent-child-scheme-inverted_
  - _@icon-parent-child-scheme2_ > _@icon-parent-child-scheme_
  - _@icon-parent-children-scheme_ > _@icon-parent-children-scheme-2_

### Content management

- The Portal Engine and ASPX template development models for websites are no longer supported. Related features and components (web parts, widgets, page templates, controls, etc.) were removed from the system.
  - Web parts can no longer be used to build website pages. They remain in the system as components for administration interface pages.
  - Portal Engine page templates can no longer be assigned to website pages. They remain in the system as a way to build administration interface pages. Ad-hoc templates dedicated to individual pages are no longer supported. When upgrading projects, all page templates except for UI and dashboard templates are removed, and any ad-hoc UI templates are converted to global shared templates.
  - All support for the original Portal Engine widgets was removed for live site content. This includes editor, user and group widgets, as well as inline widgets (adding widgets into editable text areas via the editor). Widgets can still be used on dashboards within the administration interface.
  - Removed support for web part and widget containers.
  - [Transformations](https://docs.kentico.com/13/macro-expressions/writing-transformations-for-macros.md) are no longer intended for displaying data on the live site. The _ASCX_, _XSLT_, and _jQuery_ transformation types are no longer supported, and any existing transformations of these types are deleted when upgrading projects. If you use such transformations, you need to create equivalent macro-based transformations.
- On-site editing mode is no longer supported (the feature was never available for MVC sites).
- Some tabs used when editing pages in the _Pages_ application were reorganized (e.g., the content of the _General_ tab was reworked, the [tags](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-tags.md) functionality was moved to a separate _Tags_ tab, etc.). As part of this reorganization, some UI elements in the _Pages_ application were also rearranged. If upgrading from an older version, we recommend that you check that any UI personalization configuration or custom UI elements are still valid.
- The _Sites_ application no longer provides the option to switch sites to off-line mode (the feature never worked for MVC sites).
- [On-line forms ](https://docs.kentico.com/13/managing-website-content/forms.md)created on Portal Engine sites (without the [MVC form builder](https://docs.kentico.com/13/developing-websites/form-builder-development.md)) are no longer supported.
- Removed permanent URL functionality for pages. URLs served via the _/getdoc_ handler are no longer supported.
- The _Sites_ application no longer provides the option to select a CSS stylesheet applied to the content of rich text fields edited through the [WYSIWYG editor](https://docs.kentico.com/13/managing-website-content/editing-rich-text-content/editing-content-in-rich-text-fields.md). Instead, a stylesheet can be configured for this purpose using the new _CSS stylesheet for WYSIWYG editor_ setting in _Settings -> Content -> Content management_ (accepts the stylesheet's absolute URL or virtual path based on the MVC application's _Presentation URL_). See [Styling the editor for rich text fields](https://docs.kentico.com/13/configuring-xperience/configuring-the-environment-for-content-editors/configuring-the-editor-for-rich-text-fields/styling-the-editor-for-rich-text-fields.md).
- Attachments and media library files now have [separate settings](https://docs.kentico.com/13/configuring-xperience/managing-sites/configuring-settings-for-sites/settings-urls-and-seo.md) for configuring URLs in the _URLs and SEO_ category of the _Settings_ application.
- The built-in components and functionality for content notifications was removed (the feature was never available for MVC sites). Additionally, the original API for developing notification gateways in Xperience is no longer supported.
- Removed support for Device profiles (a mobile development approach originally usable by Portal Engine sites). This includes all related applications, settings, components and integration with 51Degrees device detection.
- The _WebDAV_ integration feature used for collaborative editing and file management on remote web servers is no longer supported.
- The _searchattachments_ and _searchdocuments_ SQL queries originally placed under the _CMS.Root_ page type were moved and renamed. The queries are now named _Search_ and available under the _Attachment_ (cms.attachment) and _Page_ (cms.document) classes of the system's _Pages_ module.
- The _Default page_ and _Default alias path_ settings were removed. The option to set a _Default alias path_ for [domain aliases](https://docs.kentico.com/13/configuring-xperience/managing-sites/setting-domain-names-for-sites.md) was also removed. Redirection to your website's home page is now configured via the _Home page_ and _Home page URL behavior_ settings. See [Settings - URLs and SEO](https://docs.kentico.com/13/configuring-xperience/managing-sites/configuring-settings-for-sites/settings-urls-and-seo.md) for more information.
- The _Redirect invalid case URLs to their correct version&#x73;_&#x73;etting was removed. To configure how the system handles the letter case of characters in URLs, set the _Enforce lowercase URLs_ setting. See [Settings - URLs and SEO](https://docs.kentico.com/13/configuring-xperience/managing-sites/configuring-settings-for-sites/settings-urls-and-seo.md)  for more information.
- The translations.com [translation service](https://docs.kentico.com/13/multilingual-websites/configuring-translation-services.md) is no longer supported.
- Removed the functionality that allowed a watermark to be configured for images managed by the system (media library files, page attachments, object metafiles).

### On-line marketing

- Marketing automation

  - Newly created or imported [automation processes](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/working-with-marketing-automation-processes.md) are now inactive by default. Processes need to be enabled in the process designer interface before they can start running for contacts.
  - _Send marketing email_ action steps within automation processes can now only send marketing emails that are specifically flagged for marketing automation purposes (via a new _Use in Marketing automation_ property). Such emails cannot be sent directly from the _Email marketing_ application.
  - Marketing automation process steps of the _Multi-choice_ type are no longer available. We recommend using the _If/Else_ step type to create conditions in automation processes. When upgrading sites, any occurrences of _Multi-choice_ steps remain in existing processes.
  - The [reports](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/viewing-marketing-automation-analytics.md) for automation processes no longer support the option to directly save or print the report content, or subscribe to receive email notifications about the report status. Additionally, any custom modifications made in the _Reporting_ application under the _Online marketing -> Automation_ report category no longer apply.
- Multivariate testing of pages is no longer supported (the feature was never available for pages on MVC sites). We recommend using [A/B testing](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/a-b-testing-pages.md) instead.
- The following macros related to [personas](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/personas.md) were removed or modified:
  - _GlobalObjects.PersonaScores_ – removed
  - _GlobalObjects.Personas\[0].PersonaScore_ – changed to _GlobalObjects.Personas\[0].Scores_
- It is no longer possible to assign personas to pages (the binding between content tree nodes and personas was removed).
- Banner management functionality is no longer supported, and all related components were removed from the system (applications, web parts, widgets, settings, etc.).

### Social & Community

- Community features were removed from the system, along with all related components (web parts, widgets, email templates, form controls, settings) and API:
  - Abuse report
  - Bad words
  - Blogs
  - Chat
  - Content rating
  - Events
  - Forums
  - Flood protection
  - Groups
  - Message boards
  - Polls
  - User badges and activity points
  - User contribution web parts
- The following functionality related to user avatars was removed from the system: the _Avatars_ application, management of pre-defined avatars, Gravatar support. It is still possible to manage user avatars using the API. For more information, see [User avatars](https://docs.kentico.com/13/managing-users/user-avatars.md).

### E-commerce

- All components and functionality related to displaying e-commerce data and shopping carts on Portal Engine sites were removed (includes macro methods, transformation methods, web parts, widgets, settings, etc.). See the [Developing on-line stores](https://docs.kentico.com/13/e-commerce-features/developing-on-line-stores.md) documentation to learn how to implement equivalent functionality on MVC sites.
- Strands Recommender integration is no longer supported (the feature was never available for MVC sites).

## &#x20;API – Breaking changes

> **Note:** Search the [API changes](https://devnet.kentico.com/documentation/api-changes) page on DevNet to find all possible breaking changes in the API.

### Platform (live site API)

- Kentico.Membership – The _UserManager, UserStore,_ and _SignInManager_ types from the _Kentico.Membership_ namespace are now obsolete. Use _KenticoUserManager, KenticoUserStore,_ and _KenticoSignInManager_ instead. The new types support a generic parameter that allows you to work with customized _Kentico.Membership.User_ objects (e.g., containing additional properties corresponding to custom or existing fields of user objects) in the Xperience ASP.NET Identity implementation. See [Adding custom fields to users](https://docs.kentico.com/13/managing-users/adding-custom-fields-to-users.md) for more information.
- Form builder
  - All selector form components (e.g., _SelectorFormComponent_, _CompareToFieldSelectorComponent_) now work with collections of _Kentico.Web.Mvc.HtmlOptionIte&#x6D;_&#x69;nstead of _System.Web.Mvc.SelectListItem_. Affected members are marked as obsolete with the corresponding alternative provided in the obsolete information message. To convert collections of _HtmlOptionItems_ to _SelectListItems_, use the  _Kentico.Web.Mvc.ToSelectListItems_ extension method.
  - The [GetEditorHtmlAttributesextension method](https://docs.kentico.com/13/developing-websites/form-builder-development/developing-form-components.md) no longer directly extends _ViewData_ but is provided under the _ViewData.Kentico()_ extension point instead. Replace all usages of _ViewData.GetEditorHtmlAttributes_ with _ViewData.Kentico().GetEditorHtmlAttributes_. The old approach is marked obsolete and will be removed in future versions.

### Platform (general API)

- The static methods of most _InfoProvider_ classes used for basic loading and management of Xperience objects are now obsolete. Instead, the API provides interface equivalents (services) for each _InfoProvider_. For example, use _IUserInfoProvider_ instead of _UserInfoProvider._ The new interfaces (services) can be added using dependency injection or accessed through the _Provider_ property of the corresponding _Info_ class.
- All system API methods working with uploaded files now take _IUploadedFile_ instead of _HttpPostedFile_. The _IUploadedFile_ interface acts as a wrapper that encapsulates properties of posted binary data. Use the provided _ToUploadedFile_ extension methods (_CMS.Base.UploadExtensions_ namespace) to convert _HttpPostedFile_ types.
- The event logging API exposed by the _EventLogProvider_ class is now obsolete. To log events into the application's event log, use _IEventLogService_ instead. See the [event log API Examples](https://docs.kentico.com/13api/configuration/event-log.md).
- The properties of the _CoreServices_ class, used to provide access to a set of core system services (_IAppSettingsService_, _IEventLogService_, _ILocalizationService_, etc.), are now obsolete. Use _Service.Resolve()_ to access these services instead. For example, use _Service.Resolve()_ to get an instance of the service that works with a project's web.config setting keys.
- The _DataExportHelper.ExportToExcel_, _DataExportHelper.ExportToCSV_, and _DataExportHelper.ExportToXML_ methods no longer close the _System.IO.Stream_ object passed to them as a parameter. Correctly disposing of the stream is now the responsibility of the calling code.
- Materializing an [ObjectQuery](https://docs.kentico.com/13/custom-development/retrieving-database-data-using-objectquery-api.md) call (typically by enumerating through the results) now triggers the _SqlEvents.ExecuteReader_ [global event](https://docs.kentico.com/13/custom-development/handling-global-events/reference-global-system-events.md) instead of the _SqlEvents.ExecuteQuery_ event. This is not the case for [DocumentQuery](https://docs.kentico.com/13/custom-development/working-with-pages-in-the-api.md) calls, which still trigger the _ExecuteQuery_ event. You need to accordingly adjust any custom event handlers of these events.
- Using period character ('.') prefixes in role code names to specify global roles is no longer supported when loading roles in custom code. Instead, use _0_ as the value of the site ID parameter in the corresponding API call. For example: _RoleInfo.Provider.Get("RoleName", 0)_
- The _CMS.Helpers.BrowserHelper_ class is now obsolete. All custom browser detection or compatibility logic should be performed client-side [using JavaScript](https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent). If you need client browser data available on the server for specific requests, you can send them as part of the corresponding request.
- All QR code functionality was removed from the system, including the related API (_CMS.Helpers.ImageHelper.GetQRCodeUrl_, _CMS.UIControls.QRCodeGenerator_, etc.), the entire _ThoughtWorks.QRCode.dll_ library, and support for loading QR codes via the _GetResource.ashx_ handler.
- [ObjectTypeInfo properties](https://docs.kentico.com/13/custom-development/creating-custom-modules/setting-the-type-information-for-module-classes/reference-objecttypeinfo.md) related to macros (_CheckPermissions_, _ContainsMacros_, _MacroCollectionName_) were moved into a new separate _MacroProcessingSettings_ class, available under the new _MacroSettings_ property of _ObjectTypeInfo_. The original properties are now obsolete.

### Content management

- Page builder
  - The API for limiting widgets and assigning default sections in [page builder editable areas](https://docs.kentico.com/13/developing-websites/page-builder-development/creating-pages-with-editable-areas.md) has been improved and updated. The previous approach (using optional parameters of the _EditableArea_ method) is now obsolete and should not be used.
  - The _ComponentController.GetPage_ methods used to access the data of the page where a component is rendered are now obsolete. Use the _IPageDataContextRetriever_ service and its _Retrieve_ method to access the page data instead. See, for example, [Developing widgets](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-widgets.md).
  - The _ComponentController.GetProperties_ methods used to access the properties of components in controller actions are now obsolete. Use the _IComponentPropertiesRetriever_ service and its _Retrieve_ method the access the properties instead. See, for example, [Defining widget properties](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-widgets/defining-widget-properties.md). To access the properties of [page templates](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-page-templates.md), use _IPageTemplatePropertiesRetriever.Retrieve_.
  - The _KenticoFormWidgetController.WIDGET\_IDENTIFIER_ constant containing the registered [identifier](https://docs.kentico.com/13/developing-websites/page-builder-development/developing-widgets.md) of the system's [Form widget](https://docs.kentico.com/13/managing-website-content/forms/placing-forms-on-pages.md) is now obsolete. Instead, access the widget's identifier via the _SystemComponentIdentifiers_ class (_Kentico.Content.Web.Mvc_ namespace). This class aggregates the identifiers of all default system widgets (Form, Rich text, etc.).
- Page attachments – the _GetPath_ extension method used to resolve the relative URL of page attachments is now obsolete. Use the _IPageAttachmentUrlRetriever_ service to resolve page attachment URLs instead. See [Displaying page attachments](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-page-attachments.md).
- The _ImageUrl_ extension method used to generate and parameterize absolute URLs from relative URLs is now obsolete. Instead, use _WithSizeConstraint_ and _WithOptions_ extension methods on the _IFileUrl_ object. The object is returned by general URL "retriever" services for [page attachments](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-page-attachments.md) and [media library files](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-content-from-media-libraries.md). In cases where you only have the relative path to an image available (e.g., product images, manufacturer logos), you can construct an _IFileUrl_ object manually. For example, see the _Adjusting product image size_ section in [Displaying product listings](https://docs.kentico.com/13/e-commerce-features/developing-on-line-stores/displaying-product-listings.md).
- The _GetFileUrl_ method of the _CMS.AmazonStorage.File_ and _CMS.AzureStorage.File_ classes, used for obtaining URLs to media files stored on [Amazon S3](https://docs.kentico.com/13/custom-development/working-with-physical-files-using-the-api/configuring-file-system-providers/configuring-amazon-s3.md) and [Microsoft Azure](https://docs.kentico.com/13/custom-development/working-with-physical-files-using-the-api/configuring-file-system-providers/configuring-azure-storage.md) external storages, now returns the URL in a virtual path format (e.g. _\~/CMSPages/GetAmazonFile.aspx?..._) instead of the previous absolute path format. You can [resolve the virtual relative URLs](https://docs.kentico.com/13/developing-websites/retrieving-content/displaying-page-content.md) depending on your needs.

### On-line marketing

- The _IABTestLogger_ service that performed [conversion logging for A/B tests](https://docs.kentico.com/13/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/enabling-a-b-testing/logging-custom-a-b-testing-conversions.md) is now obsolete. Instead, use the _IABTestConversionLogger_ service (available in the _CMS.OnlineMarketing_ namespace).

### E-commerce

- When developing [custom tax exemptions](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customizing-tax-calculation.md) for customers, the _GetTaxClass_ method in _ICustomerTaxClassService_ implementations now has an additional _TaxClassInfo_ parameter and the returned _CustomerTaxClass_ value was changed to an enum. Such customizations now correctly apply even for products under a tax class with the _Zero tax if tax ID is supplied_ property disabled.
- The _IRoundingService_ and _ISettingService_ services were removed from the set of system service managed by dependency injection. The instances of these service are intended to be resolved using the corresponding _IRoundingServiceFactory_ and _ISettingServiceFactory_ services. If you injected or resolved these services directly (using _Service.Resolve()_), replace them with the intended service factory methods.

## Database – Breaking changes

All changes in the database structure are automatically handled by Xperience during the update procedure. This information is provided to help you prepare in case you use custom code or scripts that rely on the original database structure.

### General

- The following database tables were removed (the related features are no longer supported in Xperience 13):
  - _BadWords\_Word_
  - _BadWords\_WordCulture_
  - _Blog\_Comment_
  - _Blog\_PostSubscription_
  - _CMS\_AbuseReport_
  - _CMS\_Badge_
  - _CMS\_BannedIP_
  - _CMS\_Banner_
  - _CMS\_BannerCategory_
  - _CMS\_CssStylesheet_
  - _CMS\_CssStylesheetSite_
  - _CMS\_DeviceProfile_
  - _CMS\_DeviceProfileLayout_
  - _CMS\_DocumentAlias_
  - _CMS\_OpenIDUser_
  - _CMS\_PageTemplateScope_
  - _CMS\_PageTemplateSite_
  - _CMS\_Session_
  - _CMS\_TemplateDeviceLayout_
  - _CMS\_WebTemplate_
  - _Events\_Attendee_
  - _Notification\_Gateway_
  - _Notification\_Subscription_
  - _Notification\_Template_
  - _Notification\_TemplateText_
  - _Polls\_Poll_
  - _Polls\_PollAnswer_
  - _Polls\_PollRoles_
  - _Polls\_PollSite_
- The following columns were removed from the _CMS\_Avatar_ database table due to updated and simplified [User avatar](https://docs.kentico.com/13/managing-users/user-avatars.md) functionality:
  - _AvatarType_
  - _AvatarIsCustom_
  - _DefaultMaleUserAvatar_
  - _DefaultFemaleUserAvatar_
  - _DefaultGroupAvatar_
  - _DefaultUserAvatar_
- The following columns were removed from the _CMS\_FormUserControl_ database table:
  - _UserControlShowInBizForms_
  - _UserControlDefaultDataType_
  - _UserControlDefaultDataTypeSize_
  - _UserControlForVisibility_
  - _UserControlType_
  - _UserControlThumbnailGUID_
- The following columns were removed from the _CMS\_Layout_ database table due to [page layouts](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/developing-the-administration-using-portal-engine/editing-page-layouts.md) being simplified only for use with administration templates:
  - _LayoutThumbnailGUID_
  - _LayoutZoneCount_
  - _LayoutIsConvertible_
  - _LayoutIconClass_
- The following columns were removed from the _CMS\_PageTemplate_ database table due to [page templates](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/developing-the-administration-using-portal-engine/creating-portal-engine-templates.md) being simplified only for use within the administration interface:
  - _PageTemplateFile_
  - _PageTemplateIsReusable_
  - _PageTemplateShowAsMasterTemplate_
  - _PageTemplateInheritPageLevels_
  - _PageTemplateHeader_
  - _PageTemplateSiteID_
  - _PageTemplateForAllPages_
  - _PageTemplateIsAllowedForProductSection_
  - _PageTemplateInheritParentHeader_
  - _PageTemplateAllowInheritHeader_
  - _PageTemplateCloneAsAdHoc_
  - _PageTemplateNodeGUID_
  - _PageTemplateMasterPageTemplateID_
- The _WebPartDefaultConfiguration_ column was removed from the _CMS\_WebPart_ database table.
- The following columns were removed from the _CMS\_Widget_ database (the original [widgets](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/setting-up-widget-dashboards/creating-dashboard-widgets.md) can now only be used on administration dashboards):
  - _WidgetForGroup_
  - _WidgetForEditor_
  - _WidgetForUser_
  - _WidgetForDashboard_
  - _WidgetForInline_
- The following columns were removed from the _CMS\_Role_ database table due to dropped support for community groups:
  - _RoleGroupID_
  - _RoleIsGroupAdministrator_
- The _UserVisibility_ column was removed from the _CMS\_User_ database table.
- The following columns were removed from the _CMS\_UserSettings_ database table due to dropped Portal Engine functionality:
  - _UserPicture_
  - _UserPreferences_
  - _UserBadgeID_
  - _UserActivityPoints_
  - _UserForumPosts_
  - _UserBlogComments_
  - _UserMessageBoardPosts_
  - _WindowsLiveID_
  - _UserBlogPosts_
  - _UserUsedWebParts_
  - _UserUsedWidgets_
  - _UserFacebookID_
  - _UserLinkedInID_
  - _UserAvatarType_
- The following columns were removed from the _CMS\_SearchIndex_ database table due to updated [search index](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-locally-stored-search-indexes/creating-local-search-indexes.md) functionality:
  - _IndexIsCommunityGroup_
  - _IndexCrawlerUserName_
  - _IndexCrawlerFormsUserName_
  - _IndexCrawlerUserPassword_
  - _IndexCrawlerDomain_
- The following columns were modified in the _CMS\_Site_ database table due to dropped support for Portal Engine sites:
  - _SiteDefaultStylesheetID_ – removed
  - _SiteDefaultEditorStylesheet_ – removed
  - _SiteIsOffline_ – removed
  - _SiteOfflineRedirectURL_ – removed
  - _SiteOfflineMessage_ – removed
  - _SiteIsContentOnly_ – removed
  - _SitePresentationURL_ – no longer allows null values (modified to _not null_)
- The following columns were modified in the _CMS\_SiteDomainAlias_ database table due to dropped support for Portal Engine sites:
  - _SiteDomainDefaultAliasPath_ – removed
  - _SiteDomainRedirectUrl_ – removed
  - _SiteDomainAliasName_ – no longer allows null values (modified to _not null_)
- The following columns were removed from the _CMS\_Transformation_ database table ([transformations](https://docs.kentico.com/13/macro-expressions/writing-transformations-for-macros.md) are now only intended for use within macro expressions):
  - _TransformationIsHierarchical_
  - _TransformationHierarchicalXML_
  - _TransformationCSS_
  - _TransformationPreferredDocument_
- The _PersonalizationDocumentID_ column was removed from the _CMS\_Personalization_ database table.
- The following columns were removed from the _SharePoint\_SharePointConnection_ database table (the [SharePoint integration](https://docs.kentico.com/13/integrating-3rd-party-systems/integrating-sharepoint.md) now only supports SharePoint Online):

  - _SharePointConnectionAuthMode_
  - _SharePointConnectionSharePointVersion_
  - _SharePointConnectionDomain_

### Content management

- The following columns were removed from the _CMS\_Class_ database table due to updated [Page type](https://docs.kentico.com/13/developing-websites/defining-website-content-structure/managing-page-types.md) functionality:
  - _ClassEditingPageUrl_
  - _ClassListPageUrl_
  - _ClassViewPageUrl_
  - _ClassPreviewPageUrl_
  - _ClassNewPageUrl_
  - _ClassDefaultPageTemplateID_
  - _ClassPageTemplateCategoryID_
  - _ClassIsContentOnly_
- The following columns were removed from the _CMS\_Document_ database table due to dropped support for the Portal Engine development model:
  - _DocumentNamePage_
  - _DocumentUrlPath_
  - _DocumentShowInSiteMap_
  - _DocumentMenuItemHideInNavigation_
  - _DocumentMenuCaption_
  - _DocumentMenuStyle_
  - _DocumentMenuItemImage_
  - _DocumentMenuItemLeftImage_
  - _DocumentMenuItemRightImage_
  - _DocumentPageTemplateID_
  - _DocumentMenuJavascript_
  - _DocumentMenuRedirectUrl_
  - _DocumentUseNamePathForUrlPath_
  - _DocumentStylesheetID_
  - _DocumentMenuClass_
  - _DocumentMenuStyleHighlighted_
  - _DocumentMenuClassHighlighted_
  - _DocumentMenuItemImageHighlighted_
  - _DocumentMenuItemLeftImageHighlighted_
  - _DocumentMenuItemRightImageHighlighted_
  - _DocumentMenuItemInactive_
  - _DocumentExtensions_
  - _DocumentWildcardRule_
  - _DocumentWebParts_
  - _DocumentRatingValue_
  - _DocumentRatings_
  - _DocumentPriority_
  - _DocumentType_
  - _DocumentUseCustomExtensions_
  - _DocumentGroupWebParts_
  - _DocumentCheckedOutAutomatically_
  - _DocumentTrackConversionName_
  - _DocumentConversionValue_
  - _DocumentHash_
  - _DocumentLogVisitActivity_
  - _DocumentSitemapSettings_
  - _DocumentMenuRedirectToFirstChild_
  - _DocumentInheritsStylesheet_
- The following columns were removed from the _CMS\_Tree_ database table due to dropped support for the Portal Engine development model:
  - _NodeCacheMinutes_
  - _NodeDocType_
  - _NodeHeadTags_
  - _NodeBodyElementAttributes_
  - _NodeInheritPageLevels_
  - _RequiresSSL_
  - _NodeGroupID_
  - _NodeTemplateID_
  - _NodeTemplateForAllCultures_
  - _NodeInheritPageTemplate_
  - _NodeAllowCacheInFileSystem_
  - _NodeIsContentOnly_
  - _NodeBodyScripts_
- The following columns were removed from the _CMS\_VersionHistory_ database table:
  - _DocumentNamePath_
  - _VersionDocumentType_
  - _VersionMenuRedirectUrl_
- The _ScopeAllowABVariant_ column was removed from the _CMS\_DocumentTypeScope_ database table.
- The following columns were modified in the _CMS\_Form_ database table:
  - _FormDevelopmentModel_ – removed
  - _FormLogActivity_ – no longer allows null values (modified to _not null_)
- The _LibraryGroupID_ column was removed from the _Media\_Library_ database table due to dropped support for community groups.
- The size of the _AlternativeUrlUrl_ column in the _CMS\_AlternativeUrl_ database table was reduced from 450 to 400.
- The _TranslationServiceGenerateTargetTag_ column was removed from the _CMS\_TranslationService_ database table.

### On-line marketing

- The following database tables were removed:
  - _Analytics\_Conversion_ (conversions for [A/B testing](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/a-b-testing-pages.md) and [Campaigns](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/campaigns.md) use a different storage format and location)
  - _OM\_ABVariant_ (A/B testing variants for pages are now persisted in the _OM\_ABVariantData_ table)
  - _OM\_MVTCombination_ (multivariate testing is no longer supported in Xperience 13)
  - _OM\_MVTCombinationVariant_
  - _OM\_MVTest_
  - _OM\_MVTVariant_
  - _OM\_PersonalizationVariant_ (personalization variants were only stored for Portal Engine content, see [Content personalization](https://docs.kentico.com/13/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/content-personalization.md) to learn about personalization on MVC sites)
  - _Personas\_PersonaNode_ (assigning [personas](https://docs.kentico.com/13/on-line-marketing-features/managing-your-on-line-marketing-features/personas.md) to pages is no longer supported)
- The following columns were modified in the _Analytics\_ExitPages_ database table due to updated functionality for exit page logging:
  - _ExitPageNodeID_ – removed
  - _SessionIdentificator_ – renamed to _ExitPageSessionIdentifier_
- The _ActivityMVTCombinationName_ column was removed from the _OM\_Activity_ database table due to dropped support for multivariate testing.
- The _ActivityTypeIsHiddenInContentOnly_ column was removed from the _OM\_ActivityType_ database table due to dropped support for Portal Engine sites.
- The _ScoreBelongsToPersona_ column was removed from the _OM\_Score_ database table (the table contains a new _ScorePersonaID_ reference column instead).
- The _PersonaScoreID_ column was removed from the _Persona\_Persona_ database table.

### E-commerce

- The following columns were removed from the _COM\_SKU_ database table
  - _SKUConversionName_
  - _SKUConversionValue_

### Social & Community

- The following database tables were removed (the related community features are no longer supported in Xperience 13):
  - _Board\_Board_
  - _Board\_Message_
  - _Board\_Moderator_
  - _Board\_Role_
  - _Board\_Subscription_
  - _Community\_Group_
  - _Community\_GroupMember_
  - _Community\_GroupRolePermission_
  - _Community\_Invitation_
  - _Forums\_Attachment_
  - _Forums\_Forum_
  - _Forums\_ForumGroup_
  - _Forums\_ForumModerators_
  - _Forums\_ForumPost_
  - _Forums\_ForumRoles_
  - _Forums\_ForumSubscription_
  - _Forums\_UserFavorites_
  - _Chat\_InitiatedChatRequest_
  - _Chat\_Message_
  - _Chat\_Notification_
  - _Chat\_OnlineSupport_
  - _Chat\_OnlineUser_
  - _Chat\_PopupWindowSettings_
  - _Chat\_Room_
  - _Chat\_RoomUser_
  - _Chat\_SupportCannedResponse_
  - _Chat\_SupportTakenRoom_
  - _Chat\_User_
