DEV Community

Hieu Luong
Hieu Luong

Posted on • Originally published at himitek.com

Case Study: How a Dental Clinic Chain Saved VND 480 Million a Year with an AI Agent

1. Pain – Empty appointment slots are not just a front-desk problem

At 7:30 a.m., Minh, the manager of a six-branch dental clinic chain in Ho Chi Minh City, opened the daily report and found 23 empty appointment slots. Some patients had booked but never arrived; others cancelled at the last minute. Receptionists were still making confirmation calls manually, dentists were unevenly scheduled, and the waiting list was scattered across multiple systems.

This is a measurable combination of a high no-show rate, sudden cancellations, and weak scheduling coordination. When every branch keeps operating through manual work, the business builds technical debt, patches broken processes, and reports KPI ảo instead of real performance.

2. Agitate – Every empty slot is lost revenue

Across six branches, an 18% no-show rate left valuable treatment hours unsold. Receptionists spent dozens of hours each week on repetitive calls while dentists, chairs, and equipment remained idle. If a patient cancelled at 9 a.m. but the waiting list was contacted at 2 p.m., the revenue opportunity was already gone.

This creates an operational bottleneck: staff are overloaded, managers lack daily visibility, and owners lose money without knowing which branch is responsible. A rushed AI project or a half-optimized workflow would only add cost. The first target must be empty slots, missed appointments, and wasted staff time.

3. Solve – A measurable three-step AI Agent rollout

Step 1: Standardize data and score appointments. HimiTek connects to the clinic's existing scheduling data and classifies appointments by service value, priority, and no-show risk. The clinic does not need to replace its current software. During the first 30 days, the team tracks only three metrics: no-show rate, schedule utilization, and recovered revenue.

Step 2: Automate reminders and fill cancelled slots. The AI Agent sends confirmations, preparation instructions, and follow-ups based on each patient segment. When a cancellation occurs, it contacts suitable waiting-list patients automatically instead of making receptionists call one by one.

async function handleCancellation(slot) {
  const candidates = await waitlist.findByService(slot.service);
  const selected = candidates.filter(c => c.confirmationScore >= 0.7).slice(0, 5);
  return agent.sendOffers(selected, {
    slotId: slot.id,
    requireHumanApproval: true
  });
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Add safety controls and scheduling coordination. The Reasoner analyzes; the Actuator executes approved tasks. HimiTek uses OpenClaw Gatekeeper, 9router v0.4.66, and LiteLLM dual-instance failover to control model traffic. Rate limiting, automatic API-key rotation, and hard budget caps such as 5 USD per virtual key or developer help prevent runaway loops. Dangerous shell or bash actions remain locked by default and require a whitelist or explicit staff approval.

  • Require human approval for high-value cases or sensitive requests.
  • Apply branch-level data permissions and keep a complete action log.
  • Generate daily reports covering no-shows, utilization, lost revenue, and dentist performance.

After three months of testing, the no-show rate fell from 18% to 8%, schedule utilization rose by approximately 14%, and manual confirmation time dropped by nearly 70%. The system filled 60–80% of same-day cancelled slots and recovered an estimated VND 40 million per month, equivalent to VND 480 million per year across the chain.

4. CTA – Start with one workflow, not an oversized project

If your clinic chain is losing revenue through empty slots, begin with appointment confirmation and waiting-list activation over a 30-day pilot. HimiTek can measure the result first, then expand into dentist coordination, post-treatment care, and demand forecasting. The outcome is practical: fewer no-shows, less receptionist workload, and more revenue recovered from hours that would otherwise remain unused.

Top comments (0)