SUGCON 2018 Presentation – A Developer Pays their Debts

Earlier in the year I was fortunate enough to be selected to present at Sitecore User Group Conference, SUGCON.

I presented with Wesley Lomax on the thinking, approach, and execution of how we solved the technical debt in a multi-million pound Sitecore implementation.

Continue reading

Sitecore – Pay your technical debts and move to Helix

At a recent Sitecore UK User Group Wesley Lomax and I presented on how to resolve technical debts in Sitecore implementations. With the release of the Helix principles last year a lot of preexisting Sitecore implementations are now facing the challenge of moving to these principles but are hindered by a load of technical debt.

For enterprise level implementations, it’s going to feel like an insurmountable challenge –  refactoring and correcting a colossal codebase and it’s Information Architecture (IA). It’s all probably been in development for years by multiple developers with multiple design patterns. On top of that add technical and business constraints, maintaining Business-as-usual, and still delivering projects? Fixing and updating legacy implementation soon seems like an impossible task.

I recently moved from agency to client-side this year and I have tackled this exact problem so I wanted to share some of my experiences to help others out.

Continue reading

Index custom xDB Facets to Segment Contacts in Sitecore’s List Manager

It’s a new year! And fresh from a short break from the blog, to focus on presenting at the xDB training course in New Orleans and Sitecore User Group in Cardiff, I’m back. So let’s get to it!

I talk a lot about the value of extending xDB to store data relevant to the client and how to surface that data for Content Editors to use. I now want to cover how to use that data on a grand scale. From accessing that data for all your contacts in a performant way. Then using that data to create lists of similar contacts based on their interactions. Finally allowing you to target groups of individuals with relevant email communications, via EXM, or synchronize with a CRM (more on that in a future blog).

Continue reading

Gated Content Sitecore Module

Quite a few of the clients I have worked with lately have asked about implementing Gated Content. Not Gated Pages – preventing access to pages requiring an account and roles but gated areas on an actual page. Essentially requiring a site visitor to give up some information about themselves before gaining access to some content.

This actually a good thing in Sitecore because we can request the visitor’s email address so that we can identify them in xDB. Meaning more and more of our Site visitors will be uniquely identified, tracked and ultimately targeted with personalised experiences.

Continue reading

Display the Context of a Sitecore Goal in the Experience Profile

For a while now I’ve been writing about collecting and displaying data unique to a client in Sitecore’s Experience Profile. What went hand in hand with that is the use of Sitecore Goals and Outcomes – giving a business value, sometimes monetary, to actions performed on the site. The Experience Profile currently shows the goals for each Contact.

However, beyond the goal being registered we don’t know the context in which the goal was met. Wouldn’t it be great if we knew WHAT was added to the basket when the ‘Add to Basket’ goal was registered?

Continue reading

Extending Sitecore Experience Profile – The SPEAK App

Part 2 – The Experience Profile App

Sitecore’s Experience Profile shows a detailed breakdown of each Contact (visitor of the site) and is built using Sitecore’s SPEAK, so to modify the app it we are going need to use the Sitecore Rocks Visual Studio Extension. To refresh, here is an overview of what we’re trying to achieve.

We’re going to create a new Tab on the Experience Profile App for our Interaction Facet we built previously, the Tab will show the actions the User has completed on the site which are unique to the client. Within that Tab we have a collection of Sub Tabs, one for each Element of the Facet, e.g. Sample Orders, Videos Played etc. Then each Sub Tab has a Panel to display the data.

Continue reading

Extending Sitecore’s Experience Profile – The Pipelines

Part 1 – ExperienceProfileContactViews Pipeline

I’ve been writing this series on Sitecore xDB, Contacts and the Experience Profile for a while now. I’ve been covering how to identify Contacts for Sitecore’s Experience Database (xDB) and how to extend xDB so it can hold custom data.

This time I’m going to explain how to surface that useful BIG DATA you extended xDB to hold so that it is accessible to Content Editors. This is a large topic so I’ll be splitting it between two posts, this first part will focus on the ExperienceProfileContactViewsPipeline which retrieves the data in a format that the Experience Profile can use.

It’s worth noting that I figured most of this out by just jumping into it, decompiling code and a reasonable amount trial and error. Just take that into consideration 🙂

Continue reading