# A Danish voice agent on live clinic phone lines

> A voice agent that answers clinic calls in Danish, books, reschedules and cancels appointments, and calls new leads within seconds of opt-in.

- Client: A multi-location clinic platform in Denmark (anonymous)
- Type: Inbound reception and outbound speed-to-lead
- Category: Realtime voice AI
- Status: Early production
- Stack: OpenAI Realtime · Twilio · GoHighLevel · EasyPractice · EasyMe · Railway
- Result: ~500 ms voice latency on live phone calls (Early production.)
- Result: 975 / 56 calls and bookings (Early production.)
- Result: ~6% lead to booking, roughly (Early production.)
- About these numbers: Early production: 975 calls and 56 bookings, roughly 6% lead to booking. An early-production result, not a full rollout.
- Built by: Luka Abramović (https://lukaabramovic.com/)
- Canonical: https://lukaabramovic.com/work/danish-voice-agent/

---

<PipelineDiagram
  label="Diagram. Inbound: a caller reaches the clinic's phone line, the realtime voice model talks with them, booking state controls what can change, and the clinic calendar is updated. Outbound: a lead opts in, the agent calls within seconds, qualifies against the campaign offer and books. When a call needs a person, an SMS summary is sent."
  rows={[
    {
      title: 'Inbound reception',
      steps: ['Caller', 'Clinic phone line', { label: 'Realtime voice model', accent: true }, 'Booking state', 'Clinic calendar'],
    },
    {
      title: 'Outbound speed-to-lead',
      steps: ['Lead opts in', { label: 'Call within seconds', accent: true }, 'Qualify against the offer', 'Book'],
    },
  ]}
  handoff={{ label: 'SMS summary to a person', detail: 'when a call needs one, from either flow' }}
  note="Per clinic: persona, services, campaigns, numbers, calling windows"
>
How a call moves through the system. Diagram only: the client is anonymous, so no screenshots or brand names.
</PipelineDiagram>

## A demo was not the goal.

A convincing voice demo was not the goal. It had to work with real phone audio, Danish names and numbers, clinic calendars, lead triggers and callers who do not follow a script.

## What I built

- A rebuilt voice pipeline on OpenAI Realtime and Twilio, kept at around 500 ms latency
- Inbound reception for FAQs, booking, rescheduling and cancellation, with strict booking state
- Outbound calls triggered from GoHighLevel within seconds of a lead opting in, qualifying against the campaign offer and booking
- A multi-tenant clinic platform: per-clinic personas, services, campaigns, phone numbers, calling windows and dashboards, plus an SMS summary to a person when a call needs one

## My role

I ran this from the first call: scoped it, rebuilt the voice pipeline on OpenAI Realtime and Twilio, designed the booking state, connected leads and calendars, and stayed after launch to tune it on real calls.

1. First call
2. Discovery
3. Scope & proposal
4. Solution design
5. Build lead
6. Launch
7. Iteration

> Clear communication, set KPIs and expectations with us, stayed after launch to optimize and fix.
>
> – Upwork client · AI voice receptionist for multi-location clinics · July 2026 (excerpt)

## What this proves

Realtime voice AI becomes a product only when the conversation is tied to reliable state, real business actions, per-client configuration and a clear route back to a person.
