Now that Sitecore 9.0 has been out in the wild for a while, and after having spent time with both it and xConnect, I thought I’d create a post to round-up some things of note.

Sitecore 9.0

First, just to touch on Sitecore 9.0 in general. There are already some great resources available, created by Sitecore and the community to get you up to speed:

Installations in Sitecore 9.0 have become a little more complicated, and there’s a bit more to get used to, especially when it comes to setting up your own development environment. The following blog posts provide some good pointers and scripts to get you going faster:

SOLR is essentially a prerequisite for Sitecore now. If you have only been using Lucene so far, I would strongly recommend you investigate SOLR and move towards it as the norm for your projects. Fortunately, with the introduction of SIF and the new configuration roles, switching over to SOLR is much simpler than in previous versions of Sitecore.

Introducing xConnect

xConnect is a brand new concept for Sitecore 9.0, and as such you’ll want to make sure you’re up to speed on it. Rather than go into detail here on what it is and what you need to know, there are already some really good resources that have been written that I can point you to.

First off, there is the official documentation for xConnect, which is chock-full of examples and guidance, so shouldn’t be overlooked.

Next, my man Jason Wilkerson, aka longhorntaco, has created a fantastic series of blog posts introducing xConnect and also provides sample code for getting your first xConnect client running and pushing interactions into xDb. All the example code is included on GitHub too, nice!

Known xConnect issues

Interactions bug

There is currently an outstanding bug relating to tracking interactions from a non-Sitecore xConnect client. When these interactions are added to a contact, they will then cause an error to be shown when the Experience Profile is used to view that contact:

Along with seeing this error, you’ll also have the following error logged:

15516 18:30:09 ERROR Object reference not set to an instance of an object.
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
Source: Sitecore.Cintel
at Sitecore.Cintel.Reporting.ReportingServerDatasource.Visits.GetVisitsWithLocations.FillTableWithRow(DataTable rawTable, Interaction curInteraction, Int32 index)
at Sitecore.Cintel.Reporting.ReportingServerDatasource.Visits.GetVisitsWithLocations.GetTableFromContactXconnect(DataTable rawTable, Guid contactID, Nullable`1 interactionID)
at Sitecore.Cintel.Reporting.ReportingServerDatasource.Visits.GetVisitsWithLocations.Process(ReportProcessorArgs args)
at (Object , Object[] )
at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at Sitecore.Cintel.Reporting.PipelineViewProvider.GenerateContactView(ViewParameters viewParameters)
at Sitecore.Cintel.Endpoint.IntelController.Get(ViewParameters viewParams, Guid contactId, String viewId, String id)

The issue occurs due to the interactions from an xConnect client not supplying all of the facets that a typical web visit interaction does, such as User Agent + IP info. The code that executes within the Experience Profile to render visit data expects these facets to be populated.

This issue is already known to Sitecore, and is listed on the Sitecore 9.0 Known Issues page:

The Experience Profile currently only supports website visit interactions. As a result, if an interaction does not fully populate the facets required for a web visit, an error is displayed.

There are however, a couple of workarounds you can put in place to fix this issue. These involve either:

  • Providing data for these additional facets with your interactions from your xConnect client
  • Patching the report code so that it allows for this data to be missing

This would be worth a blog post on its own, but fortunately, there is already a great post covering how to implement these workarounds.

Experience Profile dashboard filter bug

Additionally, you may notice that within the Experience Profile, the default search dashboard doesn’t seem to show any results, even if you know there are contacts present:

This is due to another Known Issue in Sitecore:

The To date field must be filled in to see search results. This field is hidden by default and you must select the Filter button to enable it. (187153)

To workaround this for now, you need to open up the filter and make sure the To Date field is set to a value that covers an interaction for your contact:

With this in place, you should see that the contacts start appearing.

Questions? Don’t forget StackExchange

Still facing an issue relating to Sitecore 9.0 or xConnect that no one has yet covered? The Sitecore StackExchange is, as ever, the no. 1 resource for questions + answers relating to all things Sitecore. Questions can be tagged, so it’s worth browsing the xConnect questions to see if someone is encountering the same problem as you.