# Getting started

Nabla Connect is an integration protocol between Nabla and any EHR. It uses API calls between Nabla's server and your EHR's server so providers can start a Nabla encounter from the EHR, with patient context transferred in and the note exported back.

## What it does[​](#what-it-does "Direct link to What it does")

* **Integrated encounter creation** — a button in your EHR launches a Nabla encounter pre-linked to the current patient and encounter.
* **Contextual data sharing** — Nabla receives patient context such as name, age, gender, and visit diagnoses.
* **Simplified note export** — providers click *Export Note* and generated data flows back to the EHR.

Contact <connect@nabla.com> to create your organization.

## User flow[​](#user-flow "Direct link to User flow")

From the provider's perspective:

1. The provider clicks the Nabla button on the EHR encounter screen.
2. Nabla opens (iframe or browser tab) on an auto-created encounter enriched with EHR context.
3. The provider records, generates, and reviews the note in Nabla.
4. The provider clicks **Export Note** — note and structured data are sent back to the EHR.

![Provider flow: open Nabla from the EHR, document the encounter, and export the note back](/img/connect-user-flow.png)

## How it works[​](#how-it-works "Direct link to How it works")

Your backend calls Nabla to create or refresh an encounter (**incoming APIs**). Nabla calls your backend to export the generated note and other data (**outgoing callbacks**).

![High-level sequence: create encounter from the EHR, then export the note back via callback](/img/connect-high-level-schema.png)

## Integration checklist[​](#integration-checklist "Direct link to Integration checklist")

* Set up an OAuth client and [authenticate your backend](/connect/guides/authentication.md).
* Add a Nabla button on the EHR encounter screen that calls [`POST /encounters`](/connect/reference/create-or-update-encounters.md). See [Launch encounters](/connect/guides/launch-encounters.md).
* Optionally add a settings button that calls [`POST /settings/url`](/connect/reference/generate-settings-url.md) without an encounter.
* If embedding via iframe, add `allow="microphone; clipboard-write"` to the iframe (add `loopback-network` if you use Nabla Echo).
* Expose a catch-all webhook endpoint and configure it in [Nabla Connect Admin](https://app.nabla.com/admin/nabla-connect).
* Verify HMAC signatures on incoming callbacks and handle `NOTE_EXPORT` and `PATIENT_INSTRUCTIONS_EXPORT`. See [Receive callbacks](/connect/guides/callbacks.md).

## How to get a test organization[​](#how-to-get-a-test-organization "Direct link to How to get a test organization")

1. Email <connect@nabla.com> and specify the email address that should have admin access.
2. Once the test organization is ready, go to [Nabla Connect Admin](https://app.nabla.com/admin/nabla-connect).
3. Sign in with that admin email (a one-time code is sent to the mailbox).

## Next steps[​](#next-steps "Direct link to Next steps")

* [Authentication](/connect/guides/authentication.md) — OAuth client and JWT access tokens
* [API versioning](/connect/guides/api-versioning.md) — base URL and `X-Nabla-Api-Version`
* [Launch encounters](/connect/guides/launch-encounters.md) — create or refresh a one-time encounter URL
* [Manage users](/connect/guides/manage-users.md) — provision, activate, deactivate, and delete providers
* [Receive callbacks](/connect/guides/callbacks.md) — HMAC verification and note export payloads
* [API reference](/connect/reference/oauth-generate-server-access-token.md) — request and response schemas
* [Changelog](/connect/changelog.md) — dated API changes
