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

# Web SDK Ambient Interoperability

> Learn how the Web SDK interoperates with other Suki products that support Ambient workflows

<div className="quick-summary-wrapper">
  <div className="quick-summary-header">
    <span className="quick-summary-icon" aria-hidden="true" />

    <span className="quick-summary-title">Quick summary</span>
  </div>

  <div className="quick-summary-content">
    Ambient interoperability lets the Web SDK access a clinical note created through another Suki modality that supports Ambient workflows. Each product uses its own encounter field to reference the same patient visit. In the Web SDK, pass a **UUID** as `encounter.identifier` to open and continue the same clinical note. That value maps to `emr_encounter_id`.
  </div>

  <div className="quick-summary-footer">
    <span className="quick-summary-footer-icon" aria-hidden="true" />

    <span className="quick-summary-footer-text">Last updated:</span>
    <span className="quick-summary-footer-date">August 2026</span>
  </div>
</div>

<Warning>
  * Interoperability applies only to **Ambient workflows**. It is not supported for Dictation or Form filling workflows.
  * Versions `v3.2.0` and later support **interoperability** for the Headed Web SDK.
</Warning>

Ambient interoperability lets you use multiple Suki products that support ambient workflows with the same clinical note for a patient encounter.

Before ambient interoperability, each ambient session belonged to the Suki product where it was created. For example, if you started a session using the Mobile SDK, you could only continue or retrieve that session from the Mobile SDK.

With <Tooltip tip="Interoperability is the ability of different systems, devices, or software applications to communicate, exchange data, and use that information seamlessly." cta="View in Glossary" href="/Glossary/i">interoperability</Tooltip>, you can create and access ambient sessions across different Suki products for the same patient encounter.
The Ambient API returns `emr_encounter_id`. Any product that supports Ambient workflows uses this value through its own product-specific field.

In the Web SDK, you can:

* Open a clinical note that started on Mobile SDK, Headless Web SDK, or Ambient APIs.
* Review, edit, and submit that shared note in the headed Web SDK UI.
* Start an ambient session in the Web SDK and continue or re-ambient it from another ambient product.

## How interoperability works in the Web SDK

The core of ambient interoperability is a **shared clinical note**.
When an ambient session originates in Ambient APIs, use the returned **`emr_encounter_id`** as **`encounter.identifier`** in the Web SDK.

<Note>
  You do not pass **`encounter_id`** to the Web SDK.
</Note>

In the Web SDK, the encounter identifier you supply maps to **`emr_encounter_id`**:

| Web SDK field              | Maps to                           | Purpose                                                                       |
| -------------------------- | --------------------------------- | ----------------------------------------------------------------------------- |
| **`encounter.identifier`** | **`emr_encounter_id`**            | The `emr_encounter_id` returned by the Ambient API. Must be a **UUID** today. |
| **`encounter.patient`**    | Patient profile in the Web SDK UI | Patient details required for a complete patient profile page.                 |

The products do not share audio recordings. Instead, each ambient session contributes to the same clinical note.

<Note>
  If you do not provide an encounter identifier, Suki creates a normal ambient session in the Web SDK, but it remains independent and cannot participate in interoperability.
</Note>

## How to enable interoperability in the Web SDK

To enable interoperability in the Web SDK, set **`encounter.identifier`** to the shared encounter value for the patient visit. That value is the Ambient API **`emr_encounter_id`**. Other products use the same value through their own fields, for example **`SukiAmbientConstant.kEmrEncounterId`** in the Mobile SDK.

Some examples of how to handle interoperability in the Web SDK are:

* When a clinician starts ambient in the Mobile SDK, then opens the same note in the Web SDK for review, edit, and submission.
* When a clinician starts ambient through Ambient APIs, then opens the same note in the Web SDK.
* When a clinician starts ambient in the Web SDK, then continues the same note from the Mobile SDK or Ambient APIs.

In every case, keep **`encounter.identifier`** consistent for the patient visit in the Web SDK.

<Note>
  Pass the EMR encounter UUID on **`encounter.identifier`** only. Do not set **`emrEncounterId`** on **`ambientOptions`**. That field is not a supported partner setting and has no effect when an encounter identifier is present.
</Note>

<Steps>
  <Step title="Pass a Stable Encounter Identifier">
    Set **`encounter.identifier`** to the **`emr_encounter_id`** returned by the Ambient API. That value must be a **UUID**. Alphanumeric EMR encounter numbers that are not UUIDs are not valid for this field.
  </Step>

  <Step title="Provide Patient Details">
    Include patient fields on **`encounter.patient`** so the Web SDK can show the patient profile. If the session started on a headless product first, seed patient context with the [Seed ambient session context API](/api-reference/ambient-sessions/context) before opening the Web SDK.
  </Step>

  <Step title="Mount or Set the Encounter">
    Pass the encounter through **`mount()`** or **`setEncounter()`** in JavaScript, or through the **`encounter`** prop on **`<SukiAssistant>`** in React. Refer to [Create session](/web-sdk/guides/ambient-implementation) for the full session setup.
  </Step>

  <Step title="Continue Across Products">
    Continue using the same **`encounter.identifier`** in the Web SDK. Other SDKs use the identifiers through their own product-specific fields. Refer to [Use interoperable ambient notes](/documentation/how-to/ambient-clinical-notes/use-ambient-across-modalities) for the full workflow.
  </Step>
</Steps>

<Note>
  **UUID requirement:**

  * `encounter.identifier` is stored as a <Tooltip tip="VARCHAR is a variable-length SQL string type. varchar(36) limits the value to 36 characters. See the Glossary." cta="View in Glossary" href="/Glossary/v#varchar-36">varchar(36)</Tooltip>, but the value must also be a valid UUID.
  * Starting in **v3.2.0**, the Web SDK sends `encounter.identifier` as `emr_encounter_id`, and the platform validates that it is in UUID format.
  * This validation also applies when retrieving past notes for an encounter in the hosted UI.
</Note>

### Example

<View title="JavaScript" icon="js">
  ```js JavaScript theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
  const encounter = {
    identifier: "6ec3920f-b0b1-499d-a4e9-889bf788e5ab", // maps to emr_encounter_id
    patient: {
      identifier: "905c2521-25eb-4324-9978-724636df3436",
      name: {
        use: "official",
        family: "Doe",
        given: ["John"],
      },
      birthDate: "1990-01-01",
      gender: "Male",
    },
  };

  sdkClient.mount({
    rootElement: document.getElementById("suki-root"),
    encounter,
  });
  ```
</View>

<View title="React" icon="react">
  ```jsx React theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
  <SukiAssistant
    encounter={{
      identifier: "6ec3920f-b0b1-499d-a4e9-889bf788e5ab", // maps to emr_encounter_id
      patient: {
        identifier: "905c2521-25eb-4324-9978-724636df3436",
        name: {
          use: "official",
          family: "Doe",
          given: ["John"],
        },
        birthDate: "1990-01-01",
        gender: "Male",
      },
    }}
  />
  ```
</View>

## Common integration patterns and use cases

Design Web SDK interoperability around the clinician's journey for a single patient encounter. In the Web SDK, pass the `emr_encounter_id` returned by the Ambient API as `encounter.identifier` so the note is shared across products for the same patient visit.

The following patterns show common ways to use the Web SDK in interoperable ambient workflows:

<CardGroup cols={2}>
  <Card title="Capture on Mobile, Review on Web" icon="mobile">
    In the Mobile SDK, use the returned `emr_encounter_id` as `SukiAmbientConstant.kEmrEncounterId`. In the Web SDK, use that value as `encounter.identifier` to review, edit, and submit the note.
  </Card>

  <Card title="Capture with APIs, Review in Web SDK" icon="code">
    Create the session and stream audio through Ambient APIs, then open the resulting note in the Web SDK for clinician review and submission.
  </Card>

  <Card title="Continue Documentation Across Products" icon="arrows-rotate">
    Use the returned `emr_encounter_id` through each product's corresponding field when clinicians continue documentation across products. For re-ambient workflows, the Web SDK continues the same clinical note using `encounter.identifier` (which maps to `emr_encounter_id`) without requiring `encounter_id`.
  </Card>

  <Card title="Keep Your Application in Sync" icon="file-pen">
    After clinicians edit the note in the Web SDK, retrieve the latest composition through the Ambient APIs so your application displays the current version.
  </Card>
</CardGroup>

## Available cookbooks

<div className="hp-io-method-grid tut-hub-card-grid" data-cookbook-related-grid>
  <a className="hp-io-method-card tut-hub-method-card" href="/documentation/cookbooks/pass-emr-encounter-id">
    <div className="tut-hub-card-media" aria-hidden="true" />

    <div className="hp-io-method-card-body">
      <div className="tut-hub-card-badges">
        <span className="hp-wn-badge hp-wn-badge-new">Ambient</span>
        <span className="hp-wn-badge cookbook-hub-badge-surface cookbook-hub-badge-surface--api">API</span>
      </div>

      <h3 className="hp-io-method-card-title">Share One Note Across Products</h3>

      <p className="hp-io-method-card-desc cookbook-hub-card-desc">
        Share one note with emr\_encounter\_id.
      </p>

      <div className="hp-io-method-card-meta tut-hub-card-foot" aria-label="5 min">
        <div className="tut-hub-card-foot-meta">
          <span className="hp-io-method-card-meta-time">5 min</span>
        </div>
      </div>
    </div>
  </a>

  <a className="hp-io-method-card tut-hub-method-card" href="/documentation/cookbooks/resolve-session-conflict">
    <div className="tut-hub-card-media tut-hub-card-media--blue" aria-hidden="true" />

    <div className="hp-io-method-card-body">
      <div className="tut-hub-card-badges">
        <span className="hp-wn-badge hp-wn-badge-new">Ambient</span>
        <span className="hp-wn-badge cookbook-hub-badge-surface cookbook-hub-badge-surface--api">API</span>
      </div>

      <h3 className="hp-io-method-card-title">Clear a Remote Session Conflict</h3>

      <p className="hp-io-method-card-desc cookbook-hub-card-desc">
        End remote session, then retry.
      </p>

      <div className="hp-io-method-card-meta tut-hub-card-foot" aria-label="5 min">
        <div className="tut-hub-card-foot-meta">
          <span className="hp-io-method-card-meta-time">5 min</span>
        </div>
      </div>
    </div>
  </a>
</div>

## Next steps

<Icon icon="file-lines" iconType="solid" /> Refer to [Create session](/web-sdk/guides/ambient-implementation) to configure the encounter and start an ambient session in the Web SDK.

<Icon icon="file-lines" iconType="solid" /> Refer to [Ambient interoperability](/documentation/concepts/ambient-clinical-notes/ambient-interoperability) for the platform overview across ambient products.

<Icon icon="file-lines" iconType="solid" /> Refer to [Interoperable identifiers](/documentation/concepts/ambient-clinical-notes/interoperable-identifiers) to understand `emr_encounter_id`, `encounter_id`, and `composition_id`.

<Icon icon="file-lines" iconType="solid" /> Refer to [Ambient interoperability FAQs](/documentation/how-to/ambient-clinical-notes/ambient-interoperability-faqs) for the UUID requirement and other limitations.

<Icon icon="file-lines" iconType="solid" /> Refer to [Use interoperable ambient notes](/documentation/how-to/ambient-clinical-notes/use-ambient-across-modalities) for the end-to-end cross-modality workflow.

<Icon icon="file-lines" iconType="solid" /> Refer to [Mobile SDK interoperability](/mobile-sdk/ambient-guides/ambient-interoperability) when the shared note starts or continues on iOS.
