Expand my Community achievements bar.

Adobe Experience Platform Real-Time Customer Profile: Explained with Sticky Notes




Author: Klaasjan Tukker

In the past couple of months, I spent a significant amount of time with our technical sales and consulting organization at Adobe, to bring them up to speed on the power and capabilities of Adobe Experience Platform.

Experience Platform operates two "brains" that are connected with each other. First, an analytical brain, to store and process a huge amount of analytical data, run machine-learning with Data Science Workspace, query the data with Query Service. The second brain is the Real-Time Customer Profile, which is optimized to power real-time experiences at scale.

This real-time Customer Profile is at the heart of Adobe Experience Platform and has several very unique features. How do you simply explain this complex system?

Adobe Experience Platform Real-Time Customer Profile – Explained with Sticky Notes.png

During the workshops, I developed a simple analogy, where I used sticky notes to explain the concept of the real-time Customer Profile. Attendees were given sticky notes and asked to write down the answers to a number of questions.

Let me walk you through it and if you are interested, you can grab some sticky notes yourself (or any other piece of paper or note-taking tools).

Let's go! Grab your first sticky note and complete the first task

  • Sticky #1: Write down your name, Company Name, employeeID, and phone number

That wasn't too difficult, was it? Now complete the next tasks, each one on its own sticky-note

  • Sticky #2: Write down the date that you joined your company, your first team, employeeID and company email address
  • Sticky #3: Write down the name of the person you called last, your phone number and the date/time of the call
  • Sticky #4: Write down your email address, the most recent Creative Cloud product that you used and the date/time of usage

Yeah, yeah, I know – not everyone has a Creative Cloud subscription. Feel free to use another software subscription product of choice.

  • Sticky #5: Write down your favorite dish

My sticky notes look like this:

Sticky Notes for KlaasjanSticky Notes for Klaasjan

That's it! Let's now see how these sticky-notes relate to the Experience Platform Real-Time Customer Profile.

Make it Stick with Sticky Notes

Imagine that all readers of this article have completed all 5 sticky notes. And these would be collected and grouped by the note-number. In that case, the following datasets would be formed:

  1. Employees: List of employees, phone number, name and company name. In Experience Platform, this dataset would be structured according to the "XDM Individual Profile" Schema from Experience Data Model.
  2. Onboarding: Time-Series data of employees joining a company. It includes the timestamp, employee information. In Experience Platform, this dataset would be structured according to the "XDM ExperienceEvent" Schema from Experience Data Model.
  3. Call_Log: Time-Series data of call history, containing the subject who was called, the phone number who made the call and the timestamp of the call. This would also be expressed using the "XDM ExperienceEvent" Schema.
  4. Product_Usage: Time-Series data of product-usage data, containing the email address, product name, and timestamp of usage, expressed using the "XDM ExperienceEvent" Schema.
  5. Favorites: List of favorite dishes, expressed using the "XDM Individual Profile" Schema

The Experience Platform Real-Time Customer Profile is storing these fragments tied against the dataset of origin and the primary identifier for the given record. These identifiers also play an important role in creating an Identity Graph.

From Stickies to Datasets with identifiers (Primary and Non-Primary)From Stickies to Datasets with identifiers (Primary and Non-Primary)

As data is being read into the real-time Customer Profile an Identity Graph is constructed in parallel, recording the identifiers that are available in the datasets and the relationship between them. Below you see the actual identifiers for each dataset:

  1. Employees: employeeID (Primary identifier), phone number (non-primary identifier)
  2. Onboarding: employeeID (Primary identifier), email address (non-primary identifier)
  3. Call_Log: phone number (Primary identifier)
  4. Product_Usage: email address (primary identifier)
Identity Graph Cluster for Klaasjan.png


After reading this data, a simple deterministic graph is built linking together employeeID, phone numberand email address.

Consuming the Real-Time Customer Profile

Now that all the data is available in the Real-Time Customer Profile, it can be consumed in several different ways:

Profile Lookup

A merged view of the customer profile can be obtained in a normalized output, by combining the datasets loaded into the system. Any identifier can be used to look up a record. As an example, I can look up my own record, using the identifier "email:ktukker@adobe.com". In the background, the cluster of linked identifiers is resolved from the Identity Graph. For each of these identifiers, Profile Fragments are merged into a single Customer Profile.


Building segments is a powerful tool for marketers to group audiences based on attributes and cross-channel behavior. For example, I could run the following query in a batch segmentation operation: "All individuals who have used Adobe XD in the last 30 days and joined Adobe before 2010". In this example, the system is resolving the multiple identity cluster, merging the fragments and finally runs the query to select on those Individual Profiles that match the query.

To operate the system in real-time, you want the system to listen to incoming signals like attributes changes and new events. The segmentation is happening as the data is entering the system, also known as streaming segmentation. If all data-points except #4 were already available in the system, the real-time Customer Profile would evaluate the segment right at the moment when datapoint #4 (Klaasjan uses XD) is coming in. On the fly, the segment is evaluated. Instead of running the queries against the data, the data is run against the queries. When an individual qualifies for a segment, a downstream marketing action can be triggered.

Adobe Experience Platform Real-Time Customer Profile is an extremely powerful capability through which a marketer can create multiple views of a customer, depending on the marketing action by combining one or more profile fragments originating in the customer real-time customer profile.

The hidden power: Merge Rules

To make all of this possible, there is even a more powerful concept: Merge Rules. Every Segment definition or Profile Lookup can be configured with a Merge Rule. The Merge Rule defines which datasets should be included in the profile merge and which Identity Graph should be used to resolve the identity clusters. This makes the Real-Time Customer Profile extremely flexible. Marketers can choose which datasets they want to combine, which identity graph to use based on the marketing action chosen.

"But wait, what about 'Beef Rendang', your favorite dish?"

Thank you for asking. This is where a probabilistic linking in an Identity Graph comes in. In this example, as you probably noticed, there was no identifier on the blue sticky note that contained the favorite dish. However, when analyzing all data that is brought into the Real-Time Customer Profile, the system could analyze the hand-writing and correlating the handwriting on the individual sticky notes. As a result, the following segment could be built by using a probabilistic (handwriting-analysis based) graph: "All individuals who like 'Indonesian Beef Rendang' and joined Adobe before 2010". The segment would contain at least one member: Klaasjan – Terima Kasih!

Do you want to learn more? The documentation is the best place to start. Feel free to also contact me if you have an interesting project that would illustrate the power of the Real-Time Customer Profile within your business or own solution.

Originally published: Nov 30, 2019

1 Comment