I'm starting a series of posts with a step-by-step description of how to work with Sitecore Cortex, how to integrate Machine Learning engine to process data and predict some values or behavior for contacts. Such data analysis and predictions can be useful in real projects.
Sitecore Cortex works fine with OOTB entities but it is not so easy to deal with custom entities. For better understanding, I've created a demo scenario with multiple custom entities.
So, here goes the scenario: Let’s say we have an e-commerce website. When a customer buys a product we trigger custom purchase outcome where we store information about the purchase. For the demo purpose we will import a large dataset of orders to xdb. We will use Sitecore Cortext and ML to analyze the history of orders and cluster our customers in several predefined segments (VIP customers, regular customers with average bill, customers who are about to leave our store, etc.). To achieve these goals we will use RFM Analysis (ML-side of our solution).
RFM (recency, frequency, monetary) analysis is a marketing technique used to determine quantitatively which customers are the best ones by examining how recently a customer has purchased (recency), how often they purchase (frequency), and how much the customer spends (monetary). RFM analysis is based on the marketing axiom that "80% of your business comes from 20% of your customers."
Our solution will organize customers to several predefined segments in real-time. For our demo scenario, we will also create a custom sitecore segmentation predicate that will help us creating mailout lists and personalize content based on customer RFM segments.
If you are new to Sitecore Cortex, here are some links that might be helpful to get started learning the basics:
Here goes the table of contents for my Cortex blog series
Source code https://github.com/x3mxray/Cortex.Demo.RFM