Introduction, New releases

Extending the Reach of your Sitecore Platform using the Federated Experience Manager.

The Customer Experience Management system landscape is incredible fragmented, covering amongst others content management, online customer service, e-commerce, campaign management, analytics and tracking, personalization, automation, social media, ad management, retargeting and many more, and most organisation have multiple systems in place – not only to handle different parts of the process, but often identical systems – like multiple CMS’s – to cover the same processes.

This scenario is not likely to change in the near future.

One of the newest features of the Sitecore Platform is the Federated Experience Manager, which can help connect a fragmented digital platform and make it possible to track and reach out to all visitors across all the owned channels in an organization.

Disconnected Platforms

Before joining Sitecore in 2014, I worked the last 14 years in a company called Pentia, based in Copenhagen, Denmark and since Pentia was the company from which Sitecore originally sprung in 2001, we were almost exclusively building Sitecore solutions for Danish and international customers.

Through the years, most of the clients I worked on aquired Sitecore as a major technological investment and as a new platform for driving their marketing efforts. So building or rebuilding their brand website, customer service website or e-commerce solution – and configuring the marketing tools – was almost always a major project for them.

When this is said, almost without exception, all would be stuck with one or more legacy websites or CMS systems following the migration or implementation project. This was not because the marketing division necessarily wanted it, but typically because the technical migration of their entire web platform would be too costly – or simply because Sitecore did not feel like the a good fit for a remaining systems.

So even though a lot of hours and smart people worked on implementing Sitecore and making the marketing platform better and giving the customers a better experience, it would often feel like we were working on a part that mattered very little.

Disconnected Experiences

We often saw that the legacy websites which were not converted to Sitecore was the e-commerce platforms, the direct customer service websites or the transaction websites. In other words, the websites actually giving the most value to the visitors – and often the organisation – and where the customer experience and visitor journey tracking was most vital to the success of the whole online platform, was being kept on legacy systems and technologies that were not allowing Sitecore to help marketing and customer service.

So the result was often a bad and very disconnected customer experience.

Seemingly simple things, like the visual design changing slightly from website to website, the overall flow or information architecture being bad or simply the content being wrong, not updated or just not assisting the customer towards the goal and the conversion. Furthermore the tracking and profiling capabilities of Sitecore was severely crippled, making the investment in personalization and optimization at best poor but often simply not worthwhile.

One platform, One Experience

Personally this was why I was rather excited when I first heard about the Federated Experience Manager a while ago.

By allowing Sitecore to reach out to non-Sitecore websites and applications and track visitor behaviour across these, we can start to see the entire visitor journey on the owned platforms and profile the users accordingly. But more importantly, we can start incorporating the legacy websites into the optimization effort, assisting the visitors on making those vital transactions, or start marketing our products or services on the websites where the visitor actually is, and not just where we would like them to be.

This will allow the marketing people to get even more control over all the digital channels – and ultimately make the investment in Sitecore and their new marketing platform much more valuable.

The Sitecore Federated Experience Manager

Sitecore Federated Experience Manager, FXM, will in short allow you to track the individual visitors across Sitecore and non-Sitecore websites using javascript tags – just like you know it from other analytics tools. This will allow you to use the standard Sitecore tools for goal tracking and visitor profiling. This mechanism is pretty much independent of technology, and FXM can even be used to track non-websites such as mobile apps.

But FXM will also allow you to push content from Sitecore to non-Sitecore websites and applications. This of course means that content can be maintained in one location within Sitecore and pushed across to other platforms. But potentially this can also be used to push theming and visual elements, to assure a unified user experience across all systems.

And since all content is managed and shared though the standard Sitecore mechanisms, we can leverage all Sitecores tools including personalization and A/B testing.

Finally FXM can be used to push data back to Sitecore too. This means that events and data from the external system can be sent across to Sitecore, and by leveraging Sitecores rules engine, we can trigger marketing events in Sitecore, for example engagement automation.

FXM is available for Sitecore 7.1 and forward on SDN.

Standard
New releases, Sitecore, xDB

Merging Visitor cookies in Sitecore CMS 7.5 and the Experience Database

Sitecore 7.5 hasn’t hit the streets yet, but as rumour has it, it will soon.

One of the highly anticipates features of Sitecore 7.5 is the ability to merge visitors across devices or cookies. This was something which had to be implemented specifically in the past, but will now be part of the platform.

How do I merge two visitors?

First of all, visitors in Sitecore 7.5 are no longer called visitors, but contacts. This is a part of a larger renaming scheme where e.g. visits (sessions) now are interactions and visitors are contacts. The renaming has consequences in the API, in that the DMS (which is now the Experience Database, xDB) API has had a major rework. Therefore expect a slightly harder upgrade path for those heavy DMS customized websites.

The key to merging contacts lies in identification. Two interactions on two different devices cannot be associated unless something common identifies them. This could be a login, an entered email address or something similar. It’s basically up to you to determine what and how to uniquely identify two contacts on two different interactions as being the same.

Sitecore.Analytics.Tracker.Current.Session.Identify(string key)

After you have determined the appropriate key to uniquely
identify a user, it’s as simple as calling the Identify method on the current interaction, ehh session? (Oops, apparently the rename hasn’t been done all consistently)

How does it work?

Using the new session handling mechanisms in Sitecore 7.5, Sitecore loads the contact associated with the current interactions cookie into session. The contact is then locked in shared session, making sure that two separate interactions will change the contact simultaneously.

  1. When calling Identify on the contact in the current interaction, any other contact identified with the same key is loaded using the LoadContactReadOnly in the ContactRepository class.
  2. The newly loaded contact is locked, making sure other interactions are not changing it.
  3. The current interaction is transferred onto the new contact, running the TransferSession pipeline
  4. MergeContacts is called, passing the current contact as “dying” and and the loaded as the “surviving”
  5. The MergeContacts pipeline is triggered, which in turn merges tags, counters, automation states, attributes and facets on the contacts.
  6. The new merged contact is now the active contact in the interaction and tracking will continue on this across multiple devices.

Things to keep in mind:

  • Sitecore 7.5 introduces new terms for the Analytics API
  • Expect a development effort when upgrading – dependant on the level of analytics use
  • In Sitecore 7.5, the platform will be able to merge visitors automatically
  • Nothing comes for free – you will have to determine how to uniquely identify contacts, and call the appropriate method
  • All steps of the actual merge is configurable using pipelines

See Nicks posts on 7.5 for a more in-depth walk through:
http://www.techphoria414.com/Blog/2014/June/Copy_of_One_Month_with_Sitecore_7-5_Part_3

Standard
New releases, publishing, Sitecore, Uncategorized

Dedicated image server in Sitecore – part 2

I have earlier blogged about setting up a dedicated image server for Sitecore here. The implementation required some customization of the LinkProvider, but from Sitecore 6.3 it is possible to achieve the same just using configuration.

A dedicated media server can be used to serve media on a separate URL, so that you can optimize performance due to limitations on the amount of connections the browser can open to the domain, which I also described in the last post. Further it can be used to optimize your server for handling media and supporting a CDN.

As mentioned it is now possible to have a separate server for media by configuration. In this scenario you might have a dedicated publishing target for media, and this should just be a standard Sitecore installation, which then only handles media by directing the DNS for your image URL to this server. For instance I have setup three Sitecore installations – one as a content manager server, one as the dedicated image server and one as content delivery server. The domain for my content management server is http://sitecore63/, the one for my image server is http://sitecore63imageserver/ and the content delivery server has the domain http://sitecore63cd/. What I then want to achieve is:

  1. That my content management server serves images in the normal way, so that the editors can insert, alter and preview images without having to publish.
  2. On my content delivery servers I want my images to be served by the image server.

The first goal is easy. I just leave every configuration to the standard. This means that the content management server serves media itself.
The second goal requires some configuration changes. On the content delivery servers I must make all media references point to the image server. This can be done by setting the Media.MediaLinkPrefix in the web.config to the domain name of the image server plus the media prefix I want. For instance like this:

<setting name=”Media.MediaLinkPrefix” value=”http://sitecore63imageserver/~/media/” />

This means that all media items on the content delivery server(s) will be prefixed with the above url:

<img width=”128″ height=”128″ alt=”” src=”http://sitecore63imageserver/~/media/Images/user.ashx?w=128&amp;h=128&amp;as=1“>

So in this scenario the html is delivered by http://sitecore63cd and the image is served by http://sitecore63imageserver. In the content management environment, the media is served locally. Now this is a lot easier, than the customization you needed in older versions of Sitecore.

dedicated image server in sitecore

If you want another media prefix then the standard /~/media, you also need to make the media server handle these requests as media. This is done by adding the prefix to the <mediaPrefix> element in the web.config and add the prefix to the customHandlers section in the web.config.

Standard
New releases, Sitecore

Sitecore Rocks – preview the future of Sitecore development

Something really cool happened today!

A new tool called Sitecore Rocks has been released in a CTP (Community Technology Preview) version – a early sneak peek. The tool, although a little rough around the edges, really shows a bright new future for Sitecore development, a future where we as developers do not need to muck about with browsers interfaces, only to connect our code, .NET pages and user controls into Sitecore. Now we can stay within in the tool we use and like, Visual Studio.

Together with the Team Development for Sitecore module from Hedgehog, this tool looks to be a must-have in the Sitecore developer toolbox.

In short, Sitecore Rocks is a Sitecore editing environment in Visual Studio. The environment naturally does not contain the complete set of features of the Sitecore content editor, but is focused on the features we as developers use. This includes for example:

  • Quick and easy navigation in the content tree and on the item editor.
  • Multi-item editing.
  • Linking Visual Studio project to Sitecore, and automatic creating of layout related items in Sitecore from your .NET files.
  • Live Sitecore log viewer.
  • Job viewer allowing you to examine running tasks in Sitecore.
  • Edit rich text fields in Visual Studio HTML editor/designer.
  • Easy interface for layout management.

You can watch a video of Lars Fløe Nielsen presenting some of the Sitecore Rocks features here.

In my view, the tool is very nice and definitely a vision of what’s in store for us as developers, but the tool is still in the early phase and still has a lot of unused potential. Personally I feel that one of the most promising features is the ability for everybody to extend the functionality, and hopefully this will create a flood of shared source plug-ins with really useful features. Of the top of my head, I can mention countless possibilities, so drop a comment if you have a lot of time on your hands 🙂

The tool is available through the Visual Studio 2010 Extension Managers Online Gallery – just open it up in Visual Studio and search for “Sitecore” – or download Sitecore Rocks from the MSDN:

Standard
New releases, Sitecore, Uncategorized

What TODO – in Sitecore 6.3

Sitecore 6.3 was recently released. A lot of great improvements was included in this version – for instance support for multiple backend web servers and Windows Azure support. Read more about it in Marco Tana’s blog post and read more about the event queue on Adam Conn’s blog.

Besides these new features  a huge amount of bug fixes has been included. Some of them quite important; some of them quite funny…

Almost two years ago I wrote the blog post What TODO? In short I described the somewhat weird way of marking TODO’s by the kernel develepors at Sitecore. Well guess what… In Sitecore 6.3 they thought they would finaly do something about it. It has now…. been marked as obsolete (?!).

“The Sitecore.Todo class has been marked as obsolete. (323278)”

I must admit it made me laugh again. Why not just remove it, when you decide to do something about it?

Standard
IndexViewer, Lucene, New releases, Sitecore

Sitecore Lucene index viewer 1.2 released

Last week I was contacted by the Sitecore Shared Source coordinator Jimmie Overby and he told me that a guy in the Sitecore Ukraine office had made some changes to the Sitecore Lucene IndexViewer, I released some time ago. At first I was a bit sceptic about it, so I asked to review the code changes and see the new functionality. So I installed the new package and looked through the code, and I discovered that the Sitecore Ukranian Vyacheslav Tronko (don’t ask me to pronounce it:)) had done a fantastic job!

Not only had he added some very nice features but he had rewritten some of the code so the application is more stable and extendable. So I really appreciate his work!

The new features are:

  • Possibility to browse indexes defined in the new search section in the web.config
  • Rebuild indexes through the IndexViewer (which is really nice, as you can’t rebuild the new type of indexes any other way)
  • Optimize indexes.
  • Improved usability and look-and-feel of the application

So go take a look at the changes at http://trac.sitecore.net/IndexViewer 

If you want to see some screenshots of the new features, take a look here

What I would like to add next, is extended search functionality.

Standard
New releases, podcast, Sitecore

Sitecore podcast launched

Over at Learn Sitecore my coworker Jimmi Lyhne Andersen and I have just launched a brand new Sitecore podcast. Hopefully you will all like it and hopefully it will bring more article contributors to Learn Sitecore.

In the first episode we interview Sitecore CTO John West. We talk about Dreamcore and Sitecore in general. Check it out at: http://learnsitecore.cmsuniverse.net/en/podcasts.aspx

Enjoy!

Standard