Call Center
Voice interactions through the contact center — call metadata, IVR selections, agent notes, and outcomes — usually sourced from a CCaaS platform.
High-Level Design
CCaaS export → Azure Blob Storage → .NET Core microservices on Azure.
💼 Business Context
- The highest-cost-per-interaction channel — connecting it to CXOS ties call outcomes to lifetime value and churn risk
- Enables agent coaching and QA automation at scale instead of manual sampling
- Owned by Contact Center Operations, often co-funded by CX Analytics
🔌 Technical Overview
CCaaS platforms (Genesys, NICE, Five9) export call metadata and recordings to Azure Blob Storage on a schedule; a timer-triggered .NET Core Azure Function picks up new files and calls the Ingestion API through Cxos.Ingestion.Client — the same contract as every real-time touchpoint. Recordings are transcribed and redacted (PCI/PII) by a .NET Core batch worker before the transcript is attached to the call record. Caller ID or an IVR-entered account number is matched to a known customer profile via the Identity API.
Typical Events
💾 Sample Event Payload
{
"event": "call_ended",
"event_id": "a4d1c9e2-5b8f-4a3e-9c1d-7e2f8a0b4d56",
"timestamp": "2026-08-01T11:03:12Z",
"user_id": "cust_004821",
"context": {
"channel": "call_center",
"agent_id": "agt_302",
"queue": "billing"
},
"properties": {
"duration_seconds": 342,
"disposition": "resolved",
"csat_score": 4
}
}
🔗 Integration Points
- Azure Blob Storage — CCaaS export landing zone
- Timer-triggered Azure Function (.NET Core) — batch pickup and Ingestion API call
Cxos.Ingestion.ClientNuGet package — shared ingestion contract- Azure OpenAI Service — transcript topic/sentiment modeling
- Reverse ETL — CRM case sync via the Activation API
⚠️ Non-Functional Considerations
- Scale: call volume spikes correlate with outages/incidents — the batch pipeline is decoupled from real-time load
- Latency: most call analytics run as scheduled batch (hourly); escalation-risk flags use a near-real-time path where the CCaaS platform supports it
- Reliability: the batch worker supports reprocessing/backfill when the redaction model is updated
- Security/Privacy: PCI redaction runs before the transcript reaches the Data Lakehouse; the Blob landing zone uses short retention + Azure Key Vault-managed encryption
🎯 Enterprise Example
A financial services contact center exports call metadata and recordings to Azure Blob Storage nightly. The .NET Core batch worker redacts PCI data and calls the AI & Insights API, backed by Azure OpenAI Service, which surfaces a rising cluster of "fee dispute" calls tied to a recent statement change — reaching the product and billing teams within a day instead of the next quarterly QA review, and cutting related call volume by 22% within two weeks.