Skip to main content

What HealOS does in CurveHero

AI Frontdesk

What the AI Frontdesk (AI Receptionist) can do in CurveHero during a call: Connect it from AI Frontdesk → Integrations → Connect an EHR (Connect your EHR).

AI Scribe

How a finished AI Scribe note gets into CurveHero:

Connection

Method: HealOS cloud browser, Chrome extension. How the methods compare. You provide
  • A CurveHero username and password and your practice address (yourpractice.curvehero.com), in AI Frontdesk → Integrations → Connect an EHR.
  • An email inbox that receives CurveHero’s sign-in codes, set up with HealOS during onboarding so HealOS can read the codes.
HealOS does
  • Checks the sign-in before saving anything: a login that fails is not stored.
  • Stores the credentials encrypted and signs in from a secure, US-based cloud browser.
  • Keeps one signed-in session per practice and renews it during business hours, so calls don’t wait for a login.
  • Reads the emailed sign-in code itself; it accepts only codes that arrive after the login it started.
Limits
  • The first connection can take several minutes while CurveHero emails the code.
  • Yes: works once the practice connects the EHR (or, for the Chrome extension, installs it).
  • On request: built; HealOS turns it on for a practice after a review with them.
  • Specific setups: built for particular practice configurations; ask us before relying on it.
A Yes means the workflow exists, not that every practice’s setup allows it: practice settings, user permissions and the EHR plan can still limit it, so confirm during onboarding.

API actions

This is a catalog of what HealOS can do in each EHR. Running these actions through the HealOS API is coming later. Listing them (GET /ehr/actions) and checking which EHRs your organization has connected (GET /ehr/connections), with the ehr:read scope, are rolling out: they work on staging but are not yet available on api.healos.ai. Every action runs against the practice’s live EHR, never a sandbox.
HealOS supports 7 actions in CurveHero. Action names (curvehero.<action>) are stable.

Search patients

curvehero.search_patients · patients · version 1 Find an existing patient in the EHR by phone number, name, date of birth or email.
Safety
  • External effect: read
  • Writes to the EHR: No
  • Idempotent: Yes
  • Safe to retry: Yes
  • Dry run: Not supported
  • Touches the practice’s live EHR: Yes
  • Runs in a cloud browser session against the EHR’s web app: expect several seconds per call and limited concurrency per practice.
Inputs Send at least one field. Outputs

Create patient

curvehero.create_patient · patients · version 1 Register a new patient chart in the EHR. Some EHRs need extra fields (for example a mailing address on NextGen).
Safety
  • External effect: write
  • Writes to the EHR: Yes
  • Idempotent: No
  • Safe to retry: No. After a timeout or unclear result, check the EHR before trying again
  • Dry run: Not supported
  • Touches the practice’s live EHR: Yes
  • Duplicate check: not run by HealOS before creating
  • Runs in a cloud browser session against the EHR’s web app: expect several seconds per call and limited concurrency per practice.
Inputs Outputs

Search appointment slots

curvehero.search_slots · scheduling · version 1 List open appointment times, optionally narrowed to a window, provider, visit type or location.
Safety
  • External effect: read
  • Writes to the EHR: No
  • Idempotent: Yes
  • Safe to retry: Yes
  • Dry run: Not supported
  • Touches the practice’s live EHR: Yes
  • Runs in a cloud browser session against the EHR’s web app: expect several seconds per call and limited concurrency per practice.
Inputs Outputs Each item in slots:

Book appointment

curvehero.book_appointment · scheduling · version 1 Book an appointment for an existing patient, from a slot returned by search_slots.
Safety
  • External effect: write
  • Writes to the EHR: Yes
  • Idempotent: No
  • Safe to retry: No. After a timeout or unclear result, check the EHR before trying again
  • Dry run: Not supported
  • Touches the practice’s live EHR: Yes
  • Runs in a cloud browser session against the EHR’s web app: expect several seconds per call and limited concurrency per practice.
Inputs Send slot_id or start_at_utc. Outputs

List upcoming appointments

curvehero.list_appointments · scheduling · version 1 List a patient’s upcoming appointments.
Safety
  • External effect: read
  • Writes to the EHR: No
  • Idempotent: Yes
  • Safe to retry: Yes
  • Dry run: Not supported
  • Touches the practice’s live EHR: Yes
  • Runs in a cloud browser session against the EHR’s web app: expect several seconds per call and limited concurrency per practice.
Inputs Outputs Each item in appointments:

Cancel appointment

curvehero.cancel_appointment · scheduling · version 1 Cancel one of the patient’s appointments. Refused unless the appointment belongs to that patient.
Safety
  • External effect: write
  • Writes to the EHR: Yes
  • Idempotent: No
  • Safe to retry: No. After a timeout or unclear result, check the EHR before trying again
  • Dry run: Not supported
  • Touches the practice’s live EHR: Yes
  • Ownership check: the appointment must belong to the patient, or the action is refused
  • Runs in a cloud browser session against the EHR’s web app: expect several seconds per call and limited concurrency per practice.
Inputs Outputs

Reschedule appointment

curvehero.reschedule_appointment · scheduling · version 1 Move one of the patient’s appointments to a new time. Refused unless the appointment belongs to that patient.
Safety
  • External effect: write
  • Writes to the EHR: Yes
  • Idempotent: No
  • Safe to retry: No. After a timeout or unclear result, check the EHR before trying again
  • Dry run: Not supported
  • Touches the practice’s live EHR: Yes
  • Ownership check: the appointment must belong to the patient, or the action is refused
  • Runs in a cloud browser session against the EHR’s web app: expect several seconds per call and limited concurrency per practice.
Inputs Send slot_id or start_at_utc. Outputs