Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Personalisation packages in Umbraco

1,166 views

Published on

Slides from talk given at Codegarden 2016 Umbraco festival by Theo Paraskevopoulos and Andy Butland on personalisation with Umbraco.

Published in: Technology
  • Be the first to comment

Personalisation packages in Umbraco

  1. 1. Umbraco Personalisation Packages Andy Butland Zone @andybutland Theo Paraskevopoulos GrowCreate @theotron
  2. 2. Umbraco Personalisation Packages Personalisation Groups Pipeline CRM
  3. 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. 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
  5. 5. Personalisation?
  6. 6. Examples
  7. 7. Examples
  8. 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. 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
  10. 10. Personalisation Groups
  11. 11. Controlled by editors not developers CONTENT PERSONALISATION FEATURES EDITOR DEVELOPER
  12. 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. 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. 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. 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. 16. Group creation (2) When adding or editing a criteria in a group, the definition is provided via a custom dialog.
  17. 17. Associated groups with content Via a picker, one or more groups can be associated with a content item.
  18. 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. 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. 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/
  21. 21. Pipeline CRM
  22. 22. What is Pipeline CRM? • Custom Relationship Management • Embedded in Umbraco back-office • Opportunities and Tasks • Contacts and Organisations • Integration and Extension API
  23. 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. 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. 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. 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
  27. 27. Toolkit Pipeline CRM • http://pipelinecrm.co.uk • https://our.umbraco.org/projects/backoffice-extensions/pipeline-crm/ • https://github.com/theotron/Using-Pipeline-CRM Pipeline Bridge + Demo site • https://github.com/theotron/Pipeline-Bridge
  28. 28. Wrapping up…
  29. 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!
  30. 30. Thanks, y’all. Andy Butland @andybutland Theo Paraskevopoulos @theotron

×