SUGCON 2017 – My Highlights

I had the most fortunate opportunity to fly over from the US to Amsterdam to attend SUGCON 2017 (Thank you Verndale!). Wow, do the Dutch and Danes put on a great conference!  Although I’m still curious about whole walnuts and the shot of juice? served in the late afternoon on the last day, I learned a boatload about Sitecore and upcoming hot topics.  Here’s a summary of some of the sessions that I attended:


Lars Nielson and Pieter Brinkman opened the conference with some inspiring words and asking us all to push the boundaries of Sitecore.

OData Content API

There was talk on Sitecore Services Client and its OData Content API; consolidate and reduce the number of technologies (and security risks) to handle HTTP calls.

SXA overview and HoloLens and Robbie and Alexa


We were given a demo on how quickly SXA can be used to spin up a website; in this case, a website that visually shows all user groups throughout the world, on a map.  But that’s not all … how about throwing in some HoloLens integration and Sitecore Cloud and the map becomes a globe and the globe can be spun, user groups can be chosen and opened for more detail.  Next, let’s add a connection (via a JSON Sitecore device) to a robot named Robbie and integrate it with Amazon’s Alexa … “Alexa, Ask Sitecore to find all user group events.”

What else?  Well, Robbie can see things; Robbie can see your face … Robbie has learned how to read emotions via facial recognition.  The future says to set up Sitecore personalization based on the user’s emotion.  Cool.

This spawned possible answers to questions like:

  • What factors are driving desirable behavior most strongly?
  • How can we prevent the loss of existing customers?
  • What audience behavioral segments are we unaware of? We could target them, or banish them.
  • Can we optimize the sequence of tactics in our lead nurturing program?
  • Can we automate up-selling and cross-selling?
  • Can we make our content authoring processes more efficient?

Sitecore Integration with Microsoft Cognitive Services


This is the session I was most excited about.  Back in March, for the Sitecore Hackathon, our group used Data Exchange Framework to tap into Microsoft Cognitive Services and pull in tags for images.  It wasn’t until after we were done that I learned that Mark Stiles had already been hard at work creating a layer to easily integrate Sitecore and these services … and he presented its possibilities at the conference.

Within his “Sitecore Cognitive Services,” there are three bits of functionality: the Bot Framework, Sitecore Cognitive Services Service, and the Sitecore Cognitive Services module.

The Bot Framework is machine learning at its best.  Program a chatbot to gradually learn how to properly respond to your customers questions.

The Service is a fast way to integrate your website with the plethora of features Microsoft Cognitive Services offers, like Computer Vision, Emotion Recognition, Facial Analysis,  Video Analysis, even Speech Analysis.  There’s so much to tap into.

The Module is taking this a step further and integrating all of this into the Sitecore Admin.  Faceted image searches, textual analysis of text within images, facial analysis of people within Sitecore images.  Yes, machine-generate the alt text for your images, recognize if an image is too, ahem, adult, what colors are used in the image?

The possibilities seem endless.  By the way, Mark hasn’t tapped into all of the possible Microsoft Cognitive Services functionality; if you’re interested in helping out, contact him.

xDB Contacts and Concurrency Control

Ohhhh … lots of yummy take-aways from this session as well.

For instance, did you know that there are four sets of APIs for accessing the xDB contact data? … which is in a number of locations/states, I may add …

  • Tracker.Current.Contact (in-memory)
  • ContactRepository (access the data in the Collection database)
  • SharedSessionStateManager (access the data in the Shared Session database)
  • ContactManager (utilize both the ContactRepository and SharedSessionStateManager)

Dmytro Shevchenko also discussed the need for a shared session (i.e. for being able to maintain a single contact from interactions coming from multiple private sessions).

A great illustration offered was the summary of Contact Lock stages.

contact lock states

In the initial state, the latest Contact data exists in the Collection database.

When the Session starts, the Contact is locked in the Collection database and copied and loaded  (and unlocked) in the Shared Session database.

On Page Request, the Contact is still locked in the Collection database, and also locked in the Shared Session database but loaded into the Tracker API at this time.

When the Page Request ends, the Contact is removed from the Tracker, it is saved and unlocked in the Shared Session database, and still locked (and not updated) in the Collection database.

At the end of the session, the Contact is no longer available in the Shared Session (of course) and is saved and unlocked in the Collection database.

Well, that’s my summary of highlights from Day 1.  I’ll be posting Day 2 highlights after my extended trip to Paris.