Episerver Campaign allows users to communicate at scale with outbound messaging on channels such as email, SMS and push notifications. One common requirement is to sign up for a newsletter which is managed and distributed by Episerver Campaign and to ensure that the profile of a user is the available when clicking a link in a email that opens on another device such as a smart phone or even another browser.
This post describes how its possible to load recipient information for user from Episerver Campaign using the Episerver Campaign Connector based on an inbound link to a site. The following steps describe what needs to happen:
Episerver Insight allows Episerver to track user journeys by tracking user behaviours. One of the most common requirements when tracking user journeys is to associate them across device. For example when a user signs up for a newsletter on a desktop then subsequently opens the newsletter on a mobile then it should be considered to be the same user journey.
This post describes how to associate different user journeys in Episerver Insight as if it was one journey as long as the email of the user matches.
The Insight form field field mapper allows editors to map Episerver Form fields to Episerver Insight properties such as email and phone number when submitting forms.
However in some scenarios Episerver Insight properties may not map directly to properties that are captured on the form. This is due to the fact the form can also send submitted data to external marketing automation / CRM tools which do not share the same properties as Episerver Insight. One example is the property "Name" property in Insight. Many external marketing automation/CRM tools tend to have separate first and last name fields so its not possible to map by the Insight property "Name" by default.
So I have added support for first and last name mapping to the single Insight property “Name”.
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:
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:
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: