EMR Integration Setup
This guide walks you through connecting your EMR system to OzyOps so OzyOps can check availability and book appointments directly during calls.
EMR connection is available on all plans. AI appointment booking requires the Essential plan or above.
What EMR Integration Enables
All plans -- once your EMR is connected:
- Check real-time availability in your EMR calendar
- Queue appointment requests for staff to confirm
- Create new patient records for first-time callers (optional -- your choice, see Step 3)
Essential plan and above -- adds:
- Book appointments directly during calls (no staff action needed)
- Confirm appointments via SMS to patients automatically
OzyOps works without an EMR connection. It will answer calls, qualify callers, and capture their information. EMR integration adds the ability to check availability and either book appointments automatically (Essential+) or queue them for your staff (all plans).
Supported EMR Systems
Native Adapters
The "Status" column below is deliberately specific. Verified means a real appointment has been booked into that system. Connector written means we validate it against your specific instance during onboarding, at no cost to you, before you commit to anything. We would rather tell you this up front than have you discover it at go-live.
| EMR | Auth Type | Booking | Availability | Status |
|---|---|---|---|---|
| Google Calendar | OAuth 2.0 | Full | Full | Verified — in production use |
| Dentrix (Ascend + desktop) | Set up by our team | Full | Full | Verified against the scheduling partner's system; see the note below on how appointments reach Dentrix |
| Open Dental | API Key | Full | Full | Connector written — validated against your instance during onboarding, at no cost, before you commit |
| athenahealth | OAuth 2.0 | Full | Full | Connector written — validated against your instance during onboarding, at no cost, before you commit |
| DrChrono | OAuth 2.0 | Full | Limited* | Connector written — validated against your instance during onboarding, at no cost, before you commit |
*DrChrono does not expose availability calculation via API. Booking works but the AI cannot dynamically check open slots -- it will offer pre-configured time slots instead.
One thing to know about Dentrix timing
Dentrix Ascend appointments are written by software that runs at your practice. If that software is not running — evenings, weekends, or while the office is closed — the appointment waits in a queue and lands when your team is next in. It is not lost, and the caller is booked either way; it simply may not appear on your Dentrix schedule until the office reopens. We would rather you hear that from us than wonder on a Saturday morning.
Dentrix -- we set this one up for you
Dentrix connects through a scheduling partner (NexHealth) rather than a direct API key, so there is nothing for you to enter in OzyOps — no API key, no subdomain, no location ID. Dentrix Ascend does not issue practice-level API keys, which is why this connection is handled differently from the others.
There is one thing that does happen on your side. Because the connection is made inside your own Dentrix account, your practice creates a dedicated user account there for the scheduling partner to use. That account belongs to you: you create it, you control it, and you can revoke it at any time. We will walk you through the exact steps on a call, together — including how the credentials are entered, so that you enter them yourself wherever possible. We publish the detail here only once we have done it end to end with a practice, so that what you read is what actually happens.
How it works:
- In Settings → EMR Integration, choose Dentrix and click Request integration. Your request is logged and our team is notified -- you do not need to email anyone.
- We schedule a short call to set up the connection to your Dentrix system. This part requires someone at your practice, because the connection is made inside your own Dentrix account.
- Once complete, the connection appears in your EMR Integration page like any other, and the AI can check real availability and book.
You will not see an API key or connection form for Dentrix -- that is expected, not a missing step.
FHIR Adapters
| EMR | Connection Method | Booking | Availability | Status |
|---|---|---|---|---|
| Generic FHIR R4 | FHIR API | Full (if EMR supports writes) | Full | Verified against a live FHIR R4 server; not yet against a production Epic or Cerner instance |
| Epic | FHIR via App Orchard | Full | Full | Connects through the Generic FHIR adapter. Not yet verified against a production Epic instance — we validate yours during onboarding before you commit |
| Cerner / Oracle Health | FHIR API | Full | Working with known quirks | Connects through the Generic FHIR adapter. Not yet verified against a production Cerner instance — we validate yours during onboarding before you commit |
Don't see your system? Tell us what you run and we'll give you a straight answer about whether we can connect it, and what it would take.
For EMR systems not listed above, see the FHIR Connection Guide for connecting via the universal FHIR standard. Most modern EMR systems support FHIR R4.
The full list of systems we can reach
The tables above show the connectors that are built and validated today. The full, always-current list of practice management and EHR systems we can reach is published on our integrations page: the systems we book into directly, the systems we book into through our scheduling integration platform, and the systems where we capture every call and relay bookings to your front desk.
See every system we book into, tier by tier
Three things stay true no matter what your practice runs:
- Every call is answered on any system, or none. The floor of the product needs no integration at all: the call is answered, the request is captured with full details, and your team receives it the way you choose.
- Direct booking is verified with your practice during onboarding, against your own system, before you rely on it.
- If we have not confirmed a path for your system, we say so plainly and then go find out, rather than promising first.
Step 1: Access EMR Settings
- Log in to your OzyOps dashboard.
- Go to Settings > EMR Integration.
- You will see a list of supported EMR systems.
Step 2: Connect Your EMR
Open Dental (API Key)
Prerequisites:
- Open Dental version 17.1 or higher
- API module enabled (requires Open Dental support activation)
- Administrator access to Open Dental
Steps:
- In Open Dental, go to Setup > API.
- Click Generate API Key.
- Copy the API key.
- In your OzyOps dashboard, select Open Dental.
- Enter your API Key, Practice ID (usually your license number), and Server URL (leave default for Open Dental Cloud).
- Click Test Connection.
- If successful, click Save.
athenahealth (OAuth)
Prerequisites:
- athenahealth administrator access
- Practice ID from your athenahealth account
Steps:
- In your OzyOps dashboard, select athenahealth.
- Click Connect with athenahealth.
- You will be redirected to athenahealth login.
- Log in with your administrator credentials.
- Authorize OzyOps to access appointments, patient demographics, and provider schedules.
- You will be redirected back to OzyOps.
- Enter your Practice ID and Department ID if prompted.
- Click Complete Setup.
DrChrono (OAuth)
Prerequisites:
- DrChrono administrator access
- API access enabled in your DrChrono subscription
Steps:
- In your OzyOps dashboard, select DrChrono.
- Click Connect with DrChrono.
- Log in with your DrChrono credentials.
- Authorize OzyOps to access appointments and patients.
- Click Complete Setup.
Step 3: Configure Sync Settings
After connecting, configure how OzyOps syncs with your EMR:
| Setting | Description | Recommended |
|---|---|---|
| Sync Appointments | Push booked appointments to EMR | Enabled |
| Auto-Create Patients | Create new patient records for first-time callers | Your choice |
| Sync Call Notes | Add call summaries to patient chart | Enabled |
About Auto-Create Patients ("Let the AI book first-time patients"):
This setting decides whether the AI can book someone who is not already in your system. You can change it any time from Settings → EMR Integration, on the card for your connected system.
If enabled, a first-time caller can be booked during the call. We create their record in your system with the details captured on the call (name, phone, email, date of birth). You can tidy up demographics later.
If disabled, only patients already in your system can be booked. The AI matches callers by phone number, and when there is no match it will not offer appointment times at all -- it tells the caller your office will call them back to get them set up, captures their details, and adds them to your booking queue for staff to handle.
Enable it if you want first-time callers booked without staff involvement -- that is usually the bigger win, since new-patient calls are the ones most likely to go elsewhere if they are not handled on the spot.
Leave it off if your team prefers to review and enter new patients themselves, for example to control how chart records are created. Nothing is lost -- those callers still reach your booking queue with their details captured.
This is not just a background rule. When the setting is off, the AI is told up front that first-time callers cannot be booked, so it sets the right expectation instead of offering a time it cannot reserve. Changing the setting updates your AI's instructions within a few seconds.
Step 4: Enable AI Booking
After your EMR connection is verified:
- Go to Settings > EMR Integration.
- You should see a "Connected" status with a green badge.
- Booking tools are automatically added to your AI agent.
Behind the scenes, your AI agent receives two new capabilities:
check_appointment_availability-- Queries your EMR for open slotsbook_appointment-- Creates appointments in your EMR
Step 5: Test the Connection
Dashboard Test
In EMR Integration settings, click Test Connection. You should see: "Connected -- Last successful sync: [timestamp]."
Live Call Test
- Call your OzyOps phone number.
- Say: "I would like to schedule an appointment."
- The AI should respond with something like: "Let me check availability..."
- The AI offers available time slots from your EMR.
- Select a time and confirm.
- Check your EMR -- the appointment should appear.
Troubleshooting
"Connection Failed" Error
Open Dental:
- Verify API key is correct (regenerate if needed).
- Ensure API module is activated.
- Check that your firewall allows outbound connections.
athenahealth/DrChrono:
- OAuth token may have expired -- click Reconnect.
- Verify your subscription includes API access.
"No Slots Available" When Calendar Has Openings
- Check provider schedules are configured correctly in your EMR.
- Verify appointment types match OzyOps settings.
- For DrChrono: availability API not supported -- configure default slots.
Appointments Not Appearing in EMR
- Check sync is enabled in OzyOps settings.
- Verify "Auto-Create Patients" setting matches your workflow.
- Look in your EMR's unscheduled/pending appointments queue.
AI Says "I can't check availability right now"
This graceful fallback occurs when:
- EMR connection is temporarily unavailable
- API credentials have expired
- Network timeout
The AI will still collect patient info and queue the appointment for manual follow-up.
Common Questions
Is my patient data secure? Yes. OzyOps uses AES-256-GCM encryption for credentials, stores PHI in a HIPAA-compliant database, and all connections are TLS-encrypted.
Can patients book without talking to the AI? Not currently. Booking is voice-only during AI calls. Self-service web booking is on our roadmap.
What if the AI double-books? The AI always checks real-time availability before booking. Double-booking can only occur if your EMR allows it or if there is a very brief sync delay. The system has multiple layers of protection: slot-level contention checks, availability pre-filtering, and mid-call auto-cancel when patients change their mind.
Can I limit which providers can be booked? Yes. Go to Settings > EMR > Providers to enable or disable specific providers. Disabled providers will not be offered to callers.
How far in advance can patients book? There is no system-imposed limit. The availability depends on how far out your EMR has appointment slots configured. If no slots exist for the requested date, the AI will suggest checking a different date.
What happens during EMR maintenance windows? The AI gracefully falls back to collecting information for manual scheduling. See the Booking Queue guide for details on the fallback workflow.
Need Help?
- Email: support@ozyops.com
- Subject: EMR Setup Help -- [Your Practice Name]
- Include: EMR system, error messages, and screenshots