An AI agent that handles scheduling, intake, insurance, and patient questions — with hard policy enforcement between the AI and your EHR.
LLMs handle understanding and language. Code handles decisions. A separate LLM audits the output.
The full patient interaction lifecycle — from first question to booked appointment — with real EHR integration.
Searches available slots across providers, filters by insurance and appointment type, and books directly into your EHR. Supports new patient intake with full registration flow.
Two-step OTP verification before any patient data is accessed. Identical responses whether or not a record exists — preventing enumeration attacks.
Real-time eligibility checks against your EHR. Matches patients to in-network providers automatically. Handles self-pay pricing transparently.
Deterministic hard rules gate every action. 48-hour cancellation window, 90-day booking horizon, staff-only appointment types — configured by admins, enforced by code.
Collects registration info conversationally — demographics, insurance card via photo upload, preferred provider. Books the first appointment in a single flow.
Every tool call, PHI access, policy violation, and supervisor verdict logged to date-partitioned JSONL. Full audit trail for HIPAA compliance review.
Real-time dashboard with KPIs, conversion funnels, outcome breakdowns, activity heatmaps, and full audit trails. Know exactly what your agent is doing.
The LLM is powerful but unreliable. We use it for what it's good at and constrain it with code for everything else.
ehr_cancel_appointmentehr_book_appointmentAdmins configure rules through the dashboard. Each rule is a pure function — field, operator, value. No LLM, no latency, no cost.
{
"name": "48-hour cancellation window",
"tool": "ehr_cancel_appointment",
"status": "live",
"severity": "high",
"check": {
"phase": "pre", // before tool executes
"field": "input.appointmentDate",
"operator": "time_within_hours",
"value": 48
},
"action": "block",
"message": "Our policy requires at least 48 hours notice..."
}
Enforce tool ordering without coding state machines. The engine tracks completed tools per session and blocks actions whose prerequisites haven't been met.
{
"name": "Insurance check before booking",
"trigger": "ehr_book_appointment",
"requires": ["ehr_check_eligibility"],
"then": ["stripe_request_card"],
"message": "Insurance eligibility must be verified before booking."
}
// The engine checks session.toolLog:
// "ehr_check_eligibility" completed? → allow ehr_book_appointment
// Not completed? → block with message
// After booking succeeds: inject "call stripe_request_card" into result
Persona, guidance, hard rules, workflows, knowledge — all managed through the dashboard. Changes take effect immediately.
2 active of 3 total
Most healthcare chatbots are rigid scripts. Ours is a real AI — with real guardrails.
Traditional healthcare chatbots follow a script. "Press 1 for scheduling. Press 2 for billing." Every patient question needs a pre-built path. If a patient asks something unexpected, the bot is stuck. Adding a new capability means writing new code, testing it, deploying it.
Our agent works differently. It actually understands what patients are asking for — whether that's rescheduling an appointment, checking insurance coverage, or asking about lab results. It can handle follow-up questions, combine requests, and navigate conversations naturally, the way your front desk staff would.
The obvious concern: what if the AI says something it shouldn't? What if it gives medical advice, cancels an appointment it shouldn't, or shares information with the wrong person?
That's what the two enforcement layers solve.
Before the agent can take any action in your EHR — book, cancel, look up records — the policy engine checks it against your clinic's rules. If a patient tries to cancel within your 48-hour window, the action is blocked instantly. No AI judgment call. No "it depends." The code says no.
After the agent writes its response, a separate AI reviewer checks it against your guidelines before the patient sees it. Catching medical advice, off-brand tone, information that shouldn't be shared. If the response doesn't pass, the agent tries again. If it fails twice, the conversation goes to your staff — a human is always the backstop.
The result: your patients get a fast, natural, helpful experience — and you get layered safeguards that dramatically reduce the risk of the agent going off-script.
Embed the chat widget with a single line. Configure everything server-side.
Plug into your existing system. Adapter pattern supports multiple EHRs.
Deploy in minutes. Configure without code. Enforce with certainty.