Quick summary
Call create when the clinician starts Ambient. Store
ambient_session_id for this recording and composition_id as note_id. Pass emr_encounter_id for cross-modality notes and reuse encounter_id for re-ambient. Do not send patient, sections, or note style on create.ambient_session_ididentifies the recording session.composition_ididentifies the note linked to that session. Pass it asnote_idto note-level Ambient APIs.
These patterns apply when you build your own ambient experience with the Ambient APIs or the Headless Web SDK. The headed Web SDK already provides the Ambient UI, so you do not need to build this Start Ambient experience yourself.
Session vs visit
An ambient session is a recording. A patient encounter is the visit. One encounter can have multiple ambient sessions. For example, a clinician might start recording, end the session, and then start another session later during the same visit.Ending an ambient session only ends that recording. It does not end the patient encounter.
Build the Start Ambient flow
Your Start ambient flow should connect the clinician’s action to the correct patient encounter and then continue into the rest of the Ambient workflow.Start from the patient encounter
Place your Start Ambient control in the encounter or chart where the clinician is already working.When the clinician taps Start Ambient, they should not need to enter an
ambient_session_id, composition_id, or other Suki identifier manually.Create the session
When the clinician starts recording, call Create ambient session. The response provides the identifiers your application needs for the session:Continue the recording flow
After create, continue the Start ambient path: seed context, stream audio, end the session, then poll status and retrieve the note. The create call is the start of the recording workflow, not the entire ambient integration. See What to do right after create for the full sequence after a successful create response.Decide which create fields to send
You do not need to send every field on create. Send only what your product needs.If You Only Use Ambient APIs on One Client
If You Only Use Ambient APIs on One Client
-
Call create with an empty body. Suki returns
ambient_session_idandcomposition_id. Store both, then continue with context, streaming, and End. -
You do not need
emr_encounter_idorencounter_idfor this path.
If the Note Must Work Across Web, Mobile, and APIs
If the Note Must Work Across Web, Mobile, and APIs
-
Pass
emr_encounter_idon create. Use a UUID for your EHR visit. -
Without
emr_encounter_id, Suki still creates the ambient session, but the note cannot move across modalities. - See Use interoperable ambient notes across modalities.
If the Clinician May Record Again on the Same Note
If the Clinician May Record Again on the Same Note
-
Pass the same
encounter_idevery time you create for that note (up to 255 characters). Store it yourself. Create does not returnencounter_id. -
Keep the same
composition_idasnote_id. Each new recording gets a newambient_session_id, but it stays on the same note.
What Not to Send on Create
What Not to Send on Create
- Do not send patient details, note sections, diagnoses, or note style on create.
- Send visit context after create with Seed ambient session context.
- Send note style (Concise / Balanced / Detailed) with Note Personalization.
-
Multilingual is on by default for Ambient APIs and Web SDK. Do not send the deprecated
multilingualfield.
Supporting multiple sessions
If your product allows a clinician to record more than once during a visit, treat each recording as a separate ambient session while keeping it associated with the same encounter. Do not treatambient_session_id as the identifier for the patient visit. It identifies the individual ambient session recording.
When those recordings continue the same clinical note (re-ambient), reuse the same encounter_id and keep the shared composition_id / note_id:
Multiple notes on the same EHR visit
An EHR visit can have multiple clinical notes. In this case, each note has its owncomposition_id / note_id, while the notes are associated with the same EHR visit through emr_encounter_id.
emr_encounter_id is the ID of the EHR visit. Your application provides this value when you create the ambient session. Suki does not generate it.
When you use the same emr_encounter_id for interoperable Ambient workflows:
- Suki associates the ambient session work with that EHR visit.
- The visit can have multiple ambient notes over time.
- Each note has its own
composition_id/note_id.
emr_encounter_id you used when creating the session. The response returns the notes associated with that visit. Use a returned note id as the note_id for note-level APIs.
For how to retrieve by session, note, or EMR encounter, see Work with shared notes.
Cross-modality workflows
Cross-modality ambient session means clinicians can work on the same clinical note across more than one Suki ambient session product. For example:- Start ambient session on the Mobile SDK or Ambient APIs during the visit.
- Open the same note later in the Web SDK to review and edit.
- Retrieve the latest note text through the Note-level APIs.
emr_encounter_id when you create the ambient session. That value is your EHR visit UUID. Your application provides it. Suki does not generate it.
Without
emr_encounter_id, Suki still creates an ambient session, but the note is not interoperable across modalities.What to send on create
Interoperability does not mean the products share the same audio file. Each product captures its own ambient session. Suki uses that session to update the shared clinical note.
So when a clinician starts on Mobile and later opens Web SDK, they see the same note content, not a copy of the Mobile audio stream. The shared note is what moves across modalities.
For the full interoperable flow, see Use interoperable ambient notes across modalities.
Which IDs to store
Your UI does not need to show these IDs. Your backend and visit state do.Plan for recordings of about one minute or longer. Short or empty audio often finishes as
skipped after End. Design Start so clinicians understand they are beginning a real visit capture, not a one-second tap. See Check note status.Example: create, then store IDs for the visit
- TypeScript
- Python
What to do right after create
Create starts the ambient session. It does not finish the entire workflow. After a successful create response, keep the clinician on the Start ambient path. Store the IDs, set context, stream audio, then end the session and retrieve the note when it is ready.1
Store the IDs from the Response
Save
ambient_session_id and composition_id with the active visit. Pass composition_id as note_id for note-level APIs later. You need these IDs for context, streaming, End, status, and note retrieval.2
Seed Session Context
Send patient, sections, and other visit fields before End. See Seed ambient session context.If more fields arrive during the visit, use Add information during a visit.
3
Open the WebSocket and Stream Audio
Open
/ws/stream and capture audio while the clinician is recording. See Stream ambient audio in your product.4
End, Poll Status, Then Retrieve the Note
When the clinician stops, send
RU9G, call End, and poll status. Open the note only when status is completed.See Complete an ambient visit, Check note status, and Get the generated clinical note.Next steps
Create ambient session API - Request and response fields. Seed ambient session context - Set visit context after create. Stream ambient audio in your product - Open/ws/stream after create.
Use interoperable ambient notes across modalities - Shared notes across products.