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.

Banner for the GeekMidst reference architecture “Real-Time Personalisation Architecture”, covering Business context and Real-time personalisation…

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

Salesforce Data 360 and PersonalizationCAPTUREDATA 360DECISIONING AND POLICYDELIVERYMEASUREMENTWebsiteSalesforce Interactions SDKAMobile appMobile SDKAServer-side eventsserver-to-server ingestionCRM and commerce datazero-cost connectorsReal-time layerreal-time data graphsStandard data pathstreams, DLOs, DMOsSalesforce PersonalizationPersonalization PointsItem Data Graphcatalogue and contentConsent storeconsent DMOs in Data 360Web and app experiencescontent zones, screensAEmailMarketing CloudExperiments and holdoutsA/B and multivariateAnalyticslift reportingconsented eventsapp eventsserver eventsprofile and ordersharmonised attributesprofile at request timecataloguedecision responsesend-time or batchconsent at sendexposuresengagementresultsclicks and views
  • Salesforce product
  • Data and analytics
  • Engagement platform
  • AI and agents
  • Integration layer
  • Identity, policy and governance
  • Channel or touchpoint
  • AVisitor's browser or device
  • Salesforce Data 360 and Personalization
  • Dashed: asynchronous, optional or feedback
Diagram source (Mermaid)

Select a component to see what it is responsible for and how data moves to and from it.

Reference architecture. Latency depends on the sources, data graphs and features chosen, and is confirmed per implementation.
Components and data flows (text version)
ComponentTypeResponsibility
WebsiteSalesforce Interactions SDKChannel or touchpointSends 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 SDKChannel or touchpointSends app events to Data 360. The Mobile SDK is a supported source for the real-time layer.
Server-side eventsserver-to-server ingestionIntegration layerSends events from back-end systems, such as order confirmations, where browser capture is unreliable.
CRM and commerce datazero-cost connectorsSalesforce productProfile, order and catalogue data that arrive on each data stream's refresh schedule, not within the session.
Real-time layerreal-time data graphsData and analyticsUpdates 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, DMOsData and analyticsHarmonises data into data model objects. A standard web or mobile stream ingests engagement data every 15 minutes and profile data every hour.
Salesforce PersonalizationPersonalization PointsAI and agentsCombines 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 contentData and analyticsHolds the catalogue that recommenders choose from, with the attributes used for filters and exclusions.
Consent storeconsent DMOs in Data 360Identity, policy and governanceHolds channel and subscription consent. In Marketing Cloud Next, consent is stored as DMOs and checked at send time.
Web and app experiencescontent zones, screensChannel or touchpointRenders the decision. If no answer arrives in time, shows default content so the page never waits.
EmailMarketing CloudEngagement platformAdvanced 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 multivariateData and analyticsAssigns cohorts automatically and keeps a control group that sees the default experience.
Analyticslift reportingData and analyticsCompares outcomes such as conversion or revenue per visitor between personalised and holdout groups.

Data flows

  1. 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.
  2. 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.
  3. 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.
  4. CRM and commerce data → Standard data path: profile and orders. Connector data on its refresh schedule. Monitor refresh history so stale attributes are noticed.
  5. 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.
  6. 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.
  7. Item Data Graph → Salesforce Personalization: catalogue. Recommenders filter and rank items from the Item Data Graph.
  8. Salesforce Personalization → Web and app experiences: decision response. Returns content shaped by the Content Schema. On timeout or error the experience shows default content.
  9. 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.
  10. 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.
  11. Web and app experiences → Experiments and holdouts: exposures. Records who saw which variant, including the holdout.
  12. Email → Experiments and holdouts: engagement. Opens, clicks and conversions attributed to the variant sent.
  13. Experiments and holdouts → Analytics: results. Lift by cohort over a full buying cycle.
  14. 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

TierPathSuitsCaveat
In sessionInteractions SDK, Mobile SDK or server-to-server ingestion into the real-time layer and a real-time data graphNext page or screen recommendations, in-session offersSalesforce's figure is about 500 ms for 95% of events under the Sub-Second Real-Time Profile, and it can vary
MinutesStandard web or mobile data stream into DLOsNext-visit content, short-delay triggersEngagement data every 15 minutes
Hourly or scheduledProfile streams, batch transforms, scheduled segmentsAudiences, propensity and lifetime value attributesProfile data every hour on the standard stream
Send timeRecommender call per recipient, or Batch PersonalizationsEmail contentBatch decisions are fixed when generated

Component responsibilities

ComponentResponsible forDecide during design
Capture SDKs and server eventsCollecting consented behaviourEvent model and sitemap
Real-time layer and data graphsFresh profile for decisionsWhich attributes must be fresh
Standard data pathHistory, orders, insightsRefresh schedules
Personalization Points and recommendersChoosing the item, offer or contentObjective, fallbacks, exclusions
Consent storeWhether a person may be tracked or contactedSystem of record for consent
ExperimentsProving liftHoldout size and test length

Data flow, step by step

  1. A visitor who has consented to tracking views a product. The Interactions SDK sends the event.
  2. 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.
  3. 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.
  4. The experience renders the response, or default content on timeout. Exposure is logged with the experiment cohort.
  5. The click or purchase returns as a new event. Order and profile data from CRM arrive later on the standard path.
  6. 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

ScenarioEffectHandling
Decision call slow or failingBlank or flickering contentShort timeout, default content, alert on fallback rate
Visitor revokes consentTracking must stopThe SDK stops sending; check that server-side events respect the same flag
New visitor with no historyNo personal signalRule-based fallback such as top sellers
Batch attribute is staleWrong offer, for example for a product already boughtSuppress recently purchased items using real-time events
Script blocked in the browserMissing eventsServer-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

  1. 01

    Pick two or three use cases

    For each, note the trigger, decision, channel and success metric.

  2. 02

    Assign a latency tier

    Use real-time data graphs only where a use case needs in-session reaction.

  3. 03

    Design the event model

    List events and attributes, and gate tracking on consent.

  4. 04

    Map data and identity

    Map sources to DMOs and test match rules on real samples.

  5. 05

    Configure decisions

    Set recommenders, fallbacks, exclusions and Personalization Points.

  6. 06

    Test on staging

    Check rendering, timeouts, fallbacks and consent withdrawal.

  7. 07

    Launch with a holdout

    Release to part of your traffic and keep a control group.

Questions we hear

Is Salesforce Personalization real time everywhere?
No. The in-session path depends on the real-time layer and real-time data graphs. Standard data streams run every 15 minutes for engagement and hourly for profile data, and email decisions are made at send time or in batch.
Do we need Data 360?
Yes for both current SKUs: Salesforce Personalization and Marketing Cloud Personalization+ require Data 360 to be provisioned.
What happens for first-time visitors?
Decisions fall back to defaults such as top sellers until the person builds history.
Can we keep Marketing Cloud Personalization during a move?
Salesforce says the Marketing Cloud Personalization and Data 360 web SDKs can be deployed side by side on the same site.

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.

Book a consultation →

Tell us what you are trying to fix.

Share your Salesforce setup, goals and constraints. A practitioner reads every message and replies with questions, first thoughts or an honest view of whether you need outside help at all.

Talk to a Salesforce Expert
Book a Consultation