Sitecore 10.4: A Comprehensive Overview

A comprehensive look at the new features and changes in Sitecore 10.4

Introducing Sitecore 10.4

By my count its been 16 months since Sitecore 10.3 came out. It was a great release. In the interim there was a lot of focus on Sitecore XM Cloud but now we’re getting back to it with Sitecore 10.4. A new release that gives over 200 improvements, increases accessibility compliance and introduced an innovative approaches for connecting marketing data.

I’ve done some digging. Let’s see what this release has in store for us!

Sitecore’s Commitment to Long Term Support

While Sitecore is innovating with their SaaS-based XM Cloud platform, with this 10.4 release Sitecore is essentially renewing its vows with its long-time Sitecore XP and XM customers. Here is what the support window looks like for this release.

  • Mainstream Support: Until December 31, 2027
  • Extended Support: Until December 31, 2030
  • Available Support: Until December 21, 2034

They have also announced that Sitecore 10.5 is tentatively scheduled for a release in early 2025.

Key Features in Sitecore 10.4

Here are the key features we’ll be getting into:

Improved Personalization Capabilities & Sitecore Connect

With Sitecore we’re always looking to deliver the most engagement experiences possible. At the core of that is leveraging data to drive our customer experiences and Sitecore 10.4 introduces a number of powerful new possibilities.

Sitecore Connect Connector for xConnect, Extending Marketing Automation

If you’re unfamiliar with Sitecore Connect it’s a low-code / no-code integration platform that allows users create automations between nearly anything - including marketing platforms.

The big news - xConnect data is now available in Sitecore Connect.

Screenshot of Sitecore's Connect community library with various integration connectors and categories displayed.

To be clear, Sitecore Connect is a separate product but an extremely powerful part of their modern stack.

This will allow you to listen to the marketing data Sitecore is collecting and create recipes to send it to other platforms.

For example:

  • A customer (a “Contact”) triggers a goal.
  • When the contact is saved, Sitecore Connect retrieves the contact information.
  • Sitecore Connect then updates the record in Snowflake (enterprise data warehousing), updates the contact data in Salesforce, posts a message to your team Slack channel.

With the xConnect connector, Sitecore Connect can really extend the reach your Sitecore-based insights.

Triggering Campaigns and Goals With Rules

You can now create site-wide rules to trigger goals (and campaigns). Instead of assigning goals to specific pages, you can set multi-level rules involving page visits, page location, page hierarchy to trigger goals.

Add Facets to xDB Without Code

This is referenced later in this article as module, but it’s important to mention it under personalization as well. This will allow users to add custom fields to contacts without a developer, allowing marketers to evolve their contacts with the same ease as their CRM.

Accessibility Support

Sitecore aligned with the W3C ARIA Authoring Practices Guide and delivered advanced keyboard-based navigation in the Content Editor. You can use via keyboard to accomplish most any tasks including navigating the menu ribbons, accessing items in the tree, expanding and collapsing segments and editing content in the fields.

Keyboard navigation is also not simply for accessibility, but is useful for overall productivity.

Screenshot of Sitecore content editor interface with various menu options and a content editing form.

I’ve recorded this video, showing the keyboard navigation in use. You can see the highlighting of elements and the ability to leverage common keyboard practices to work around the interface.

Modules for Migrations & Upgrades, a New Approach

It has been said that Sitecore is switching to a more module-based approach to add value to the ecosystem. This has a number benefits:

  • Enhancements are not tied to product release cycles
  • Sitecore can release modules of varying complexities
  • Sitecore has a dedicated method to deliver solutions to customer problems
  • Sitecore can develop solutions that live outside of the products, allowing more flexibility and ease of development

Here are the modules being discussed in relation to this release (though not directly tied to it).

XM to XM Cloud Content Migration Tool

The XM Cloud Content Migration tool comes in two flavors - command-line and graphical user interface. The tool is used to migrate content, media & users from Sitecore 10.1 or later into an XM Cloud instance.

It does not migrate or convert your renderings and code. Nor does it migrate your xDB data (which makes sense because XM Cloud doesn’t have xConnect).

Here is a look at the first few screens to understand the data it requires.

Welcome screen of the Sitecore XM Cloud Migration Assistant detailing options for content, media, and user migration.

In this version Azure PaaS is not selectable. It is nice to see that its support is planned.

Configuration screen for migrating to Sitecore XM Cloud showing fields for environment details.

The next screen targets a local Sitecore instance and web server.

Configuration screen for Sitecore XM on-premise source settings with fields for base URLs and credentials.

The next screen requires details of the target XM Cloud instance.

Access the XM Cloud Content Migration Tool here.

xDB to CDP Migration Tool

The xDB to CDP Migration tool migrates xDB contacts into Sitecore CDP by leveraging Sitecore Connect. If you are unfamiliar with it please read our overview of Sitecore Connect.

This tool actually consists of a series recipes for Sitecore Connect, leveraging the Sitecore Connects connector to Sitecore xDB (referenced earlier in the article) & Sitecore CDP.Diagram showing data flow between Experience Platform, Connect, and CDP in Sitecore.

It’s a perfect, clever use-case for Sitecore Connect.

If you have customized your contacts in xDB with custom facets, you’ll need to modify the recipes to include mappings for values between xConnect and CDP. Understandably, out of the box it migrates only the out of the box contact fields in xDB.

Access the xDB to CDP Migration Tool here.

Codeless Schema Extension

As of writing this article, this low-code method of extending for contacts schema with facets in xDB is not available quite yet. It’s scheduled for mid-May.

Previously adding custom facets to contacts inside of xConnect was code-intensive process. It will nice to give marketers (or even developers) a low-code tool to extend contacts to include the latest information that we want to capture.

Sitecore Experience Accelerator / SXA 10.4

Sitecore Experience Accelerator (SXA) has a new release with version 10.4. As you may know, SXA versioning was updated to align with Sitecore versions. In recent years SXA has been the foundation of a strong Sitecore implementation and is fundamental to XM Cloud.

Here are the major highlights:

  • Support for the Tailwind Grid inside of components. I feel that only truly advanced authors should ever be playing with grids - but alas. Tailwind is a powerful CSS library and it’s great to see Sitecore support it.
  • Specify non-content sites as internal to prevent publishing to Experience Edge. Under Settings/Site Groupings/SiteName you can add an isInternal=true property to keep your sites hidden from GraphQL queries against Edge.
  • Managed language embedding codes in your Sitemap URLs. See link provider implementation details.
  • Show or hide renderings in the Experience Editor toolbox by page template. Under Settings/Component Configuration you can insert new items to control which components are accessible on what templates. I love this feature.

Sitecore Headless Services 22.x

We’d always recommend leveraging SXA and Headless Services (also called Sitecore JavaScript Rendering SDK or JSS) whenever possible. Let’s look at the major highlights:

  • Next.js 14 is used by default. The JSS samples applications now use Next.js 14. There of course updates to the React packages and a noted rename of JSS_APP_NAME to SITECORE_SITE_NAME.
  • Component-level functions include client-side data in development mode, but not in production. This applies to getStaticProps and getServerSideProps **functions.**
  • Retry strategies for Experience Edge requests. With GraphQL requests to Experience Edge being rate-limited at 80 requests/second, large sites can exceed these rate when using SSG. This provides an approach that won’t break the build.
  • Guide for Netlify and Next.js hosting. I feel that majority of sites are hosted on Vercel, but Sitecore is showing some love for Netlify as well.

Enhancements, Performance and Security Improvements

Sitecore has also advertised over 200 further enhancements & fixes to the platform as part of this release. Here are a few that have grabbed my interest.

Add Custom Languages Directly in Sitecore

You can now add custom, non ISO language-region pairings directly in Sitecore at the application-level without having languages registered at the operating system level and in .NET. This allows for designations like en-eu or es-ca and provides more flexibility in addressing global markets.

In Azure PaaS languages cannot be added at the operating system level. They can be added in a standard virtual machines. This has previously made it impossible to modernize your website into Azure PaaS (and potentially XM Cloud) if you were using non-standard language-region pairs.

This limitation is not obvious and trying to work around it has taken years off my life. This is wonderful for large organizations. Thank you Sitecore for including this.

Other Changes

  • A new security role Sitecore Client Content Reader has been added which will enforce read-only access to the content tree and media library items.
  • Currently Sitecore 10.4 only supports LTSC2022-based containers. LTSC2019 support will be coming soon.
  • You now have the option to apply a datasource workflow action to the item, its direct children, or all of its descendants. Previously, this action could only be applied to the item itself.
  • In SXA the term Tenant has been renamed Site Collection.
  • Multi-language support for configured 500 pages in SXA.
  • TemplateName is now added to webhook requests, allowing us to respond uniquely by template.

Final Thoughts on Sitecore 10.4

Sitecore 10.4 is an impressive release with numerous enhancements and upgrades across the platform, making it one of the most stable releases and an excellent foundation for migrations. If you're currently on 10.3, an upgrade might not be necessary. However, if you're on 10.2 or earlier, the benefits of upgrading to a version that fully supports Headless SXA (introduced in 10.3), along with these other enhancements, put an organization in a strong position for the future.

The expansion of Sitecore Connect with the xConnect integration signals an interesting evolution. It allows a hybrid model of flexibility and composability while still operating within the traditional Sitecore XP & XM world.

Looking for help with your upgrade? Please drop me a line or connect with me on LinkedIn.

Thanks for reading!

Meet Dan Cruickshank

President | Sitecore MVP x 11

Dan is the founder of Fishtank. He's a multi-time Sitecore MVP and Coveo MVP award winner. Outside of technology, he is widely considered to be a top 3 father (routinely receiving "Father of the Year" accolades from his family) and past his prime on the basketball court.

Connect with Dan