flowchart TD Start(["User query received
e.g. 'Show me sales data'"]):::startNode Auth{"User
authenticated?"}:::decision Generic["Generic response
public info only,
standard format"]:::deny Load["Load user context
profile, prefs, history, session"]:::context Perm{"Has data
permissions?"}:::decision Denied["Permission denial
explain limits, offer to
request access"]:::deny Prefs{"Has preference
settings?"}:::decision Defaults["Use defaults
standard verbosity,
table format"]:::context Apply["Apply settings
preferred verbosity,
format, scope"]:::person History["Analyze user history
patterns, expertise level"]:::context Match{"Query matches
a known pattern?"}:::decision Enhanced["Enhanced response
data + proactive
follow-ups"]:::person Standard["Standard personalized
response
data + prefs + scope"]:::person Log["Log interaction
capture feedback,
update history"]:::context End(["Deliver personalized
response"]):::endNode Start --> Auth Auth -->|No| Generic Auth -->|Yes| Load --> Perm Perm -->|No| Denied Perm -->|Yes| Prefs Prefs -->|No| Defaults --> History Prefs -->|Yes| Apply --> History History --> Match Match -->|Yes| Enhanced --> Log Match -->|No| Standard --> Log Log --> End classDef startNode fill:#455a64,stroke:#263238,stroke-width:2px,color:#fff,font-size:13px classDef endNode fill:#455a64,stroke:#263238,stroke-width:2px,color:#fff,font-size:13px classDef decision fill:#f57c00,stroke:#e65100,stroke-width:2px,color:#fff,font-size:13px classDef context fill:#2e9e5b,stroke:#1b5e20,stroke-width:2px,color:#fff,font-size:13px classDef person fill:#7b3fb5,stroke:#4a148c,stroke-width:2px,color:#fff,font-size:13px classDef deny fill:#e53935,stroke:#b71c1c,stroke-width:2px,color:#fff,font-size:13px linkStyle default stroke:#888,stroke-width:2px,font-size:12px
Personalization Decision Tree
Node colors
Decision point
Load context
Personalize
Access denied

Step Details

Hover a node to see what the system does. Permission checks are security-critical; explicit preferences override learned behavior; about 80% of queries match a pattern after 20+ interactions.
Personalization data sources
1. User Profile → role, permissions, department
2. User Preferences → explicit settings
3. User History → learned patterns
4. Session Context → current task state
Example user context
Name: Bob Martinez
Role: Regional Sales Manager (NW)
Prefs: verbosity=concise, format=charts
History: 89 queries, 72% regional sales
Pattern: always asks Q-over-Q comparison