Sitecore Personalize – Livin’ on the Edge

With the explosion of data being collected and consumed by IoT applications and devices along with our insatiable desire for near real-time feedback, has led to a shift in how we handle computing. Performing all the computation at data centers and/or cloud servers is not the most efficient approach as this increase in data consumption requires significantly more bandwidth which only increases latency. Edge computing, allows computation of data to remain much closer to the user rather than going through several network hops, for a cloud server to process the data and return a response. With this computation of data happening closer to the source not only is Edge more performant it is also considered more secure.

Users who have a personalized online experience and feel a connection with your brand are more likely to make a purchase and become loyal customers. However, a poor implementation that adversely impacts performance will have the opposite effect and drive potential customers away.

The probability of bounce increases 32% as page load time goes from 1 second to 3 seconds.

In this post, I will demonstrate how you can improve performance and user experience by moving personalization to the Edge with Nextjs Middleware and Sitecore Personalize using the Sitecore Commerce template created by Vercel. First I’ll show you how to personalize using visitors’ Geolocation to show summer or winter clothing collections.

Then we’ll personalize using guest information collected by Sitecore Personalize to display products from our men’s or women’s store.

Continue reading

Sitecore Demo Portal

If you’ve been involved recently with Sitecore on any client pitches for OrderCloud or CDP & Personalize then you would have seen Sitecore Sales engineers demonstrate the power of these applications running on the demo portal using the PLAY Summit. It has been made available to all Sitecore MVPs this week and allows you to quickly and easily spin up an environment and instance to easily demonstrate Sitecore products. For Partners you need to be onboarded via the partner team, you can contact your partner manager to get access.

If you’ve ever been involved in pre-sales then you know how much effort can go into standing up a demo Sitecore Solution to provide your Sales and Marketing teams with something that can be shown to potential new or existing clients.

The goal of the Portal and what the Sitecore Demo team have continually been striving towards – to simplify the process of spinning up a working Sitecore solution, allowing you to quickly demonstrate the main features with each new Sitecore release. It has to be said they’ve had their work cut out recently with all the recent acquisitions and new Products being added to Sitecore. But it has to be said this most recent incarnation of their demo solution and portal is their best work yet! It demonstrates how to spin up a ComposableDXP with Sitecore with a few clicks and some simple configuration. The portal will do its thing and you can review the progress or go make yourself a cuppa coffee and wait until you receive an email indicating your demo instance is ready in around 10-15mins. Awesome!

Taking it for a spin

I was fortunate to get early access to take it for a spin. If you’ve not already accessed the demo portal you’ll want to head over and sign in with your Sitecore Partner account. Once signed in you’ll be presented with the portal home screen which will list any current demo instances you’ve created:

As you can see here I have several demo instances available one for each of the demo templates that are currently available.

To spin up and new demo instance Select the Get a Demo menu option or click Quick Demo for a faster wizard-like experience.

Continue reading

A React Sitecore Personalize NPM module

The React Sitecore Personalize npm module is a wrapper for Sitecore CDP/Personalize Direct Client Script allowing you to easily add the script to react-based apps. The goal of this project is to make it even easier for those developers who might be new to React or Next.js and are learning how to integrate Sitecore Personalize by providing a simple wrapper for the direct client script. Allowing you to easily add the script to your projects and send events to Sitecore Personalize to track user behavior with just a few lines of code. The project is available on GitHub so please use it to help you get up-to-speed quickly, and contribute to the project if you have any suggestions for improvement.


npm install react-sitecore-personalize


yarn add react-sitecore-personalize

Continue reading

Utilizing the Sitecore CDP Blueprints Library

The Sitecore CDP Blueprints library created by the Sitecore team contains useful configurations and snippets. You can either use as a reference to help understand key concepts or adapt and use in your own implementations. Which can help you get up and running quicker with Sitecore CDP.

Web Experience Snippets

These snippets can be used to create web templates for your marketing team in their Web Experiences. Simply copy and paste the provided HTML, CSS, and JavaScript into the corresponding tabs when creating a new template.

The library contains the following examples:

Advanced Page Targeting Snippets

The following scripts can be used with your web experiences by copying the snippet into the Advanced Page Targeting block to ensure the web experience is only executed when the specific event occurs:

  • OnClick – Triggers the experience when user clicks the specified HTML element.
  • OnDelay – Triggers the experience after a delay.
  • OnExit – Triggers the experience when user moves their mouse out of the browser window.
  • OnHover – Triggers the experience when user moves their mouse over the specified HTML element.
  • OnScroll – Triggers the experience when the user has scrolled a certain percentage of the page.
  • SpaTargeting – This function can be used in Advanced Page Targeting to allow an experience to trigger on every virtual page load, rather than only on full page loads. It can be used along with other page targeting functions to trigger experiences after a delay or on hover over an element etc.

Decision Model Snippets

Most Viewed Page Decision Model – This decision model will get the most viewed page from your customer’s sessions and return relevant content for you to display.

Sitecore Personalize decision models enable users to model and run decisions using business rules. You can create reusable programmable decision templates using JavaScript for use within your models. The following are examples of programmable functions you might use as a decision template:

  • getNumberOfEvents – This function will return the number of events of the specified type in the provided session.
  • getTriggerEvent – This function will return the order that triggered the execution of the experience. This is for use in triggered experiences where the trigger is Custom Trigger.
  • getTriggerOrder – This function will return the order that triggered the execution of the experience. This is for use in triggered experiences where the trigger is Order Created or Order Updated.
  • getTriggerSession – This function will return the session that triggered the execution of the experience. This is for use in triggered experiences where the trigger is Session Closed or Abandoned Cart.

Audience Filter Snippets

Sitecore CDP allows you to target an audience in a triggered experiment and there are a few different ways you can achieve this. If you want to target a real-time audience you can apply JavaScript either via a reusable Audience template or direct JavaScript that can be added to the Experiment. The following JavaScript snippets are included in the library:


Thanks to the team at Sitecore for pulling this awesome collection of snippets together. They provide lots of insight and certainly help stir some creativity.

Have Fun!

Introduction to Sitecore CDP REST APIs and my Postman Collection

In this post, I will introduce the Sitecore CDP REST APIs and the postman collection I created for working with the APIs. I’m a huge fan of postman it’s an essential developer tool when it comes to working with a REST API.

Sitecore CDP does not currently provide a standard document like OpenAPI (swagger) for describing the APIs, which can be used to generate a postman collection. Therefore I’ve started a collection based on the Sitecore documentation and examples they’ve provided. The Sitecore docs are an excellent resource for developers, to help you understand the various APIs and attributes. I highly recommend checking these out as they are constantly evolving since the acquisition of Boxever.

My postman collection is available on GitHub as a json file. You can import it into Postman and use it when working with your own Sitecore CDP sandbox. I hope you find it useful, please share any feedback.

Continue reading

How to personalize your site with Sitecore CDP via Google Tag Manager

In a previous post, I’ve introduced Sitecore CDP with some tips and tricks to help you get started with this awesome platform. While there are a few different ways you can integrate Sitecore CDP with your site:

  • Direct client-side integration
  • Client-side integration via GTM (Google Tag Manager)
  • Server-side integration

I thought it would be helpful to demonstrate how to add CDP to the Next.js Commerce App via GTM. One of the benefits of this approach is it allows marketers to manage and deploy the CDP script to their site without having to modify the code. As the majority of sites already have GTM set up it should be relatively easy to add Sitecore CDP without getting the dev team involved. “Yey! we can do this ourselves, we don’t need any developers!” I hear you marketers holler!!

Now I’m not advocating you start adding scripts to your live site via GTM, as it does require some technical resources. Most marketing teams have analytic pros who understand the impact and risk of adding scripts and perform rigorous testing before publishing anything on a live site, to ensure there is no detrimental impact on performance or worse bring the entire site down. With great power comes great responsibility.

Continue reading

Sitecore CDP Tips and Tricks

Having recently completed the Sitecore CDP Developer Deep Dive training I discovered a few tips and tricks and wanted to share some learnings as you start to explore the platform for yourself. I hope you find this useful and maybe even save you some time.

Sitecore CDP actually consists of two products: Sitecore CDP & Sitecore Personalize. Depending on the client’s requirements they can opt to have either product or both. This will determine which features your client will have access to within the CDP platform.

Sitecore CDP

Sitecore Personalize

Sitecore CDP & Sitecore Personalize combined

User Interface

Having taken the free online Boxever training offered by Sitecore I was expecting the UI to be similar. However, it has since been rebranded and is now more Sitecore-esque.

As you can see from above the interval is simple yet intuitive with the various features easily accessible from the main navigation pane on the left. Here is a quick overview of those features accessible from the navigation pane:

  • Customer Data Tab
    • Guests – provides access to a list of guests including current online guests, with the most recent appearing first. The list is searchable to help you locate guests easily and view their profile. Note to search by the unique browser if assoicated with a visit you need to enter bid: Enter the browser id retrived from your browser assigned by CDP.
    • Segments – allows you build custom unified Segments which blend real-time behaviors and historical customer data.
    • Subscriptions Lists – list guests who have agreed to receive offers.
  • Experiences
    • Web – enables you to add Experiences to your website and monitor performance.
    • Full Stack – API driven Triggered and Interactive Experiences.
    • Flows – show Offers across multiple channels with Flows.
  • Experiments
    • Web – run AB Tests on your website. An experiment is essentially an A/B test of two or more variants.
    • Full Stack – run AB tests on API driven Triggered and Interactive Experiences.
  • Decisioning
    • Decision Models – add a decision model to recommend offers dynamically based on your business rules.
    • Decision Engines – deliver highly personalised content and offers to customers through business rules.
    • Offers – create Offer content that can be presented to a Guest in multiple channels.
  • Library
    • Web Templates – create reusable Marketer-friendly Web Templates for use in Web Experiences.
    • Audience Templates – create reusable Real-Time Audience Templates for use in Experiences.
    • Decision Templates – create reusable Decision Templates for use in Decision Models.
    • Flow Templates – a Flow Template defines configuration which will be used in a Flow.
    • Offer Templates – create Templates are Offer content.
  • Connections – allow you to create and manage connections to third party systems. These can be used for sending email or ingesting data.

NOTE: Experiences vs Experiments – there were a few occasions during the training when these two were mixed up. Experiments is A/B testing while Experiences allow you to design and implement user interactions and capture user data.

Continue reading