Destinations & Activation → Real-time Activation

On-site Messages

In-session banners, modals, and inline messages triggered by real-time behavior — the fastest-firing destination, reacting within the same visit rather than a later one.

High-Level Design

On-site Messages react within the same session the triggering behavior happened in.

Data Source
Customer Touchpoints
Web / Mobile Apps — the live session generating the trigger
→
Ingestion
Client SDKs
Real-time session event stream (Ingestion Layer)
→
Processing
Stream Worker
Transformation & Processing evaluates in-session rules
→
Foundation
Unified Customer Profile
Suppression rules (e.g., don't show to existing subscribers)
→
Intelligence
Operational Services
Frequency capping shares the same Workflow Engine
→
Activation
On-site Messages
.NET Core Activation API, WebSocket/SSE push to the client

💼 Business Context

  • The only activation channel that can react and be seen within the same visit — exit-intent offers, low-stock nudges, and session-based upsells all depend on this speed
  • Lower cost per impression than paid channels since it uses a customer's own already-open session
  • Owned by Product Engineering / Marketing Technology

🔌 Technical Overview

A Stream Worker (Transformation & Processing) evaluates in-session behavioral rules (time-on-page, exit intent, cart value threshold) against the live event stream and, on a match, publishes to Azure Service Bus. The Activation API — a Docker container on Azure Container Apps — pushes the resulting message to the client over a WebSocket/Server-Sent-Events connection already established by the Client SDK, giving true within-session reaction rather than requiring a page reload.

Trigger Signals

Exit intent Time-on-page threshold Cart value threshold Low-stock nudge

💾 On-site Message Push

{
  "customer_key": "cust_004821",
  "trigger": "exit_intent",
  "message_variant": "10_percent_first_order",
  "suppressed_if": "existing_customer"
}

🔗 Integration Points

  • Client SDKs — maintains the live connection this destination pushes through
  • Stream Worker (Transformation & Processing) — evaluates in-session behavioral rules in real time
  • Azure Service Bus — carries the triggering event to the Activation API
  • Workflow Engine (Operational Services) — shared frequency-capping mechanism with SMS/Push

🧰 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: bounded by concurrent active sessions, not total customer base — spikes with traffic, not campaign size
  • Latency: sub-second from triggering behavior to message display, the tightest latency requirement of any destination in this module
  • Reliability: if the live connection has dropped, the trigger is simply not delivered rather than queued for a later session — on-site messages are inherently session-scoped
  • Security/Privacy: suppression rules (e.g., never show to existing subscribers) are enforced before the message is even evaluated, not just before delivery

🎯 Enterprise Example

A visitor adds an item to their cart, browses for two more minutes without checking out, and shows exit-intent behavior. Within milliseconds a 10%-off modal appears — a conversion path only possible because the trigger, evaluation, and delivery all happen inside the same live session.

← Back to Real-time Activation