%% Real-time personalisation reference architecture
%% Reference architecture: a reusable pattern, not a live client integration
flowchart TB
subgraph z0["Visitor's browser or device"]
web["Website
Salesforce Interactions SDK"]
app["Mobile app
Mobile SDK"]
webx["Web and app experiences
content zones, screens"]
end
subgraph z1["Salesforce Data 360 and Personalization"]
rt["Real-time layer
real-time data graphs"]
batch["Standard data path
streams, DLOs, DMOs"]
decide["Salesforce Personalization
Personalization Points"]
items["Item Data Graph
catalogue and content"]
consent["Consent store
consent DMOs in Data 360"]
end
srv["Server-side events
server-to-server ingestion"]
crm["CRM and commerce data
zero-cost connectors"]
email["Email
Marketing Cloud"]
exp["Experiments and holdouts
A/B and multivariate"]
bi["Analytics
lift reporting"]
web -->|"consented events"| rt
app -->|"app events"| rt
srv -->|"server events"| rt
crm -->|"profile and orders"| batch
batch -.->|"harmonised attributes"| rt
rt -->|"profile at request time"| decide
items -->|"catalogue"| decide
decide -->|"decision response"| webx
decide -->|"send-time or batch"| email
consent -->|"consent at send"| email
webx -->|"exposures"| exp
email -->|"engagement"| exp
exp -->|"results"| bi
webx -.->|"clicks and views"| rt
classDef salesforce stroke:#125BD8,fill:#e8f0fd
class crm salesforce
classDef data stroke:#2f8a3a,fill:#e9f6ea
class rt,batch,items,exp,bi data
classDef engagement stroke:#5747AF,fill:#efedfa
class email engagement
classDef ai stroke:#5747AF,fill:#f6f4fd
class decide ai
classDef integration stroke:#334155,fill:#eef2f6
class srv integration
classDef security stroke:#1f2937,fill:#f3f4f6
class consent security
classDef channel stroke:#2f8a3a,fill:#ffffff
class web,app,webx channel