Data Graphs

This guide covers creating the two types of data graphs used in Personalization — a real-time profile data graph and an item data graph. Both must be configured before personalization decisions can be served.


What Are Data Graphs

A data graph brings together structured data from multiple Data Model Objects (DMOs) into a single, unified view. Personalization reads from data graphs at decision time to understand who a person is and what items are available to recommend.

There are two types of data graphs used in a Personalization implementation:

  • Profile Data Graph — Represents a unified understanding of an individual. It combines identity, engagement, and behavioural data into a single profile. A real-time profile data graph is required for personalization on latency-sensitive channels like web and mobile.
  • Item Data Graph — Represents business context data such as products, articles, or promotions. Anything configured as an item data graph becomes recommendable through Personalization’s recommendations service. Item data graphs are always configured as standard (not real-time) data graphs.

Profile Data Graph

How It Works

A real-time profile data graph operates across three storage layers:

  • Lakehouse — All profiles are stored here. Non-real-time data flows into the lakehouse and is synced with the real-time data graph on a scheduled refresh cadence.
  • Pre-Fetch Cache — A warm layer that pre-loads recently active profiles from the lakehouse. Pre-loading enables faster profile access at runtime and supports first-page personalisation. A profile enters the pre-fetch cache when an engagement event falls within the configured cache lookback window.
  • Hot-Store — When a real-time event is received for an individual, their profile is promoted from pre-fetch (or lakehouse) to the hot-store. While in the hot-store, the profile is locked from receiving lakehouse updates until the session ends. Session duration is configured on the data graph.

Key Configuration Settings

These settings are presented during data graph creation:

Setting Description
Cache Duration (Days) How far back an individual’s last activity must fall to be considered active and eligible for pre-fetch. If a profile is not in the pre-fetch cache at request time, it falls back to the lakehouse — typically resulting in the individual being treated as anonymous on the initial page load.
Max Records The maximum number of profiles held in the pre-fetch layer. A nightly job trims the cache to this number based on oldest engagement activity.
Session End How long an individual remains in the hot-store after their last event. Lakehouse updates are blocked for this profile while it is in the hot-store.
Disable Record Caching Must be deselected to enable pre-fetch caching. When this setting is on, every personalisation request treats the individual as anonymous. It is on by default.
Real-Time Data Ingestion When enabled, updates to DMOs referenced by the data graph via the ingestion API are pushed to the data graph as soon as they occur.

Build a Real-Time Profile Data Graph

  1. Select the Data Graphs tab from the Data Cloud app.
  2. Click New.
  3. Leave Start from Scratch selected and click Next.
  4. Select the Real-Time Data Graph tile and click Next.
  5. Enter Profile in the Data Graph Name field.
  6. Leave default selected in the Data Space menu.
  7. Select Unified Individual RT from the Primary Data Model Object menu.

[ACTION REQUIRED: Review Note] - NOTE: The RT suffix in the object name corresponds to the Ruleset ID set during identity resolution. This ensures the data graph is rooted on the correct unified profile object.

  1. Click Next.
  2. Keep the default settings in Real-Time Consumption Limits and click Next.
  3. In the Unified Individual RT fields list, select:
    • First Name
    • Last Name
  4. In the Data Model Objects tree, click Unified Individual RT and add the following DMOs and fields:
Parent DMO DMO Fields Purpose
Unified Link Individual RT Unified Individual RT Data Source, Data Source Object Links many individual records into one unified profile.
Unified Link Individual RT Individual First Name, Last Name Represents the individual person record.
Individual Website Engagement Engagement Channel Action, Engagement Channel Type, Page URL, Referrer URL, Webpage Type Captures general website engagement events such as page views.
Individual Product Browse Engagement Product, Product Category, Product Price Tracks product view interactions that signal purchase intent. Used for ML recommender training.
Individual Product Order Engagement Total Product Amount Captures purchase-level events and provides access to line item data through its child object.
Product Order Engagement Sales Order Product Engagement Category, Individual, Ordered Quantity, Product, Product Price Amount, Total Line Amount Captures line item details for each purchase transaction.
Individual Shopping Cart Engagement Engagement Channel Type Tracks cart-level interactions such as add, remove, and view events.
Individual Shopping Cart Product Engagement Product, Product Price, Product Quantity Stores product-level details for shopping cart interactions.
Individual Privacy Consent Log Privacy Consent Status Records the individual’s data collection and tracking consent preferences.
  1. Confirm the data graph structure and field count matches the expected layout.

[ACTION REQUIRED: Update Image Here] - Original Context/URL: Data Graph structure for Profile Data Graph

  1. Click Save and Build.

[ACTION REQUIRED: Review Note] - TIP: If a segment has been created using the root DMO of this data graph, optionally add the corresponding segment membership DMO (e.g., Unified Individual – Latest) to the data graph. Select the Segment ID field to ensure segment-based targeting rules evaluate correctly.

[ACTION REQUIRED: Update Image Here] - Original Context/URL: Add Segment to Data Graph

Refresh Cadence

The last step in data graph creation is selecting a refresh cadence. A 30-minute refresh is recommended to minimise latency for lakehouse updates. This is the default for real-time data graphs.

If a profile is active in the hot-store when a lakehouse update occurs, that update will not be reflected on the data graph until the profile exits the hot-store and the next refresh runs. This applies to segment memberships and calculated insights — a data graph refresh is required after any batch job updates for the new values to appear.

Validating Profile Data

To inspect the data currently stored on an individual’s real-time profile, navigate to Data Explorer in Data 360, select the profile data graph object, and view the JSON. Toggle Real-time View to On to see the hot-store version of the profile.

If the Unified Individual ID is not known, a lookup flow can be created to retrieve a profile by an alternate key.


Item Data Graph

How It Works

An item data graph represents business context data — products, articles, promotions, or any other object that Personalization should be able to recommend. When Personalization delivers a recommendation, it returns data from the root DMO of the item data graph.

Item data graphs are always configured as standard data graphs, not real-time. They are not required to run all personalisation use cases — simple use cases such as infobars, pop-ups, and manual content banners can be delivered while item data graphs are still being built.

Key components of an item data graph:

  • Root DMO — The primary business object (e.g., Goods Product, Knowledge Article, Offer). Only attributes selected on this DMO can be used in recommendation filters or returned in a decision response. Attributes cannot be removed after being saved.
  • Related Objects — DMOs with a relationship to the root DMO. Used in recommendation filtering to determine item eligibility.
  • Calculated Insights — Can be added to the data graph to power rule-based recommendation strategies or to restrict what items are shown through recommendation filters.

Deploy a Calculated Insight

A calculated insight must be deployed before it can be added to a data graph.

  1. Select the Calculated Insights tab from the Data Cloud app.
  2. Click New.
  3. Select From a Data Kit and click Next.
  4. Select Top Sellers Calculated Insight and click Next.
  5. Click Activate.
  6. Leave the schedule options as default and click Enable.

[ACTION REQUIRED: Review Note] - TIP: This calculated insight is built on the Goods Product DMO and calculates the total number of units sold per product. It will be added to the product data graph and used in a recommendations strategy to return products ordered by total units sold.

Create an Item Data Graph

  1. Select the Data Graphs tab from the Data Cloud app.
  2. Click New.
  3. Leave Start from Scratch selected and click Next.
  4. Leave Standard Data Graph selected and click Next.
  5. Enter Products in the Data Graph Name field.
  6. Select Goods Product from the Primary Data Model Object menu.
  7. Click Next.
  8. In the Fields list, select:
    • Category
    • Image URL
    • Price
    • Product Description
    • Product Name
    • Product URL

[ACTION REQUIRED: Review Note] - NOTE: The selected fields can be used in recommendation filter logic and returned as part of a personalisation decision response. Attributes cannot be removed from a data graph after being saved.

  1. In the Data Model Objects tree, click Goods Product.
  2. Select Top Sellers Calculated Insight. Field values and dimensions are selected automatically.
  3. Confirm the data graph structure and field count matches the expected layout.

[ACTION REQUIRED: Update Image Here] - Original Context/URL: Data Graph structure for Products Data Graph

  1. Click Save and Build.
  2. In the Refresh Schedule modal, select Every 30 Minutes from the Select a Refresh Interval menu.
  3. Click Save and Build.

[ACTION REQUIRED: Review Note] - NOTE: The refresh interval determines how frequently the item data graph is refreshed. This directly affects when newly added items become eligible to be returned in a recommendations response.