Composite study

This is a product-class write-up, not a named-client story and not a results press release. Counts below describe the pack we actually write (approach points, tools, layers) — not invented bug totals or conversion lifts.

4
Approach points
4
Tools in the pack
4
Layers covered
3
Challenges documented

Overview

Intent routing worked in a headset. On speakerphone, “send four hundred to Jordan” became a different amount or name.

When confidence was low, the agent still executed instead of repeating back.

Industry pattern this is grounded in

Voice adds ASR error on top of tool-call risk. Confirmation has to be heard, not assumed. DTMF fallbacks still need to exist.

Highlights

Typical launch bar: Wait until journeys and evals agree — do not ship on demo scores alone.

Challenges

01

We could not call real customers. Fixture audio had to cover accents, overlap, and noise.

02

The NLU vendor and the LLM vendor scored “success” differently.

03

Call recordings in a third-party bucket were a data-residency surprise.

How we tested

01

High-stakes actions require repeat-back of amount, destination, and a second confirmation.

02

Low ASR confidence → clarify or DTMF, never write.

03

Same IDOR and idempotency tests as the non-voice API.

04

Barge-in and timeout UX.

Starting point vs what we required

Starting point versus the controls we required
Starting pointWhat we required
We could not call real customers. Fixture audio had to cover accents, overlap, and noise.High-stakes actions require repeat-back of amount, destination, and a second confirmation.
The NLU vendor and the LLM vendor scored “success” differently.Low ASR confidence → clarify or DTMF, never write.
Call recordings in a third-party bucket were a data-residency surprise.Same IDOR and idempotency tests as the non-voice API.

What we delivered

01

LLM traces / evals

  • LangSmith — ASR text vs tool args vs confirmation
02

API / contract

  • Postman — Same transfer API from voice tokens
03

Journeys / UI

  • Playwright — Account-linked voice settings and receipts
04

Adversarial evals

  • Promptfoo — Social-engineering on the speech-to-text transcript

Outcomes

Transfers without a confirmed repeat-back failed. DTMF path was tested as a first-class journey. Recording bucket policy went in the report.

Idempotency keys on the voice path used the same ledger tests as the app.

Stack

Testing stack used on this product class
LayerToolWhat we validated
LLM traces / evalsLangSmithASR text vs tool args vs confirmation
API / contractPostmanSame transfer API from voice tokens
Journeys / UIPlaywrightAccount-linked voice settings and receipts
Adversarial evalsPromptfooSocial-engineering on the speech-to-text transcript

Same method as the rest of our work: severity-ranked findings, pass rules in writing, and a ship / wait / block call. See the evaluation method and tool comparison.