Blogs posted in 2018

Virtual Template System - v3.0 available with UI updates, fixes and internal changes

Aug 11, 2018  

A new version of Virtual Template System is now available with UI updates, bug fixes and refactoring to the internals. Virtual Template System allows users to view and edit templates in the Episerver UI.

The updated UI can be seen in the video below:

Virtual Template System - Diff/merge feature now available

Jul 30, 2018  

A new version of Virtual Template System is now available that adds the ability to diff and merge an edited template with the original version that is deployed on disk. Virtual Template System allows users to view and edit templates in the Episerver UI.

The diff/merge tool can be seen in action in the video below:

Virtual Template System for Episerver (re)launched

Jul 24, 2018  

Some time ago I built an add-on that allowed users to edit the Views/CSS/JS that are used to deliver an Episerver site called Virtual Template System. This has now been updated to be compatible with Episerver 11.

Why would we wish to let users edit templates in the UI?

Clients are in a rush, editors are continually getting smarter and are more demanding too. People hate waiting for the dev team or a deployment to happen particularly when the issue can be solved with a simple template change. In short people just don't want to wait and with the right power/skills users should be given the power to make changes themselves as long as they have a full understanding of the consequences.

Episerver as headless (Episerver Ascend 2018 presentation)

Jun 20, 2018  

One session I presented at Episerver Ascend London, Stockholm and Benelux 2018 was on Episerver as headless. This specifically talked about Episerver's approach to headless, including advantages and disadvantages of the approach. I also showed some examples of how the Content Delivery API (the Episerver headless API) could be used.

This post shares the code and presentation ran in this session.

Exploring the API

This section showed what could be done with the Content Delivery API. It simply installed the Content Delivery API onto an Alloy site and used Postman to explore some of the capabilities such as loading a page, querying for content and expanding content areas to retrieve multiple pages/blocks in a single request. An example can be seen in Postman below:

Clear the Cloudflare cache as part of a release in Visual Studio Team Services (VSTS)

Jun 12, 2018  

I was recently setting up a deployment in Visual Studio Team Services to a site that uses Cloudflare. One of the requirements was to clear the Cloudflare CDN cache as part of the release as content was cached on Cloudflare that could change after the application has deployed.

This is a "note to self" to ensure I remember the steps needed to clear the Cloudflare cache as part of a release in Visual Studio Team Services:

Check the Episerver Perform catalog export feed

Jun 04, 2018  

Episerver Perform provides product recommendations on your site. In order to do this it is necessary to send a product catalog feed so the recommendations engine knows which products to recommend. Fortunately there is a pre-built job for this called "Export Product Feed" which comes as part of the EPiServer.Personalization.Commerce package. It creates the catalogue feed file and sends a request to Episerver Perform to come and pick it up as described here https://world.episerver.com/documentation/developer-guides/commerce/personalization/recommendations/. This can also be seen on the image on the below (from the Episerver documentation):

Connecting Episerver Insight and Campaign (Episerver Ascend 2018 presentation)

May 21, 2018  

One of the sessions presented at Episerver Ascend London and Stockholm this year was called connecting Episerver Insight and Campaign. This presentation discussed how Episerver Insight and Campaign could be used together to create some user experiences that understood a customer's on-site and off-site interactions. Specifically it showed how Episerver Insight and Episerver Campaign could be used to create an on-site experience that was affected by off-site behaviours measured by Episerver Campaign (in this case interaction with email but could also be push notification or SMS).

Scenario

The demo scenario is as follows:

Populate Episerver Insight profiles from Episerver Form fields

Apr 30, 2018  

Episerver Profile store is an tool for capturing profile information and behaviours that can be visualised in Episerver Insight. Episerver Profile store can be connected to any system using standard RESTful APIs to update and add profile information for users. However there isn't currently an out the box way for users to collect user data using Episerver Forms and push this data into Episerver Profile store which can be seen in the Episerver Insight UI.

So I decided to create an add-on that would allow editors to map Episerver Form fields to Episerver Insight/Profile store fields. When using it editors set up their form as normal but also get an additional tab called "Insight profile mappings". This tab can be used to specify a property to save the form data to in the Episerver Insight profile:

Configuring the Episerver Campaign connector through code

Apr 23, 2018  

By default when installing the Episerver Campaign connector its possible to configure the connection through admin mode. However in some occasions (such as in development and test scenarios) it may be desirable to configure these credentials through code.

This posts describes how to configure the Episerver Campaign Connector through code using an Episerver initialisation module: 

Migrating Episerver Dynamic Content to Episerver Blocks

Apr 11, 2018  

Update

The official Episerver documentation has been updated to include some of the content in this post. More information: https://world.episerver.com/documentation/developer-guides/CMS/dynamic-content/migrating-dynamic-content-to-blocks/

 

Episerver Dynamic Content was a tool that allowed developers to programmatically insert content into XHTML property values and was introduced in Episerver around 2010.

My blog runs Episerver 11 and I’ve used Dynamic Content in the past for embedded code snippets (though I normally just embed straight from Gist these days). So I decided it was long overdue that I move away from using Dynamic content as it’s a obsolete piece of tech, isn’t compatible with the new TinyMCE editor, doesn’t work with the new Episerver Headless API and sooner or later will go out of support completely.

This is the approach I took when migrating from Episerver Dynamic Content to Episerver Blocks.

Visual compare option available for Episerver 11

Mar 12, 2018  

A new compare option is available for Episerver 11 which gives editors the ability to visually compare two pieces of content as shown in the example below:

In the example above the text changes are highlighted with appropriate red/green highlights. When a text change has been made it means its easy to spot that has been changed quickly.

Explaining and changing scopes in Episerver Insight (updated 11th April 2018)

Feb 16, 2018  

A scope in Episerver Insight defines a logical grouping of profiles. So given this scenario:

Controlling who has access to the Episerver Insight UI

Feb 05, 2018  

Just a quick note to self on how to control access to the Episerver Insight UI.

Episerver Insight Profiles UI access

Access to the profiles section is allowed if any of the following is true:

Visitor group criterion for A/B testing available for Episerver 11

Jan 25, 2018  

The Episerver visitor group criterion that allows editors to define visitor groups depending on whether an end user is participating in an A/B test is now available for Episerver 11.

The package adds a new visitor group called “Participating in A/B test” as shown below:

Working with Episerver Insight and the Episerver Profile store API

Jan 11, 2018  

Episerver has recently released Episerver Insight which is the user interface for viewing, filtering visitor profiles and creating segments. This relies on Episerver Profile store in order to store profile data.

This post describes how its possible to load a user profile and update some properties on it using the Episerver Profile Store API. As Episerver Profile store is a pure RESTful API it means developers can choose any way to interact with it. For this example RestSharp is used to connect to the API and uses Newtonsoft.Json to manipulate the data. 

In this example I want to perform the following operations: