Case study · AI Systems
Emma Chat: an AI-native benefits assistant built for resolution, not containment
Agentic support for the employees of bswift's enterprise clients: personalized, claims-grounded answers, proactive guidance and smooth handoffs to human agents for complex moments.
- Client
- bswift
- Industry
- HR tech · Benefits administration
- Role
- Principal Engineer / Architect
- 80%
- autonomous resolution rate (reported by bswift)
- 750K+
- messages in 2025 (reported by bswift)
Scroll sideways to see the full diagram →
Context
bswift serves large employers, where supporting thousands of employees across health plans, eligibility, enrollment and claims is too complex to handle in-house. Its answer is a single portal where every employee gets end-to-end benefits support. Before Emma, that support ran through forms, phone and email: unified, but not intelligent.
The challenge
Build an assistant that actually resolves questions that depend on each employee's plan, eligibility and claims. The answers live across relational and non-relational stores, plan documents and real-time business rules in bswift's .NET platform, and every request must respect tenant isolation, permissions and governance for each employer.
The solution
A Next.js conversational interface backed by services on AWS, a model abstraction layer over OpenAI and Anthropic, and a LangGraph orchestration workflow. An entry node classifies the employee's intent and routes the conversation to the right retrieval strategy: documents, knowledge graph, structured data or live business rules.
Intent router
LangGraph entry node that classifies each turn and selects the retrieval path, so sensitive flows follow explicit, testable routes.
Hybrid retrieval (GraphRAG)
Embeddings of benefit plans, policies and FAQs in a vector store on AWS, combined with a Neo4j knowledge graph that links plans, coverages, policies and documents.
Live business rules
Eligibility, claims and enrollment data fetched in real time through REST APIs from bswift's .NET backend, never copied into AI stores.
Tenant-aware governance
Every tool call is scoped to the employer and the employee's permissions, enforced by the platform that owns the data.
Human handoff
Escalation when confidence is low, the topic is sensitive or the employee asks for a person, passing a conversation summary and the retrieved context so nobody has to repeat themselves.
Evaluation loop
LangSmith tracing, a golden-query regression set and human review to measure answer quality before and after every change.
Key decisions
- 01
An explicit LangGraph workflow, not a free-form agent loop
Benefits questions touch health and money. Explicit nodes and edges make every path observable, testable and governable, and keep sensitive flows deterministic.
Alternatives considered A single ReAct-style agent with all tools; a custom orchestrator.
- 02
Live business data stays behind the .NET APIs
Eligibility and claims change constantly and are governed per employer. Querying them in real time keeps a single source of truth and leaves permission enforcement where it already lives.
Alternatives considered Syncing structured data into the vector store.
- 03
Graph plus vectors instead of vector-only RAG
Plan documents reference each other (plan, coverage, policy, FAQ). Similarity search alone misses those relationships; the graph brings back the connected context that makes an answer correct.
Alternatives considered Vector-only retrieval with larger chunks.
- 04
A provider-agnostic model layer
Choosing the best model per task across OpenAI and Anthropic, with fallback between providers and no lock-in as models evolve.
- 05
Resolution over containment
Success is a solved problem, not a deflected one. When the assistant cannot resolve a case safely, it escalates early with full context instead of keeping the employee in the bot.
What I did
- Designed the end-to-end architecture as Principal Engineer.
- Defined the LangGraph workflow: intent routing, retrieval paths and escalation.
- Designed the hybrid retrieval strategy over Neo4j and the vector store.
- Defined the integration contract with bswift's .NET platform, including tenancy, permissions and governance.
- Set up the evaluation practice with LangSmith, golden queries and human review.
Outcomes
- Launched publicly by bswift in February 2026 as the latest evolution of Emma Chat, powered by Emma Intelligence™.
- 750,000+ messages across 150,000 chat sessions in 2025, as reported by bswift.
- Personalized, plan-specific answers grounded in claims data instead of generic FAQ responses.
- Seamless transfers to human representatives with full context preserved, so employees never repeat themselves.
- Changes ship against a golden-query regression set, so answer quality is measured, not assumed.