Customer Intent Engine

2026 · AWS Agent Core · Fast MCP · AWS Bedrock · Snowflake · MLflow · CloudWatch

Business Problem

The Contact Centre handles thousands of customer conversations every month. The upstream CX LLM pipeline already processes every call and writes five structured summary columns per conversation to Snowflake, with PII masked before storage. Despite that investment, no systematic way existed to query what customers were calling about, how sentiment was trending, or what was driving subscription cancellations.

Customer surveys add a second layer of signal: NPS, satisfaction, and campaign feedback collected across Nationale Postcode Loterij and Vriendenloterij. These were also siloed, with no shared query layer connecting survey trends to call driver trends. Operational questions that should take minutes, like "what is driving call volume this week?" or "is survey satisfaction down since we changed the campaign?", either went unanswered or required disproportionate analyst effort.

Solution

The Customer Intent Engine adds an AI agent layer on top of these two existing data assets. A daily aggregation pipeline reads the Snowflake conversation summaries and survey data, extracts themes using Claude on Bedrock, and writes pre-computed aggregations back to Snowflake. From there, a Fast MCP server exposes one dedicated tool per customer service topic (call reason, sentiment, churn reason, customer feedback, agent dynamics) and one tool per survey type.

AWS Agent Core on Bedrock orchestrates tool calls in response to natural-language questions from Marketing, CS Analytics, and Customer Research. Its memory module retains context across sessions: active marketing campaigns, brand identity guidelines, and operational processes. The agent already knows what campaigns ran last Monday before it pulls sentiment trends from the same period, producing answers grounded in business context rather than raw data alone.

All outputs are aggregated-only by design. The system never surfaces individual conversation records. This keeps the DPO review scope narrow, avoids re-identification risk at the query layer, and keeps the system out of scope for EU AI Act individual-decision obligations.

Architecture

Customer Intent Engine architecture
architecture_v1.svg

Technical Challenges

MCP tool granularity. Each CS topic column and each survey type has its own dedicated tool, which keeps individual tools simple and their outputs precise. The agent must correctly route multi-topic questions across tools and synthesize coherent answers from heterogeneous schemas. The system prompt encodes which tool covers which question type; MLflow tracks each version of that routing logic so regressions are traceable.

Agent memory design. AWS Agent Core memory persists campaign schedules, brand tone guidelines, and process documentation across sessions. Keeping memory fresh without manual updates requires discipline: campaign data syncs nightly from the marketing calendar, and process documentation is versioned and linked rather than embedded, so the agent always reads the current version.

Aggregated-only constraint under natural language. Users phrase questions that would naturally return individual records: "show me calls where customers mentioned bereavement last Tuesday". The agent re-scopes these to aggregate equivalents without confusing the user. The system prompt enforces this; every response includes a coverage note showing how many records the answer is based on, which also gives users a sense of statistical weight.

Prompt and tool version drift. Theme labels evolve as call patterns change. A prompt update that reclassifies a topic can break week-on-week trend comparisons. MLflow tracks every prompt version paired with the tool it runs against and the aggregation run that produced the output, making it possible to audit whether a trend change is data-driven or label-driven.

Observability at two layers. CloudWatch covers infrastructure: Lambda execution time, error rates, Bedrock invocation counts, and MCP server latency per tool. Pipeline health also requires data-quality metrics: error record rates in the upstream CS summaries, theme distribution shifts, and survey coverage gaps. Both layers feed into the same CloudWatch dashboard so operational and data quality signals appear side by side.

MVP Status

The MCP server is running with tools covering all five CS topic columns and the two current survey types. AWS Agent Core with memory is live and answering questions for CS Analytics and Customer Research in an internal beta. CloudWatch and MLflow are wired up for both the aggregation pipeline and the agent layer.

The system is not yet in production for Marketing. Campaign context in agent memory is seeded manually for now, pending the nightly sync from the marketing calendar. Theme extraction accuracy sits at 82% agreement with human labels on a 100-record spot-check, above the 80% threshold set for MVP sign-off. Latency on a typical question, including tool calls and synthesis, is under 8 seconds at P95.

Next Steps

  • Automated campaign memory sync: nightly Lambda pulls active campaigns from the marketing calendar into agent memory, removing the manual seeding step before Marketing rollout
  • Expand survey coverage: add the prize feedback survey once data volume reaches the minimum for reliable aggregation
  • RAGAS evaluation suite: automate faithfulness and answer-relevance scoring on a weekly golden question set, replacing the current manual spot-checks
  • Marketing production rollout: scoped access with role-based tool permissions so Marketing can query campaign feedback without access to churn reason analysis
  • Theme drift alerting: CloudWatch alarm when a theme's weekly share shifts by more than 15 percentage points, signalling a real trend or a prompt version side-effect