MikisAI: Voice-AI Appointment Platform
Voice calls routed into configurable clinic booking workflows.
MikisAI is a voice-AI appointment platform built around an operational reality: a phone call often needs to become a reliable action, not just an answer. My role focused on product and technical implementation across the voice flow, booking logic, business configuration, and customer-facing operations tooling.
Configured for each clinic
The product is data-driven rather than built as a separate agent for every customer. A business can configure its profile, services, staff, scheduling, policies, messaging, agent identity, and supported languages. That same configuration gives the agent the context it needs to handle a caller consistently.
Business users can configure the agent's identity, behaviour, messaging, and supported languages without changing the voice-agent code.
Booking logic that can handle change
The implemented dental flow supports new bookings, cancellation, and rescheduling. It uses deterministic routing and state-machine logic for service selection, dates, slots, confirmation, and conflict recovery. Availability is treated as a candidate list: if a slot is no longer available when a caller confirms it, the system refetches alternatives instead of treating the first result as guaranteed.
The portal gives the business a calendar view of appointments alongside filters, status summaries, and manual booking controls.
Staff, services, and schedules behind the call
Booking is connected to the operational model behind the call: staff qualifications, services, working hours, breaks, blocked time, and emergency capacity. This keeps the voice flow grounded in the same information the business uses to manage appointments.
Staff profiles connect service qualifications with the scheduling information that determines what can be booked.
Voice architecture and verification
Inbound calls are routed through SIP telephony and LiveKit to a Python voice worker. The worker uses speech recognition and text-to-speech services, while the business backend provides availability, booking, and configuration data. Large-language-model use is intentionally bounded to fallback tasks such as low-confidence service matching and optional answer rephrasing; core routing and booking transitions remain deterministic.
The repository includes focused tests for booking paths, conflicts, cancellation, rescheduling, routing, policy gates, and scheduling behaviour. The current implemented voice domain is dental clinics; restaurant data and backend support exist, but a corresponding restaurant voice workflow is not presented as complete.
Technical overview:
- Next.js, React, TypeScript, and a shared monorepo
- Python voice worker with LiveKit Agents
- Telnyx SIP telephony, OpenAI transcription, and Cartesia text-to-speech
- PostgreSQL with Drizzle, plus business, portal, and admin tooling
- Google Calendar and Microsoft/Outlook connection routes
- TypeScript, Python, and text-mode workflow tests in CI