> ## Documentation Index
> Fetch the complete documentation index at: https://docs.healos.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# eClinicalWorks

> What AI Frontdesk and AI Scribe do in eClinicalWorks, and its 2 API actions

## What HealOS does in eClinicalWorks

### AI Frontdesk

What the AI Frontdesk (AI Receptionist) can do in eClinicalWorks during a call:

| Task | Available |
| - | - |
| Find the caller's chart | Yes |
| Register a new patient | Yes |

Connect it from **AI Frontdesk → Integrations → Connect an EHR** ([Connect your EHR](https://docs.healos.ai/guides/receptionist/connect-your-ehr.md)).

### AI Scribe

How a finished AI Scribe note gets into eClinicalWorks:

| Route | Available |
| - | - |
| Sent from HealOS: the note is written to the patient's chart through the EHR connection | Yes |
| Filled by the [HealOS Chrome extension](https://docs.healos.ai/guides/scribe/chrome-extension.md) into the eClinicalWorks note open in the clinician's browser | Yes |

### Connection

**Method:** HealOS cloud browser, Chrome extension. [How the methods compare](https://docs.healos.ai/connections/overview.md).

**You provide**

* An eClinicalWorks username and password and your eCW web address (`…ecwcloud.com`), in **AI Frontdesk → Integrations → Connect an EHR** or **Integrations** (AI Scribe Integrations). The connection is shared by the organization.

**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.
* Sends finished AI Scribe notes to the chart.

**Limits**

* Booking stays off until your visit-type and status defaults are reviewed with HealOS.

> [!NOTE]
>
> * **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

> [!WARNING]
>
> 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 2 actions in eClinicalWorks. Action names (`ecw.<action>`) are stable.

| Action | Description | Effect | Inputs | Outputs |
| - | - | - | - | - |
| **Search patients** `ecw.search_patients` | Find an existing patient in the EHR by phone number, name, date of birth or email. | read | `phone`, `first_name`, `last_name`, `dob`, `email` | `found`, `patient_id`, `display_name` |
| **Create patient** `ecw.create_patient` | Register a new patient chart in the EHR. Some EHRs need extra fields (for example a mailing address on NextGen). | write | `phone`, `first_name`, `last_name`, `dob`, `gender`, `email`, `provider_id`, `address1`, `city`, `state`, `zip` | `patient_id`, `display_name` |

## Search patients

`ecw.search_patients` · patients · version 1

Find an existing patient in the EHR by phone number, name, date of birth or email.

> [!NOTE]
>
> **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.

| Field | Type | Required | Description |
| - | - | - | - |
| `phone` | string | No | Phone number, E.164 preferred. |
| `first_name` | string | No | Patient first name. |
| `last_name` | string | No | Patient last name. |
| `dob` | string (date) | No | Date of birth (YYYY-MM-DD). |
| `email` | string (email) | No | Email address. |

**Outputs**

| Field | Type | Description |
| - | - | - |
| `found` | boolean | True on a match. |
| `patient_id` | string | The EHR's patient id, as returned by search\_patients or create\_patient. |
| `display_name` | string | Patient display name. Null when the EHR does not return it. |

## Create patient

`ecw.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).

> [!WARNING]
>
> **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**

| Field | Type | Required | Description |
| - | - | - | - |
| `phone` | string | Yes | Phone number, E.164 preferred. |
| `first_name` | string | Yes | Patient first name. |
| `last_name` | string | Yes | Patient last name. |
| `dob` | string (date) | No | Date of birth (YYYY-MM-DD). |
| `gender` | string | No | Gender as the patient states it. |
| `email` | string (email) | No | Email address. |
| `provider_id` | string | No | EHR provider id to file the chart under, where the EHR assigns one at registration. |
| `address1` | string | No | Street address, for EHRs that require one. |
| `city` | string | No | City, for EHRs that require an address. |
| `state` | string | No | State, for EHRs that require an address. |
| `zip` | string | No | ZIP code, for EHRs that require an address. |

**Outputs**

| Field | Type | Description |
| - | - | - |
| `patient_id` | string | The EHR's patient id, as returned by search\_patients or create\_patient. |
| `display_name` | string | Patient display name. Null when the EHR does not return it. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.