3. Andy Butland
• Blog (sporadically) at http://web-matters.blogspot.it/
• Find here a copy of slides and links to various resources
• Contact: @andybutland
• I work for Zone – www.zonedigital.com - a digital agency where I’m head
of .NET development
• We’ve been Umbraco gold partners for a number of years
• We’re based in London, Bristol and Cologne
• With a few outliers like myself, living in Italy
4. Theo Paraskevopoulos
• Tech Director for GrowCreate
• Digital agency near Oxford
• Umbraco Gold Partner for last 4 years
• Documento, Pipeline CRM packages
github.com/theotron
@theotron
www.growcreate.co.uk
www.pipelinecrm.co.uk
8. Influences, website features and CMS selection
• Requests for “personalisation” come from website RFPs and stakeholder
requirements gathering sessions
• Might fall into a class of feature “we think we need”/”would be nice to have”
• Might be something quite specific that will always require custom development
• Often though comes down to a genuine need for a general purpose, editorially
controlled means of selectively promoting content
9. The HubSpot appoach
• Marketing first, then Website
• In-bound: SEO, Social, Blogging
• Conversions: CTAs, Landing pages, Forms, Analytics
• Post-conversion: Personalisation, Automation, Email
• Approach resonates with clients
• CRM underpins everything (free!)
• Personalisation is first major use case
11. Controlled by editors not developers
CONTENT PERSONALISATION FEATURES
EDITOR DEVELOPER
12. Is personalisation a core CMS feature?
• Umbraco has a focus on delivering an excellent CMS with no barriers for
extensibility
• Community packages provide non-core features such as e-commerce, CRM,
newsletter management, split testing, themes… and currently, personalisation
• This focus shouldn’t change…
• … but does mean the product can suffer in “out of the box” comparisons
• Might be that personalisation features do need to be considered as something for
core
13. Options for personalisation with Umbraco now
• A number of community packages have been developed to offer these
types of features
• Footprint
• Spindoctor
• Personalisation Groups
• Pipeline CRM
14. Introducing Personalisation Groups
• Free and open-source package for Umbraco providing:
• Various options for common personalisation criteria:
• Day of week, time of day, Umbraco membership, session, cookie, pages viewed, geo-
location
• Extensible for development of custom criteria
• Property editors for:
• Creation of groups matching one or more criteria
• Assigning groups to content
• An API for use in templates or controllers for determining if the current user
should view a piece of content
• Find it at:
• https://our.umbraco.org/projects/website-utilities/personalisation-groups
• https://github.com/AndyButland/UmbracoPersonalisationGroups
15. Group creation
A group can be created that matches
any or all of a set of criteria.
Criteria can be chosen from the set of
built-in ones, plus any custom ones.
This group would match all “weekday
morning visitors”
16. Group creation (2)
When adding or editing a criteria in a
group, the definition is provided via a
custom dialog.
17. Associated groups with content
Via a picker, one or more groups can be
associated with a content item.
18. Customising content display
@foreach (var post in Model.Content.Children
.Where(x => x.ShowToVisitor()))
{
<h2>@post.Name</h2>
}
An extension method on
IPublishedContent named
ShowToVisitor() allows for content to
be shown or hidden to the current
visitor.
ShowToVisitor(bool) will:
• Look for groups associated with the content:
• If none found, indicate show or hide based on the passed boolean parameter
• If any found, return true if the current visitor matches any one of them according
to the criteria definitions
19. Creating custom criteria
• The Personalisation Groups package may not provide every criteria you need
• Custom criteria can be created in other packages or in the website solution
• Create class, implementing IPersonalisationGroupCriteria’s single method
MatchesVisitor()
• Provide angularjs assets:
• View for the definition editor
• Controller for the definition editor
• Service component to translate the stored definition into something human readable for
display
• On start-up, all loaded dlls are scanned for classes implementing
IPersonalisationGroupCriteria, the criteria are loaded and made available for
selection
• Shortly Theo will demonstrate how this can be done in creating a criteria
integrated with Pipeline CRM
20. Demo
• Personalising the content items in a list:
• What’s included and what’s not
• What’s promoted to the top
• Custom presentation of each element
• Personalising a single content page using sub-nodes
• Matching based on day of week and time of day
• Matching based on cookie values
• Personalising a single content page using Nested Content
• Nested Content is a list editing property editor defined by document types
• Content is still represented using IPublishedContent hence our extension method is
available
• Find it at: https://our.umbraco.org/projects/backoffice-extensions/nested-content/
22. What is Pipeline CRM?
• Custom Relationship Management
• Embedded in Umbraco back-office
• Opportunities and Tasks
• Contacts and Organisations
• Integration and Extension API
23. Reaction
“Hi X, special offers
for Y users”
CRM offers a new dimension in personalisation
Basis
Users who has
visited page X
Reaction
“”You may like Y”
Basis
User X works for
Company Y
No CRM CRM-enabled
24. Use case
Brief
Personalise the homepage for
known customers:
• Named CTA
• Message for B2B
• Personal message
How it works
1. User submits form > Pipeline Contact
2. Track with cookie
3. Retrieve Contact, display Name
25. Use case
Brief
Personalise the homepage for
known customers:
• Named CTA
• Message for B2B
• Personal message
How it works
1. Automate Contact > B2B group
2. Use Pipeline Bridge to match criteria
3. Display alt content on page
26. Use case
Brief
Personalise the homepage for
known customers:
• Named CTA
• Message for B2B
• Personal message
How it works
1. Custom Pipeline property “message”
2. Retrieve Contact from cookie
3. Display message on page
29. Wrapping up…
• Personalisation is a HOT topic and BIG subject
• We focused on 2 ways to do it with Umbraco
• Personalisation Groups – power to the Editor
• Pipeline CRM – an individual dimension
• Go and make wonderful things!
Websites often not just the same content for everyone – the more they know about you the more the content can be targeted.
For fine targeting likely requires a login.
But can use other factors for anonymous users – geographical location, time, referrer, device, site journey
Websites often not just the same content for everyone – the more they know about you the more the content can be targeted.
For fine targeting likely requires a login.
But can use other factors for anonymous users – geographical location, time, referrer, device, site journey
As an agency developing CMS solutions the personalisation question comes up a lot.
Seems to be becoming one of the “standard” types of requests for CMS features – like preview, workflow, rollback etc.
If asked – “would you like personalisation” – no stakeholder is going to say no!
Request needs to be interrogated – is it needed? Is it something that requires development?
Example from RSPB – following completion of a user journey wanted to target separately members, non-members, purchasers and under 18s. Editors wanted to be able to choose the targeted content but also potentially create and use other criteria and combinations.
Back in the day, developers built and populated websites by updated HTML files.
With CMS – we put the power for updating the content in the hands of editors.
But personalisation is often a website feature – needs a developer to create and, if changes are required, update it.
These days we should be looking to take developers out of the ongoing targeting requirements, rather providing a general purpose means of personalising website content.
Perhaps unlike some other CMS products, Umbraco focusses more closely on a core competency. Other general purpose requirements that aren’t strictly CMS come from packages or custom development.
Could be argued that personalisation is becoming a core CMS function.
Segments and variations planned for core but additional engineering has been required to make it a reality
Footprint – presented last year and released after Codegarden
Spin Doctor – around the longest, now upgraded to Umbraco 7.