A ← Integrations
Internal · Dentrix MCP
Dentrix Dentrix
Agent file · KDC

Ava

Full daytime reception for KDC (Kelowna Dental Centre). She talks on Vapi GPT-Live. MCP reads patients and appointments through n8n → Kolla → Dentrix. She never invents chart data, and she does not claim a book or confirm until write tools exist.

Open in Vapi Ava · KDC · Talk
Who she is

Agent details

Name

Ava

Says it on the first line. Fixed identity. Do not swap the persona.

Clinic

KDC

Kelowna Dental Centre. Suite 100, 2033 Gordon Drive. Desk 7am–5pm Pacific every day.

Stack

GPT-Live

Vapi gpt-live-1 + speaker / reasoner + unhurried.

Timezone

America/Vancouver

Clinic hours and spoken times are Pacific.

Goals

What this integration is for

Answer like front desk

Hours, address, FAQs, callbacks. Short turns. One question at a time. No invented patients or visits.

Read the real Dentrix chart

Lookup by phone, then list appointments. Today is read-only. Book / confirm / cancel wait on write tools.

MCP is the only bridge

The model never talks to Dentrix itself. It calls two n8n tools over MCP. We inspect those runs in n8n executions.

Architecture

What we actually built

  1. Tester opens Ava - KDC in Vapi and uses Talk (or dials a number once one is attached).
  2. Vapi answers as Ava (GPT-Live speaker + reasoner).
  3. Reasoner uses MCP tool kdc_dentrix_mcp.
  4. n8n trigger path kdc-voice-read runs a Code Tool.
  5. That tool GETs Kolla Unify (dentrix-core / kdc-kolla).
  6. JSON comes back. Ava may only speak chart facts that the tool returned. If Kolla is suspended, she says the schedule is unreachable and takes a desk callback.

Where to click in our stack

Vapi assistant
Ava - KDC

Voice workflow
KDC · MCP · Voice (read)

MCP URL
https://automation.ayra.cx/mcp/kdc-voice-read

Clinic main line (desk, not Ava)
(250) 860-1414

How to test

Place a call, then check the system

On the phone / Talk

  1. Open Ava - KDC and start Talk. Org needs a payment method on file for chat/call.
  2. Speak like a patient. Do not say tool names, Dentrix, or Kolla.
  3. Give a callback phone when she asks. That is what drives lookup.
  4. Ask for hours or address first if you want FAQ-only (no MCP).
  5. Ask “when is my next appointment?” to force a lookup.
  6. After her closing line, she should hang up.

After you hang up

  1. n8n → KDC · MCP · Voice (read) → Executions. You should see the MCP Server run and the Code Tool that ran.
  2. Open the tool result. Expect find_patient then maybe get_appointments.
  3. If Kolla is suspended, the tool JSON says so. Ava must not invent a visit.
  4. Vapi call detail → tool rows for the MCP / endCall invocations.
  5. Fail if she named a time that never appeared in the tool return.
Scenarios

What we can test

Scenario You say Tools that should run Pass
Hours / address What are your hours? Where are you? None 7am–5pm Pacific every day. Suite 100, 2033 Gordon Drive. No MCP.
Patient lookup My phone on file is … When is my next visit? find_patient → get_appointments She only repeats times/providers from the tool. Or clearly says schedule unreachable.
No match Use a phone that is not on file find_patient No invented patient. Offers desk callback.
Kolla down Any chart ask while program is suspended find_patient She says she can’t reach the schedule. Takes a callback. Does not invent.
Book / confirm Can you book me Thursday at 2? Lookup only if she checks first She does not claim booked. Takes a message for the desk.
End call That’s all, thanks end_call_tool Full closing line, then hangup.
Examples

Scripts that exercise the MCP

FAQ only

Hi, what time do you close today, and what’s the address?

Expect no MCP. She answers from clinic facts.

Lookup

This is Dana. My number on file is 250-555-0100. Can you tell me when my next appointment is?

Expect find_patient then get_appointments. Cross-check the tool JSON in n8n.

Suspended / unreachable

Just checking my cleaning visit next week.

If the tool returns suspended, she must say the schedule is down and offer a desk callback—not invent a day.

Write request

Can you confirm my appointment for Thursday?

She can look it up. She must not say it is confirmed. Message for the desk.

On the system

What each layer should show

Clinic

Desk facts

Main line (250) 860-1414. Email info@kelowna-dental-centre.ca. Hours 7am–5pm Pacific daily. Ava is our GPT-Live clone, not the live Alvero overflow on the clinic numbers.

MCP / n8n

Workflow KDC · MCP · Voice (read). Path kdc-voice-read. Each Talk session that looks someone up should leave an execution with tool output.

Two tools

find_patient, get_appointments. Read-only. Plus Vapi end_call_tool. Writes (book / confirm / cancel) are not wired yet.

Known limits

Before you call this done

Kolla consumer

If Unify returns program has been suspended, live chart reads fail closed on purpose. Fix is on the Kolla side for kdc-kolla.

Vapi billing

Talk / chat need a payment method on the Vapi org. Without it you get 402. Attach a card, then retest.