Personalisation packages in Umbraco

Post on 15-Jan-2017

292 views 3 download

Transcript of Personalisation packages in Umbraco

Umbraco Personalisation Packages

Andy Butland Zone

@andybutland

Theo ParaskevopoulosGrowCreate@theotron

Umbraco Personalisation Packages

Personalisation Groups Pipeline CRM

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

Theo Paraskevopoulos

• Tech Director for GrowCreate• Digital agency near Oxford• Umbraco Gold Partner for last 4

years• Documento, Pipeline CRM

packages

github.com/theotron@theotronwww.growcreate.co.uk www.pipelinecrm.co.uk

Personalisation?

Examples

Examples

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

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

Personalisation Groups

Controlled by editors not developers

CONTENT PERSONALISATION FEATURES

EDITOR DEVELOPER

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

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

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

Group creationA 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”

Group creation (2)When adding or editing a criteria in a group, the definition is provided via a

custom dialog.

Associated groups with contentVia a picker, one or more groups can be

associated with a content item.

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

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

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/

Pipeline CRM

What is Pipeline CRM?

• Custom Relationship Management• Embedded in Umbraco back-

office• Opportunities and Tasks• Contacts and Organisations• Integration and Extension API

Reaction“Hi X, special

offers for Y users”

CRM offers a new dimension in personalisation

BasisUsers who has visited page X

Reaction“”You may like Y”

BasisUser X works

for Company Y

No CRM CRM-enabled

Use case

BriefPersonalise the homepage for known customers:• Named CTA• Message for B2B• Personal message

How it works1. User submits form > Pipeline

Contact2. Track with cookie3. Retrieve Contact, display Name

Use case

BriefPersonalise the homepage for known customers:• Named CTA• Message for B2B• Personal message

How it works1. Automate Contact > B2B group2. Use Pipeline Bridge to match

criteria3. Display alt content on page

Use case

BriefPersonalise the homepage for known customers:• Named CTA• Message for B2B• Personal message

How it works1. Custom Pipeline property

“message”2. Retrieve Contact from cookie3. Display message on page

Toolkit

Pipeline CRM• http://pipelinecrm.co.uk• https://our.umbraco.org/projects/backoffice-extensions/pipelin

e-crm/• https://github.com/theotron/Using-Pipeline-CRMPipeline Bridge + Demo site• https://github.com/theotron/Pipeline-Bridge

Wrapping up…

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!

Thanks, y’all.

Andy Butland @andybutland

Theo Paraskevopoulos@theotron