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).
The demo scenario is as follows:
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:
A scope in Episerver Insight defines a logical grouping of profiles. So given this scenario:
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: