Real-Time Personalisation Architecture
How events, Data 360, Salesforce Personalization, content and channels fit together, which paths are near real time, and how to measure lift with holdouts.

A real-time personalisation architecture is the set of paths that take a visitor's behaviour, attach it to a profile, choose what to show and measure whether it helped. The phrase "real-time" hides a lot. On Salesforce, some paths can react within the same session, while others run every 15 minutes, hourly or at send time. A good design says which is which for each use case. This is a reference design; we validate the APIs, edition and permissions for each implementation. For use cases and the business case, see real-time personalization.
Business context
Salesforce offers two personalisation products. Salesforce Personalization is built natively on the Salesforce Platform with Data 360, and Salesforce calls it the recommended path for new customers. Marketing Cloud Personalization (formerly Interaction Studio, formerly Evergage) is a standalone real-time interaction management platform. Both the Salesforce Personalization and Marketing Cloud Personalization+ SKUs require Data 360 to be provisioned and include an allotment of personalisation credits. Salesforce has not published a GA date for Salesforce Personalization; it is sold on the pricing page. The diagram shows Salesforce Personalization. During a migration, the Marketing Cloud Personalization and Data 360 web SDKs can run side by side on the same site.
Real-time personalisation reference architecture
Reference architecture: a reusable pattern, not a live client integration
Select a component to see what it is responsible for and how data moves to and from it.
Components and data flows (text version)
| Component | Type | Responsibility |
|---|---|---|
| WebsiteSalesforce Interactions SDK | Channel or touchpoint | Sends behavioural events with sendEvent, mapped by a sitemap. Sends events only if the visitor has consented to tracking, and stops at once when consent is revoked. |
| Mobile appMobile SDK | Channel or touchpoint | Sends app events to Data 360. The Mobile SDK is a supported source for the real-time layer. |
| Server-side eventsserver-to-server ingestion | Integration layer | Sends events from back-end systems, such as order confirmations, where browser capture is unreliable. |
| CRM and commerce datazero-cost connectors | Salesforce product | Profile, order and catalogue data that arrive on each data stream's refresh schedule, not within the session. |
| Real-time layerreal-time data graphs | Data and analytics | Updates the Real-Time Profile Data Graph from streaming events. Required for real-time identity resolution, calculated insights, segments and data actions. |
| Standard data pathstreams, DLOs, DMOs | Data and analytics | Harmonises data into data model objects. A standard web or mobile stream ingests engagement data every 15 minutes and profile data every hour. |
| Salesforce PersonalizationPersonalization Points | AI and agents | Combines a recommender strategy, a Content Schema and optional targeting. Needs an experiment or one or more Decisions. Logic is built once for web, mobile, email and batch. |
| Item Data Graphcatalogue and content | Data and analytics | Holds the catalogue that recommenders choose from, with the attributes used for filters and exclusions. |
| Consent storeconsent DMOs in Data 360 | Identity, policy and governance | Holds channel and subscription consent. In Marketing Cloud Next, consent is stored as DMOs and checked at send time. |
| Web and app experiencescontent zones, screens | Channel or touchpoint | Renders the decision. If no answer arrives in time, shows default content so the page never waits. |
| EmailMarketing Cloud | Engagement platform | Advanced edition email calls the recommender per recipient at send time; for Engagement, Batch Personalizations generate decisions in bulk for a segment. |
| Experiments and holdoutsA/B and multivariate | Data and analytics | Assigns cohorts automatically and keeps a control group that sees the default experience. |
| Analyticslift reporting | Data and analytics | Compares outcomes such as conversion or revenue per visitor between personalised and holdout groups. |
Data flows
- Website → Real-time layer: consented events. Events reach the real-time layer. Salesforce says 95% complete ingestion to activation in about 500 ms under the Sub-Second Real-Time Profile; performance can vary.
- Mobile app → Real-time layer: app events. Mobile SDK events can use the same real-time path. Latency depends on the device's connection and the features chosen.
- Server-side events → Real-time layer: server events. Server-to-server ingestion. On failure the sender retries; include a stable event identifier so duplicates can be detected downstream.
- CRM and commerce data → Standard data path: profile and orders. Connector data on its refresh schedule. Monitor refresh history so stale attributes are noticed.
- Standard data path → Real-time layer: harmonised attributes. Data graphs draw on harmonised objects; attributes that arrive by batch are only as fresh as their last load.
- Real-time layer → Salesforce Personalization: profile at request time. Decisions read the profile data graph when the page or screen asks. Visitors with no history get a fallback such as top sellers.
- Item Data Graph → Salesforce Personalization: catalogue. Recommenders filter and rank items from the Item Data Graph.
- Salesforce Personalization → Web and app experiences: decision response. Returns content shaped by the Content Schema. On timeout or error the experience shows default content.
- Salesforce Personalization → Email: send-time or batch. Server-side call per recipient at send time, or bulk decisions activated to Engagement. Batch decisions reflect data at generation time.
- Consent store → Email: consent at send. Marketing Cloud Next checks consent DMOs at send time. Marketing Cloud Engagement keeps its own subscription status, so consent must also be synchronised there.
- Web and app experiences → Experiments and holdouts: exposures. Records who saw which variant, including the holdout.
- Email → Experiments and holdouts: engagement. Opens, clicks and conversions attributed to the variant sent.
- Experiments and holdouts → Analytics: results. Lift by cohort over a full buying cycle.
- Web and app experiences → Real-time layer: clicks and views. Interactions with personalised content return as new events and update the profile.
Latency tiers: be precise about what is real time
| Tier | Path | Suits | Caveat |
|---|---|---|---|
| In session | Interactions SDK, Mobile SDK or server-to-server ingestion into the real-time layer and a real-time data graph | Next page or screen recommendations, in-session offers | Salesforce's figure is about 500 ms for 95% of events under the Sub-Second Real-Time Profile, and it can vary |
| Minutes | Standard web or mobile data stream into DLOs | Next-visit content, short-delay triggers | Engagement data every 15 minutes |
| Hourly or scheduled | Profile streams, batch transforms, scheduled segments | Audiences, propensity and lifetime value attributes | Profile data every hour on the standard stream |
| Send time | Recommender call per recipient, or Batch Personalizations | Email content | Batch decisions are fixed when generated |
Component responsibilities
| Component | Responsible for | Decide during design |
|---|---|---|
| Capture SDKs and server events | Collecting consented behaviour | Event model and sitemap |
| Real-time layer and data graphs | Fresh profile for decisions | Which attributes must be fresh |
| Standard data path | History, orders, insights | Refresh schedules |
| Personalization Points and recommenders | Choosing the item, offer or content | Objective, fallbacks, exclusions |
| Consent store | Whether a person may be tracked or contacted | System of record for consent |
| Experiments | Proving lift | Holdout size and test length |
Data flow, step by step
- A visitor who has consented to tracking views a product. The Interactions SDK sends the event.
- The real-time layer updates the Real-Time Profile Data Graph. Real-time identity resolution links the event to a known person where the identifiers allow it.
- The page asks a Personalization Point for a decision. The rule-based or objective-based recommender reads the profile and the Item Data Graph. Objective-based recommenders need a real-time profile graph with engagement history and at least three recorded engagement activities for initial training.
- The experience renders the response, or default content on timeout. Exposure is logged with the experiment cohort.
- The click or purchase returns as a new event. Order and profile data from CRM arrive later on the standard path.
- For email, decisions are made at send time or generated in bulk, and consent is checked before delivery.
Trust boundaries and authentication
The browser and app are untrusted: never put secrets in client code. Server-to-server ingestion authenticates server-side with OAuth credentials held in a secrets store. Consent is enforced twice, at capture by the SDK and at send time. Access to Data 360 and Personalization configuration is limited by permission sets. Both SKUs include an allotment of personalisation credits, so track usage against it with your account team.
Failure scenarios and how to handle them
| Scenario | Effect | Handling |
|---|---|---|
| Decision call slow or failing | Blank or flickering content | Short timeout, default content, alert on fallback rate |
| Visitor revokes consent | Tracking must stop | The SDK stops sending; check that server-side events respect the same flag |
| New visitor with no history | No personal signal | Rule-based fallback such as top sellers |
| Batch attribute is stale | Wrong offer, for example for a product already bought | Suppress recently purchased items using real-time events |
| Script blocked in the browser | Missing events | Server-side events for key actions such as orders |
Operational monitoring
Track decision response times, fallback rate, event volumes by type, consent rate, data stream refresh status and personalisation credit consumption. Review experiment results weekly and stop variants that harm the primary metric.
Measuring results with holdouts
Keep a random holdout that sees the default experience for the whole test, and compare the primary outcome, such as conversion or revenue per visitor, between groups. Clicks on a recommendation are not proof of value, because some of those people would have bought anyway. Salesforce Personalization supports A/B and multivariate tests with automatic cohort assignment. Read measuring the impact of marketing automation honestly.
Alternative approaches and trade-offs
- Marketing Cloud Personalization suits existing customers: rules-based campaigns, A/B testing and Einstein Recipes, with Einstein Decisions in Premium Edition only. It works independently of other Salesforce products.
- Braze, a separate company, has its own decisioning (BrazeAI Decisioning Studio) and Connected Content, which requires endpoints to respond in under 2 seconds. See Data 360 and Braze.
- Batch-only personalisation is cheaper and often enough for newsletters. Compare options in real-time personalization engine vs platform.
Implementation checklist
- 01
Pick two or three use cases
For each, note the trigger, decision, channel and success metric.
- 02
Assign a latency tier
Use real-time data graphs only where a use case needs in-session reaction.
- 03
Design the event model
List events and attributes, and gate tracking on consent.
- 04
Map data and identity
Map sources to DMOs and test match rules on real samples.
- 05
Configure decisions
Set recommenders, fallbacks, exclusions and Personalization Points.
- 06
Test on staging
Check rendering, timeouts, fallbacks and consent withdrawal.
- 07
Launch with a holdout
Release to part of your traffic and keep a control group.
Related services and solutions
Real-time personalization
Use cases, prerequisites and business case
→Salesforce real-time personalization
Licensing and product choices
→Identity and consent architecture
Identifiers, consent storage and propagation
→Data 360 architecture
Streams, data graphs and activation
→Personalization consulting
Design and implementation services
→Personalization implementation guide
Step-by-step resource
→Questions we hear
Is Salesforce Personalization real time everywhere?
Do we need Data 360?
What happens for first-time visitors?
Can we keep Marketing Cloud Personalization during a move?
Sources
- https://www.salesforce.com/marketing/personalization/pricing/?africa=1
- https://developer.salesforce.com/docs/data/salesforce-interactions-sdk/guide/c360a-api-salesforce-interactions-web-sdk.html
- https://developer.salesforce.com/docs/data/data-cloud-ref/guide/c360a-real-time-ingestion-api.htm
- https://developer.salesforce.com/docs/data/data-cloud-int/guide/c360-a-mobile-web-datastream.html
- https://trailhead.salesforce.com/content/learn/modules/salesforce-personalization-recommenders-with-agentforce-marketing/use-recommenders-to-deliver-personalized-experiences
Design personalisation that is honest about latency
We can map your use cases to latency tiers, design the event model and set up holdout measurement. Consultations are remote, from India.




