Real-Time Customer Profile
07 May 2023 » Platform
At the heart of the customer engagement area of the Adobe Experience Platform (AEP), we have the Real-Time Customer Profile (RTCP). This building block is where you find capabilities like the profile store, the identity store and the various segmentation engines.
I know, this acronym may seem confusing, as it is very similar to Real-Time Customer Data Platform (RTCDP), but the two are different concepts: RTCDP is an application, whereas RTCP is a building block. Remember the reference architecture I am using for this series; find both the RTCP and the RTCDP:
Before getting into the weeds, I want to clarify that RTCP is a complex building block, with many components. I have chosen what I believe are the most important features, functionalities and properties. However, if there is anything that I may be missing and you would like me to document, leave a comment with your ask.
If you have seen my Summit presentation, you will see that I describe the RTCP as a “centralized audience creation store for engagement workloads”. This is a mouthful, so let me unpack it.
I would argue that this is the most important capability in AEP. Research has shown that targeting marketing messages to the right people is key to success. Long gone are the days when you would send the same message to everybody. The main goal of AEP is to generate meaningful audiences so that you can cater relevant messages to them.
Until the advent of AEP, each tool had its own segmentation engine. I even wrote a blog post addressing this situation. Another goal of AEP is to create a central location where you create audiences and distribute them to any application that may need them. This will allow you to consistently message your clients, irrespective of the channel.
As I have mentioned above, the RTCP is the key building block of the customer engagement area. When I explain the data lake, it will be clearer why this qualification is needed.
Datasets and fragments
One of the concepts that AEP introduces is fragments. A typical AEP implementation will get data from multiple data sources. Each data source is mapped to an XDM schema and stored in a dataset. As a consequence, the full customer profile is a combination of pieces of data coming from multiple sources. Each piece of data is called a fragment.
However, not all datasets are created equal. Only those that have been enabled for profile will contribute to the RTCP.
A final word of caution. By reading the above, you may be tempted to enable all datasets for profile, so that you have all the information available at your fingertips. However, the more datasets enabled for profile, the larger the profile size, which usually is a bad idea for various reasons:
- You have a contractual maximum size per profile (on average). Check your AEP contract.
- You must remember that AEP is a marketing tool. If you have too much data in it, marketers will struggle to use it properly and may select the wrong attribute.
- To limit latency and maximize performance, we want lean profiles.
The RTCP is a real-time engine. It listens to data coming from any of the datasets configured for profile and acts following certain marketing rules:
- Updates the identity graph when it sees a new link between two identities. For example, if it already has an email address and later sees an associated telephone number, it will create a link between the two.
- Updates a fragment if new data arrives.
- The segmentation engine will check if these events make a profile qualify or disqualify for a segment.
- Does nothing if the new data does not require any change.
Assembly of the customer profile
One of the coolest features of AEP, at least in my humble opinion, is how a customer profile is assembled. Contrary to what you would initially think, AEP does not have a database with customer profiles. Instead, a customer profile is assembled in real-time, upon request. This is the process:
- An external entity requests a profile, supplying only one single identity and its namespace.
- The RTCP then searches the identity in the identity store and gets all other identities that are linked to it.
- With this list of identities, it goes to the profile store and retrieves all fragments that are keyed off of any of the identities.
- Profile merge rules are applied to resolve any conflict between fragments. For example, in the diagram above, the orange fragment is provided by 4 datasets, but only one can make it to the customer profile.
- The final profile is assembled
- The profile is returned to the requestor.
- RTCP forgets the profile.
In case you have not noticed, this behavior allows you to generate different customer profiles using different merge policies.
As important as the data is the meta-data. Consider the following:
- Origin of the data
- Contractual limtations
- Legal regulations
- Permissions to use the data
- Time restrictions
In a world full of GDPRs, CCPAs, and HIPAAs…, this metadata plays a key role. It will be even clearer when I talk about the Privacy & Governance building block.