Since 2019 we have been developing a number of personalisation tools for Drupal. We are firm believers that Drupal provides an excellent platform for managing personalised user experiences and that personalisation should be available for everyone. We have released a number of open source tools to make this vision a reality and to help explain how they work we have developed a demonstration site showcasing how they can operate in the real world.
The Convivial CXP Demo site takes a minimalistic "bookshop" as the foundation for the demonstration. A bookstore was chosen because it is a domain which has content (the books) and natural topics, audiences and authors which can be used for demonstration purposes. Users can be tracked across the site and their browsing history can be used for recommendations and customisation along these dimensions.
We encourage you to take the demo site for a test drive and to dig into how it is working. We have provided help text along the way, explaining how different parts of the page have been built. If you want to take a deep dive you can look into the localstorage to see the variables which are driving the customisation features.
If you have any questions, or think it might be suitable for an upcoming project and would like us to help, please get in touch.
Personalisation features
The following techniques are used on this site.
User and item recommendations
The Recombee SaaS recommendation engine provides content recommendations for users and for items. Recombee is able to track page views along with a client id and then make recommendations to individuals based on the collective behaviour of all users. It is similar to the recommendations which were popularised by Amazon.
User profile
Morpht has developed a proprietary client side tracking service which is able to collect user behaviour data and then summarise it into various values which are stored into localstorage. This data then in turn is able to be used by Smart Content and Personified modules to customise what is shown to the user.
On this site summary values are created for:
- topic-affinity
- audience-affinity
- intent
- stages
- location
- language
- season
- time of day
All of these values can then be used to customise what is shown.
This data is not shared to third parties. It stays on the local client.
Smart content
The Smart Content module in Drupal is able to select which block to show based on client state. Data, stored in localstorage or in cookies can be used to decide what will be shown. This site makes use of user profile data in localstorage.
Personified
Personified is a Drupal module, developed by Morpht, which is able to make use of localstorage in much the same way that Smart Content does. Personified is then able to use this data to generate requests against the Drupal site to pull back the most appropriate promotion block. The results are then processed clientside by a Handlebars template to transform the data into different displays.
Code
Open Source
Morpht has developed a number of open source modules and libraries which are available for use on all Drupal 8+ sites. The modules are as follows:
- Search API Recombee and Recombee
- Personified and JSON Template
These modules are free for the community to use to build their own solutions.
Secret sauce
The user profile code which calculates the user properties is proprietary and is licensed to clients who use Convivial sites built by Morpht. If you would like a license to use for your own site, please contact us
Features
Editor experience
Convivial is based on Layout Builder and Paragraphs and comes with a range of components which will let your editors build out great looking sites very quickly. See the test section to see what it can do.
Accessibility, SEO and performance
Convivial sites are some of the best performing sites in the world when measured by their Lighthouse scores. We have spent thousands of hours iterating to make sure the sites are as conformant as possible.
Bootstrap 5
We have built on top of Bootstrap, the most popular theming framework in the world.
Extensible
Convivial is component driven, making it flexible and extensible.
Visit the demo site