Northscale Studio · Portfolio case study · 2026
Live · in production
← All work
Case study · Voice AI · Vapi · Twilio · Claude · Supabase

The phone still rings. Now something answers it, and writes it all down.

A production voice agent that answers the line for service businesses: salons, dental practices, trades, home services. It books, reschedules, answers the repetitive questions and writes every call into a structured record, escalating to a human only when intent slips. Sub-second turn-taking on a real telephony stack.

Salons & spasDental & medicalTrades & home services Multi-location franchisesAfter-hours coverageBooking & rescheduleAudit trail per call
~250 msTTS time-to-first-byte
Sub-1sTurn-taking latency
24/7Answered, every hour
100%Calls with an audit trail
The case study

This is the agent handling a real call.

Real audio from the production stack. The assistant greets the caller, understands intent, takes the booking against live availability, confirms it back, and closes the call, then writes the structured summary the business reads later.

The missed-call math

A missed call at a service desk is a booking that walked to a competitor.

Industry studies put missed-call rates at small service businesses at 25–40%, higher after hours and during busy periods. Each missed call at the front desk is a booking, a quote or a return visit that often never calls back. The agent picks up every one.

Missed calls
25–40%
at a typical service desk
After-hours
67%
of voicemails never call back
Per booking
€40–250
value of a recovered call
Coverage
24/7
every call answered live
01 · Who it helps

Built for the desks that lose money every time the phone goes unanswered.

If your front desk is also your sales channel, the math works. Four business profiles where one agent covers the line the staff can't always reach.

01

Salons & spas

Staff have their hands full with clients. The agent takes the booking, the reschedule and the "are you open Sunday" without pulling anyone off the floor.

02

Dental & medical practices

Front desk overwhelmed at peak; recalls and reschedules slip. The agent handles routine scheduling and escalates anything clinical to a human.

03

Trades & home services

The plumber is under a sink, not by the phone. The agent qualifies the job, books the visit and captures the address while they work.

04

Multi-location franchises

One consistent voice across every location, every booking in one system, every call on the record, without hiring a call centre.

02 · Why it matters

The cost isn't the call you take. It's the one you never knew you missed.

A voicemail is not a safety net. Most callers hang up and dial the next listing. And without a record of what was said, a "yes" on the phone becomes a dispute at the desk. The agent removes both gaps at once.

✕ Without the agent

  • A quarter to a half of calls go unanswered at peak and after hours
  • Voicemails are left, rarely returned, never measured
  • No record of what was promised on the call
  • Staff pulled off paying work to answer the phone

✓ With the agent

  • Every call answered live, in under a second, at any hour
  • Bookings and reschedules written atomically, no double-booking
  • A structured transcript and summary for every single call
  • Humans handle only what actually needs a human
03 · The build

Real telephony, deterministic tools, a record of every call.

Twilio brings the call in; Deepgram transcribes; Claude reasons over a typed tool schema and never invents a slot; streaming TTS answers at ~250 ms; every booking is an atomic upsert in Supabase keyed on the call ID; the post-call summary writes the record the business reads.

→ 01
TelephonyTwilio inbound number, live audio
→ 02
Speech-to-textDeepgram streaming transcription
→ 03
ReasoningClaude over a typed tool schema
→ 04
Voice outStreaming TTS, ~250 ms TTFB
→ 05
RecordAtomic booking + call summary
Call flow: caller dials in → intent understood → checks live availability → branches: book · reschedule · answer FAQ · escalate to a human → confirms back → writes a structured summary.   ⏱ Sub-second turn-taking · atomic upserts on the call ID · audit trail by default.
04 · The operator view

The same line the agent answers, made legible to a human.

Three views of the live system: the call console where a conversation is happening right now, the ledger where every call is written to the record, and the calendar where the bookings the agent took land straight in the business's week.

Call console · in progress
On the line
Answered
📞
Incoming caller
+44 ••• 4471
01:12
Northscale · business line
Duration01:12
IntentBooking
Turn latency0.8s
Status● live
Live transcript
AgentGood afternoon, thanks for calling. How can I help?
CallerHi, I'd like to book in for a consult sometime this week.
AgentOf course. I've got Wednesday at 2pm or Thursday at 10am. Which suits?
CallerThursday morning works.
AgentBooked you in for the 10am consult on Thursday. Can I take a number to confirm to?
CallerYes, it's the one I'm calling from.
Intent confidence
97%
Every call answered, understood, booked. The agent picks up on the first ring, holds a natural conversation, and books against live availability while the call is still happening, with sub-second turn-taking on a real telephony stack.
Call ledger · append-only
Streaming
TimeCallerIntentOutcomeDuration
14:38+44 ••• 4471Booking✓ Booked1:18
14:12+44 ••• 9023Reschedule✓ Rescheduled0:54
13:47+44 ••• 6610FAQ✓ Answered0:31
13:20+44 ••• 2185Booking✓ Booked1:42
12:55+44 ••• 7734Hours✓ Answered0:22
12:31+44 ••• 5098Booking● Escalated2:05
11:58+44 ••• 3361Reschedule✓ Rescheduled1:09
11:30+44 ••• 8847Booking✓ Booked1:33
8 of 142 calls today · append-only · every call written to the record · exportable
Every call written to the record. Time, masked caller, intent, outcome and duration: one structured row per call, searchable and impossible to lose. A "yes" on the phone is never a dispute at the desk.
Live calendar · this week
Calendar sync
Week of 18 May
● synced
Mon
Tue
Wed
Thu
Fri
Sat
09:00
Follow-up09:00
Consult09:30
10:00
Consult10:00
Consult10:00
Follow-up10:15
11:00
Reschedule11:00
Consult11:30
14:00
Follow-up14:00
Consult14:30
Consult14:00
15:00
Consult15:00
Reschedule15:30
Bookings land straight in the live calendar, written atomically, keyed on the call, with no double-booking.
Bookings land straight in the live calendar. The slot the agent confirmed on the call is the slot that appears here, written the moment the caller agrees, into the same calendar the business already runs its day on.