Voxalytics

Call intelligence for sales and support teams: transcripts, AI scorecards and coaching from every recorded call.

A
Grade on the example call
93
Score of 100
11
Analysis tabs per call

What they came with

Most sales and support teams record every call and listen to almost none of them. A QA lead samples a handful a week, marks them against a rubric in a spreadsheet, and the coaching arrives days after the conversation it refers to. Everything else sits in the telephony system as audio nobody can search, so the objection that keeps killing deals is only ever heard by the rep who took the call. Voxalytics transcribes every recorded call, separates the speakers, scores it against the rubric and makes it searchable as soon as it ends.

What the engagement covered

  • Automatic transcription with speaker separation and timestamps
  • AI scorecard across opening, discovery, pitch, scheduling and closing
  • Buyer intent, churn risk and sentiment surfaced on every call
  • Speaker-separated transcript with timestamps and auto-scroll
  • Summary, sentiment, compliance and revenue views on the same call
  • Audio playback synced to the transcript at any speed

Technical detail

Ingest is a queue, not a request

Recordings arrive from telephony webhooks and scheduled pulls, and each one becomes a job row keyed by the provider's call id. A replayed delivery matches the existing key and is dropped, so a retrying webhook cannot produce a second transcript or a second analysis bill.

The diarised transcript is the index

Deepgram returns word-level timings and speaker turns, stored as turn rows against the call rather than one blob of text. Search runs on a Postgres full-text index over those rows, so a hit comes back as a timestamp the player can seek to instead of a file to sit through.

Scores carry a rubric version

The QA rubric is versioned criteria rows covering opening, discovery, pitch, scheduling and closing, and each score is written per criterion with the transcript span quoted as its evidence. The rubric version and model are stamped on every result, so changing the prompt grades new calls without silently rewriting old ones.

One bad model response fails one stage

Analysis output is parsed against a schema before anything is stored, and a malformed response fails only that stage. The transcript stays, the call stays visible with the analysis marked incomplete, and the stage retries on a delay queue rather than holding up everything ingested behind it.

The stack

Speech and language

DeepgramOpenAI

Backend

FastAPIPythonSQLAlchemyPostgreSQL

Ingest, jobs and storage

TwilioCeleryRedisAmazon S3

Interface

Next.jsReactTypeScriptTailwind CSS
Sector
Conversation analytics
Audience
Sales and support teams
Shape
Built, shipped and run by us
Stack
FastAPI, Deepgram, OpenAI
Next case studyNexa PeopleA multi-tenant HR platform: employee records, attendance, leave and payroll on one data model.

Something like this to build?

Tell us what runs today and where it hurts. An engineer reads it and replies.