Skip to content
ALGOLOGIX

Logistics · 2026

A voice agent that handles the overnight queue

An inbound voice agent for a freight operator, handling status enquiries and booking amendments outside staffed hours, with a clean handover into the morning queue.

The problem

Calls outside staffed hours went to voicemail, and the messages were transcribed by hand the next morning. Most were routine status enquiries that the operator's own systems could already answer.

Constraints

  • Had to run on the existing carrier numbers, with no change to routing
  • Callers frequently interrupt, and an agent that talks over them is worse than voicemail
  • Recording consent and retention rules applied to every call
  • The overnight window is short, so a slow rollout could not be tested in production

What we built

A voice agent on the existing SIP trunk, grounded in the operator's own tracking and booking APIs through typed tools. Barge-in handling and interruption recovery were treated as first-class behaviour rather than error states, and anything the agent could not complete was queued with a transcript and the caller's identity attached.

What we built

The agent sits on the operator's existing SIP trunk. Nothing about the published numbers changed — no porting, no new carrier, no change to daytime routing. Out-of-hours calls that previously hit voicemail are answered instead, and the daytime path is untouched.

The overnight path. Daytime calls never enter it.
  1. Answer and transcribe. Streaming speech-to-text, so the agent has partial text while the caller is still speaking rather than after they stop.

  2. Ground the turn. The agent calls the operator's own tracking and booking APIs through typed tools. It has no separate copy of the data and no cache, so it cannot be stale in a way the operator's own systems are not.

  3. Decide, then speak. A turn either completes, asks one clarifying question, or hands over. There is no fourth branch, which is what keeps the failure mode legible.

  4. Hand over with the context attached. An escalation writes the transcript, the caller's identity and the tool calls already made into the morning queue.

Barge-in is a feature, not an error

Callers interrupt. On a phone line that is normal conversational behaviour, and an agent that treats it as an error condition talks over people — which is worse than the voicemail it replaced.

So interruption handling was specified up front rather than tuned afterwards: speech from the caller stops synthesis immediately, the partial utterance is kept, and the agent resumes from what it had rather than restarting its turn. The evaluation set scores it directly.

The latency budget

Turn-taking latency is the number that decides whether a voice agent feels like a conversation, and it is a budget spent across the whole hop — not a property of the model. It was agreed during Discover, annotated at every stage, and measured end to end in the evaluation harness rather than at the model call, which is the measurement that flatters.

How we evaluated it

An evaluation set was built from recorded calls and scored on task completion, handover quality and turn-taking latency at every hop. Releases were gated on the suite, and the latency budget agreed in Discover was measured end to end rather than at the model call.

Results

Overnight calls handled without a person
Illustrative — this is a placeholder case study.
Median turn-taking latency
Illustrative — this is a placeholder case study.
Calls escalated with full context attached
Illustrative — this is a placeholder case study.

Stack

  • LiveKit
  • Deepgram
  • ElevenLabs
  • SIP / WebRTC
  • Anthropic Claude
  • FastAPI
  • PostgreSQL

Tell us what you are trying to ship.

The useful first conversation is about the constraint, not the technology. Bring the deadline, the data you actually have and the thing that has to be true — we will tell you what it takes, including when the answer is that you do not need us yet.