%% Identity and consent reference architecture
%% Reference architecture: a reusable pattern, not a live client integration
flowchart TB
subgraph z0["Your Salesforce org and Data 360"]
crm["Sales and Service Cloud
contacts, leads, agents"]
consent["Consent system of record
one store, chosen per design"]
d360["Data 360 identity resolution
Unified Individual"]
end
subgraph z1["External platforms"]
braze["Braze
separate company, external"]
end
forms["Forms and preference pages
web, CloudPages, portals"]
app["Apps and websites
SDK events"]
mc["Marketing Cloud
Engagement or Next"]
integ["Integration layer
middleware or iPaaS"]
audit["Consent audit log
append-only"]
forms -->|"opt-ins and opt-outs"| consent
crm -->|"agent-recorded changes"| consent
crm -->|"contact points"| d360
app -->|"identified events"| d360
consent -->|"consent at send"| mc
d360 -->|"segments"| mc
consent -->|"consent change events"| integ
mc -.->|"unsubscribes and bounces"| integ
integ -.->|"inbound opt-outs"| consent
integ -->|"subscription updates"| braze
braze -.->|"Braze opt-outs"| integ
integ -->|"change log"| audit
classDef salesforce stroke:#125BD8,fill:#e8f0fd
class crm,mc salesforce
classDef data stroke:#2f8a3a,fill:#e9f6ea
class d360 data
classDef integration stroke:#334155,fill:#eef2f6
class integ integration
classDef security stroke:#1f2937,fill:#f3f4f6
class consent,audit security
classDef channel stroke:#2f8a3a,fill:#ffffff
class forms,app channel
classDef external stroke:#64748b,fill:#ffffff
class braze external