Skip to main content


Understanding Web and Full Stack Experiences in Sitecore Personalize

Istock 1194430859

Vocabulary is important when trying to understand a new product. Understanding Sitecore Personalize requires understanding its vocabulary. When you start digging in you’ll note that both “Web Experiences” and “Web Experiments” have both “Web” and “Full Stack” Options.

Sitecore Personalize Types

While the big difference between “Experiences” and “Experiments” is the additional setup needed to properly evaluate the results and compare variants, the way “Web” and “Full Stack” work are largely the same. And since “Full Stack” allows for both “Triggered” and “Interactive” experience types, that means there are really three types of “Experiences” you can setup and use.

Web Experiences

Web experiences are probably what you think of when you think of how AB Testing and Personalization work in Sitecore Personalize. These give you the ability to inject configurable “Web Templates” into pages of your website.

Web Templates can be created in the library and shared across experiments and experiences. They need to be setup by a developer to make it easy for a marketer to replace images, text and other aspects of the markup, CSS and JavaScript.

Sitecore Personalize Web Template

A developer makes things configurable by defining marketer friendly parameters using the template parameter syntax as follows:

"[[parameter_name | type | default_value | {config1: value1, config2: value2 } ]]"

This can be used not only in the HTML markup, but in the CSS and JavaScript tabs, allowing you to provide a lot of flexibility to marketers to configure how the content will look and behave.

Sitecore Personalize Web Experience Properties

Your experience or experiment configuration will determine when and on what pages your template will be executed.

Triggered Experiences

Triggered experiences are designed to react to something happening. Whether it’s an event that is raised on the web site like a “Goal” being fired, the Session ending, A cart being abandoned, or any other custom event you manually raise in JavaScript. It could also be triggered from other sources when pushing data into Personalize or CDP using streaming or other API’s.

When Sitecore Personalize detects that an event has been fired, a Triggered experience can make a call to a third party api or web hook sending custom data as needed to have it do something. This could be like calling an API to send an email, or Text message or to a backend system.

In order to do this, first you need to define a “Connection.” Connections tell Sitecore personalize where and how to send data. They can be Data Systems (Bi-directional), AI Models or Destinations.

Sitecore Personalize Connection Types

For triggers, a destination type is most appropriate as there’s no real need to map the results back to anything being returned from the API.  To configure the endpoint, there is a five step wizard where you can specify the endpoint, action (Post or Put), headers and “test” sending a sample request body.

Sitecore Personalize Destination Connection

Then in a triggered experience, you can map the fields in your request body to information you know about the current visitor, parameterizing their email and name and other fields that you are tracking.

Sitecore Personalize Triggered Experience

On the Headers tab, you can confirm which connection to use and map any additional headers as needed. Then when your trigger is fired, Sitecore Personalize will generate the API payload based on your configured Freemarker template and then send it to the configured connection to allow it to send an email, text or anything else you want it to do when the experience is triggered.

Interactive Experiences

The term “Interactive” is actually pretty confusing. It really should be called “API Experiences”, because that’s really what it is. It allows you to use Sitecore Personalize to return variants of Json Payloads to a calling application. In order to actually run an “Interactive” experience or experiment, you need to call the Sitecore Personalize API, get the resulting Json data and do something with it.

Sitecore Personalize Calling Interactive Experience

This has obvious applicability to mobile apps, where you could use this to determine what content or configuration to use for rendering native components. It can also come in handy if you’re leveraging a front end framework like React or Angular and rather be fed Json data then have a Web Template be injected after the fact.

Freemarker, the templating language allows you to access guest data, data from decision models and more when composing the Json that will be returned from your API variant.

Interactive Experience Api Editor

Using this approach, you can design your “Interactive” experience to produce the exact Json you need and populate it with user data from the session or CDP if you’re leveraging it pretty easily. You can even feed additional parameters when calling the “experience” that can be used when putting the Json together programmatically, giving you even more flexibility to provide data.

Wrapping Up

Sitecore personalize gives you the ability to define three types of experiences: “Web Experience”, “Triggered Experience” and “Interactive Experience,” with the latter two types being grouped in the “Full Stack” Category. All three types can be implemented alone or as an experiment, which allows you to tie things to performance goals and evaluate effectiveness more easily.

While you’ll need development support to setup all three types of experiences, Web Experiences and their Web templates allow developers to make things parameterized such that a marketer can use a template without needing to be in the weeds of the markup, CSS and JavaScript.

For triggered experiences you’ll need a developer to setup the connection, the payload/headers and trigger the events/goals that will trigger that experience.

For interactive experiences, you’re really defining a custom object that will be returned to a calling application that can use that payload however it likes.

Hopefully that helps clear up confusion about what each experience type is and how it can be used. Keep in mind this only scratches the surface of what you can do with each of these types of experiences. Integrating Decision Models, data from CDP and other sources can provide very powerful options for creating very targeted experiences and results.

If you’re interested in getting started with Sitecore Personalize, We’d love to help. Reach out to me on LinkedIn, Twitter or fill out our contact form.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

David San Filippo, Principal

David is the Prinicpal of the Sitecore and Optimizely practice at Perficient, David estimates, architects and delivers digital marketing solutions at scale on the Sitecore Platform. A 4X Sitecore Technology MVP, David has written articles for MSDN Magazine and the Microsoft Architecture Journal. He has spoken at Sitecore Symposium, Sitecore Virtual Developer Day, user group meetings and code camps.

More from this Author

Follow Us