There is one question I always ask first in personalization projects, and it sounds almost too simple: does the company know, at any given moment, WHO is there, WHAT that person has permitted, and in what CONTEXT they are moving?
Surprisingly often the answer is: not really. And then it is also clear why the campaign engine, the new tool or the umpteenth subject-line optimization won’t save anything. Hyperpersonalization sounds like compute power and models. In practice it is decided somewhere far less spectacular: the cleanliness of the data foundation it sits on.
A good model on bad data is just a faster way of addressing the wrong customers.
Identity
The classic I keep seeing: the same customer sits in the system several times over - as a prospect, a newsletter subscriber, a service contact, a contract customer. Four records, no shared key. Every “personalized” message then hits only a quarter of the truth - and in some cases the quarters contradict each other.
Before anyone talks about models, you need identity resolution that holds. Deterministic wherever a real key exists (customer number, login, contract number). Probabilistic only where you can afford to be occasionally wrong. In a product recommendation, a mismatch is annoying. In contract communication, it is an incident.
Consent
Shorter, because the principle is simple: what a customer has permitted belongs in the data model, as a checkable field, in real time. Not as a PDF in the consent tool that the campaign never asks.
I regularly see architectures where the two run side by side. That is a legal risk, obviously. But it is also a modeling error: a signal you are not allowed to use simply does not exist for personalization. If your data model doesn’t reflect that, your model is computing with ghosts.
Context
The most underrated of the three. A purchase from two years ago says less about the next best action than the fact that someone is opening the same help page for the third time right now.
Many data models know only master data and completed transactions. That is a photo album. Personalization needs a film: the running context that shows where someone stands NOW. Session signals, open cases, current usage. Without that layer, you are personalizing the past.
Where to start?
Not with an architecture program. Take one single, concrete personalization idea that doesn’t work today and trace backwards which three data points it would need. Then check whether your model keeps identity, consent and context cleanly separated for it. Nine times out of ten you will find the bottleneck exactly in that separation, not in the engine.
It is less glamorous than a new tool. But it is the work that pays off.
