Intelligence & Services → AI & Insights

AI Copilot

The conversational assistant that ties Natural Language Query, Propensity Scores, and Anomaly Detection together into one interface business users actually talk to.

High-Level Design

AI Copilot is the user-facing surface that composes every other AI & Insights capability.

Data Source
Data Sources
Every touchpoint and business system
→
Ingestion
Ingestion Layer
SDKs, connectors, protocols
→
Processing
Semantic Layer
Grounds every metric the copilot can reference
→
Foundation
marts.* tables
Ultimate source of every answer
→
Intelligence
AI Copilot
Azure OpenAI Service orchestrating NLQ, Propensity, Anomaly Detection
→
Activation
Business Users
Marketing, support, and ops teams querying conversationally

💼 Business Context

  • Consolidates several previously separate capabilities (ask a question, check a customer's risk, see what's anomalous) into one conversational entry point, instead of a business user needing to know which tool does what
  • Lowers the skill floor for getting value from the Intelligence & Services layer without engineering support
  • Owned by Data Science / Analytics Engineering

🔌 Technical Overview

The AI Copilot is a .NET Core service (Docker container on Azure Container Apps) that orchestrates calls across Natural Language Query, Propensity Scores, and Anomaly Detection behind Azure OpenAI Service's function-calling, letting a user ask "which customers are at risk of churning in APAC" and have the copilot resolve it into a semantic query plus a propensity-score filter, rather than requiring the user to know both capabilities exist separately. Conversation state and function-call history are stored in Azure Database for PostgreSQL for session continuity.

Composed Capabilities

Natural Language Query Propensity Scores Anomaly Detection Semantic Layer metric lookup

💾 Copilot Function-Call Trace

User: "Which APAC customers are at risk of churning?"
-> function_call: propensity_scores.filter(region=APAC, churn_risk>0.7)
-> function_call: profile_api.batch_lookup(customer_keys)
-> response: "14 customers, avg LTV band gold. Top 3: ..."

🔗 Integration Points

  • Azure OpenAI Service — conversation and function-calling orchestration
  • Natural Language Query, Propensity Scores, Anomaly Detection — the capabilities the copilot composes
  • Profile API — resolves customer_keys returned by other capabilities into readable profile summaries
  • Application Insights — traces the full function-call chain per conversation for debugging and cost tracking

🧰 Services Consumed

  • Owning microservice — Cxos.Intelligence.Api (see the Full Application Service Map)
  • Database — Azure Data Explorer/Kusto (scoring time series) + Azure Database for PostgreSQL

⚠️ Non-Functional Considerations

  • Scale: conversation volume scales with active business users, a much smaller number than raw event volume
  • Latency: a multi-function-call question typically resolves in 3-5 seconds end to end
  • Reliability: each composed function call is independently validated and entitlement-checked, so a partial failure (e.g., propensity service down) degrades to a clear error rather than a fabricated answer
  • Security/Privacy: the copilot inherits the asking user's own entitlements for every underlying call — it has no elevated access of its own

🎯 Enterprise Example

A support team lead asks the copilot which of their assigned accounts are at high churn risk and gets a ranked list with LTV context in one conversational turn — a query that previously required pulling a propensity export and cross-referencing it against a CRM view manually.

← Back to AI & Insights