Skip to content
qpoi.
← Selected work

Voice AI for B2B sales

Voice Sales Assistant

Field sales reps can ask about their accounts and hear answers drawn from live sales data. QPOI built the voice and chat assistant for a wholesale distribution software provider, with account permissions and answer validation shared across both interfaces.

Client
Confidential
Sector
Distribution
Platform
Web PWA + voice
Stack
React + NestJS
Engagement
Full product build
Status
In pilot

The project at a glance

The problem

Field reps needed account insights between customer visits without working through dashboards.

What QPOI delivered

QPOI built a voice and chat assistant that answers from the client's live sales data, with shared permissions and answer checks.

Delivery evidence

Deployed in pilot. The approved question set was evaluated against the live model and database.

Question-to-answer pipeline, as builtView diagramHide diagram
SPOKEN QUESTIONINTENT + SCOPEclassify, permission-pinGOVERNED QUERIESserver-written SQL onlySPOKEN ANSWERfigures trace to sourceVALIDATION GATE: A FIGURE THAT CANNOT BE TRACED IS NOT SPOKEN
1.0

The challenge

The client's platform already held account insights: declining sales, margins against benchmarks and products a customer had stopped buying. Accessing those insights meant reading dashboards, which did not suit field reps moving between customer visits.

The client wanted reps to ask questions aloud and receive answers about accounts they were permitted to access. Because those answers could inform customer conversations, QPOI needed to check generated figures against the source data before returning them.

2.0

Core features

2.1

Real-time voice

Speech-to-speech conversation with barge-in: the rep can talk over an answer or tell it to stop, like a real conversation. A typed chat interface shares the same pipeline.

2.2

Approved database queries

The model never writes SQL. It selects from a set of approved, parameterised query tools, and the server owns every query that touches the database.

2.3

Grounded answers

Generated figures, dates and names are checked against the query results. If the wording fails validation, a fixed template presents the returned data instead.

2.4

Permission-scoped data

Each rep sees only their own accounts. Scope is pinned server-side per session, and restricted fields are stripped before anything reaches the model or a cache.

3.0

Engineering fundamentals

3.1
Measured response times

The documented live-database question set had median answer latency below three seconds. Separate load tests measured database throughput with the model stubbed.

3.2
Offline tests and live-model evaluation

An offline suite of golden cases runs with no API key, and a live evaluation replays the full approved question set against the real model to catch what fixtures cannot.

3.3
Deployment to client infrastructure

A hardened Docker image served over HTTPS, sign-in against the client's existing user store, and observability down to per-stage timings and full transcripts.

4.0

Outcome

  • Deployed to the client's infrastructure, answering from their live database
  • The approved question set was evaluated against the live model and database
  • Voice and text use the same permission checks, query tools and answer validation
  • Backed by over 700 automated tests plus a live-model evaluation suite
Behind the build / Engineering notes
How it works, in detail

The pipeline stage by stage, the measurement methodology, and the faults the process caught before users could.

Read the engineering notes →

Built with

  • TypeScript
  • React (Vite)
  • NestJS
  • OpenAI Realtime API
  • SQL Server
  • WebRTC
  • Docker
  • nginx

Next project

Auddr.ai
Discuss a sales workflow