Destinations & Activation → Real-time Activation

Web / App Personalization

Serves personalized content, recommendations, and offers back into the website or app in near-real-time based on the customer's current profile and propensity.

High-Level Design

Personalization closes the loop: the same channel that generated the data now consumes it back.

Data Source
Customer Touchpoints
Web / Mobile Apps — this capability's own destination
→
Ingestion
Ingestion Layer
SDKs, connectors, protocols
→
Processing
Transformation & Processing
Session-level event stream informing personalization
→
Foundation
Unified Customer Profile
LTV band, lifecycle stage, preferences
→
Intelligence
Propensity Scores
Next-best-action / recommendation input
→
Activation
Web / App Personalization
.NET Core Activation API personalization endpoint

💼 Business Context

  • Closes the loop between data collection and the customer's own next experience — the most direct, visible payoff of the entire CXOS pipeline
  • Higher-converting than generic content because it is grounded in the same unified profile every other capability reads from
  • Owned by Product Engineering, in partnership with Marketing Technology

🔌 Technical Overview

The website/app calls a low-latency personalization endpoint on the .NET Core Activation API (Docker container on AKS, fronted by Azure API Management) at page-render or session-start time, which combines Unified Customer Profile attributes and Propensity Scores' next-best-action output, cached in Azure Cache for Redis to keep response times inside a page-render budget. This is the one activation destination where the Cxos.Ingestion.Client SDK's own touchpoint is also the read target, making it the tightest latency requirement in the module.

Personalization Inputs

LTV band / lifecycle stage Propensity next-best-action Recent browsing session A/B experiment assignment

💾 Personalization Response

GET /v1/personalize?customer_key=cust_004821&surface=homepage

{
  "hero_variant": "gold_tier_loyalty_banner",
  "recommended_products": ["sku_2291", "sku_4471"],
  "next_best_action": "upgrade_offer"
}

🔗 Integration Points

  • Client SDKs (Ingestion Layer) — the same touchpoint that generates the data this endpoint reads
  • Unified Customer Profile, Propensity Scores — primary inputs to the personalization decision
  • Azure Cache for Redis — keeps response latency inside a page-render budget
  • Azure API Management — gateway in front of the personalization endpoint

🧰 Services Consumed

  • Owning microservice — Cxos.Activation.Api (see the Full Application Service Map)
  • Database — Azure Cosmos DB (dispatch log) + Azure Cache for Redis (frequency caps)

⚠️ Non-Functional Considerations

  • Scale: must handle full site/app traffic concurrency, not just campaign-triggered bursts — the highest-QPS destination in this module
  • Latency: p99 under 150ms, since this call sits directly in the page-render or session-start critical path
  • Reliability: falls back to a sensible default (non-personalized) experience if the profile or propensity lookup times out, rather than blocking the page
  • Security/Privacy: personalization decisions respect consent_basis for the "analytics/personalization" purpose specifically, distinct from marketing consent

🎯 Enterprise Example

A returning gold-tier customer lands on the homepage and sees a loyalty-tier banner and two recommended products chosen from their browsing history — rendered in the same request as the page itself, with the fallback default experience used automatically on the rare occasion the personalization call doesn't return in time.

← Back to Real-time Activation