Legacy AI Zoom App — Reviewer Test Plan & Test Credentials
Prepared for: Zoom Marketplace App Review
App: Legacy AI (in-meeting clinical coaching Zoom App)
Version / date: 1.1 — 2026-08-18
Primary reviewer contact: support@legacytheapp.com
Every feature and every requested OAuth scope below has an explicit “Test” (what to do) and “Confirm” (what you should observe).
1. Overview
Legacy AI is a clinical documentation and real-time coaching assistant. The Zoom App opens as an in-meeting side panel for the clinician (the meeting host) during a telehealth visit and:
• authorizes the clinician with Zoom (OAuth, in-client),
• reads the current meeting context,
• streams meeting media in real time (RTMS) to generate private, clinician-only live coaching,
• after the meeting, generates a structured summary tied to the patient encounter.
The patient joins the Zoom meeting as a normal participant and does NOT install or operate the app. The app is a single-role (clinician) in-meeting experience; the “second user” is simply the other meeting participant. Section 6 explains how to exercise the two-participant flow.
User-facing documentation: https://www.legacytheapp.com/docs/zoom-app
2. Test credentials
Clinician (primary) — Legacy AI web app
• Sign in at: https://legacy-standalone-production.azurewebsites.net
• Username: zoomreviews
• Password: Testtest1245
• Notes: Pre-seeded with a dummy patient and a ready telehealth encounter (see Section 5). Used to create/join the Zoom meeting and open the in-meeting side panel. No real patient data is present.
Zoom account
• Reviewers can add the production Legacy AI app to their own licensed Zoom account, or request a dedicated Zoom test account from support@legacytheapp.com.
• The account must be on a plan that includes Real-Time Media Streams (RTMS), which is required for live coaching.
Two-factor authentication
• The Legacy AI clinician test account has 2FA disabled for reviewers.
3. Setup & authorization steps
Step 1 — Add the app.
• In the Zoom App Marketplace, open the Legacy AI listing and click “Add”. Review the requested scopes and click “Allow”.
• Confirm: Authorization succeeds and Legacy AI appears under Manage > Added Apps.
Step 2 — Sign in to Legacy AI (clinician).
• Go to https://legacy-standalone-production.azurewebsites.net and log in with the clinician credentials in Section 2.
• Confirm: The clinician dashboard/patient list loads with the seeded dummy patient.
Step 3 — Start the telehealth meeting.
• Open the seeded telehealth encounter and click “Join Meeting”. If prompted, complete the Zoom
OAuth consent.
• Confirm: Zoom OAuth completes, a Zoom meeting is created, and the meeting opens in the Zoom desktop client.
Step 4 — Open the app in the meeting.
• In the meeting toolbar choose Apps > Legacy AI.
• Confirm: The Legacy AI side panel loads on the in-meeting surface and detects the current meeting.
4. Feature-by-feature testing
The app runs as a Zoom App on the Meetings product surface only. Embed SDKs (Meeting SDK, Contact Center SDK, Phone SDK) are NOT enabled, and the app is not configured for Webinars, Zoom Rooms, Phone, or any other product.
Feature 1 — Zoom App in-meeting side panel (Meetings surface)
• Test: While in an active Zoom meeting (Section 3, Steps 3–4), open Apps > Legacy AI from the
meeting toolbar.
• Confirm: The Legacy AI app renders inside the Zoom client as a side panel, reads the current meeting context via the Zoom Apps SDK, and displays the clinician coaching UI.
Feature 2 — Real-Time Media Streams (RTMS)
• Test: With the side panel open, start the coaching session. The app calls the Zoom Apps SDK startRTMS to begin streaming the meeting’s real-time media. Speak in the meeting (Section 6).
• Confirm: RTMS begins for the meeting; live coaching feedback appears in the clinician side panel in response to the spoken conversation. Ending the session or meeting stops RTMS cleanly.
5. Scope-by-scope testing
Below is every OAuth scope requested by the app, with why it is needed, how to test it, and how to confirm it worked.
Scope: user:read:user
• Why: Identify the authorizing clinician (email and user id) to link their Zoom identity to their
Legacy AI account.
• Test: Complete authorization (Section 3, Step 1) and sign in (Step 2).
• Confirm: After consent, the app reads the Zoom user (GET /users/me) and associates the Zoom identity with the clinician account; the clinician can proceed to create/join a meeting.
Scope: meeting:write:meeting
• Why: Create the telehealth Zoom meeting for the encounter when the clinician clicks “Join Meeting”.
• Test: Perform Section 3, Step 3.
• Confirm: A Zoom meeting is created (POST /users/me/meetings) and opens in the Zoom desktop client.
Scope: meeting:read:meeting
• Why: Read meeting details to tie the meeting to the correct patient encounter.
• Test: Open the side panel in the meeting (Section 3, Step 4).
• Confirm: The app reads meeting details (GET /meetings/{id}) and the panel shows the correct meeting/encounter context.
Scope: meeting:read:meeting_audio
• Why: Receive the meeting’s real-time audio stream (via RTMS) to power live coaching.
• Test: Run the multi-participant flow (Section 6) and hold a short spoken conversation.
• Confirm: The clinician side panel produces live coaching that reflects what was spoken, proving the real-time audio stream is being received and processed.
Scope: meeting:read:meeting_transcript
• Why: Receive the meeting’s real-time transcript stream (via RTMS), used alongside audio to generate coaching feedback.
• Test: Same as above (Section 6); continue the spoken conversation.
• Confirm: Coaching feedback tracks the content of the conversation, showing the live transcript stream is received and used.
Scope: meeting:update:participant_rtms_app_status
• Why: Start and stop the participant’s RTMS app status so real-time media can begin and end from the Zoom App.
• Test: Start the coaching session (the app calls startRTMS), then end the session or meeting (the app calls stopRTMS).
• Confirm: RTMS starts when the session begins (coaching appears) and stops cleanly when the session ends (no further coaching; stream is torn down).
Scope: cloud_recording:read:list_recording_files
• Why: After the visit, list the meeting’s cloud recording files to locate the audio (M4A) for the post-meeting summary.
• Test: End the meeting (Section 6, Step 4) and wait for Zoom to finish processing the cloud recording.
• Confirm: The app lists the meeting recordings (GET /meetings/{id}/recordings) and finds the M4A audio file.
Scope: cloud_recording:read:recording
• Why: Download the located recording file from its download URL (authorized with the OAuth token) so the audio can be transcribed and summarized.
• Test: Same as above (Section 6, Step 4), after the recording file list is available.
• Confirm: The M4A file downloads successfully and a structured post-meeting summary is generated and viewable under the encounter in the Legacy AI web app.
Scope: rtms:read:rtms_started
• Why: Receive the meeting.rtms_started webhook so the server can attach to the real-time media stream.
• Test: Start the coaching session (Section 6).
• Confirm: The meeting.rtms_started event is delivered and the server begins receiving the stream (live coaching starts appearing in the panel).
Scope: rtms:read:rtms_stopped
• Why: Receive the meeting.rtms_stopped webhook so the server can tear down the real-time media stream.
• Test: End the coaching session or the meeting (Section 6, Step 4).
• Confirm: The meeting.rtms_stopped event is delivered and the server stops and cleans up the RTMS session (coaching stops).
Scope: zoomapp:inmeeting
• Why: Enable the Legacy AI Zoom App to open inside the Zoom Meeting client as an in-meeting side panel.
• Test: During a meeting, open Apps > Legacy AI (Section 3, Step 4).
• Confirm: The app launches on the in-meeting surface (side panel).
6. End-to-end multi-participant flow
Step 1 — The clinician (primary account) joins the created meeting as host, with the Legacy AI side panel open.
Step 2 — A second Zoom client or device joins the same meeting as the “patient” participant. This can be any Zoom account and requires no Legacy AI login and no app installation.
Step 3 — Hold a short spoken conversation between the two participants.
• Confirm: The clinician’s side panel shows live coaching feedback during the conversation. The patient participant sees a normal meeting with no coaching and no app.
Step 4 — End the meeting.
•Confirm: The coaching session is saved to the encounter. After Zoom finishes processing the cloud recording, a post-meeting summary is generated and is viewable in the Legacy AI web app under that encounter.
7. Removing the app (deauthorization test)
Step 1 — In the Zoom App Marketplace: Manage > Added Apps > Legacy AI > Remove, then confirm.
• Confirm: Zoom sends the deauthorization notification; Legacy AI revokes the Zoom token and deletes the stored Zoom connection for the account. Opening the side panel afterward prompts to re-authorize.
Step 2 — Re-add the app to confirm re-authorization works (repeat Section 3).
Full user-impact details: https://www.legacytheapp.com/docs/zoom-app#3-removing-the-app
8. Expected outcomes summary
• Add + authorize: OAuth succeeds; the app appears in Added Apps.
• Clinician login: Dashboard loads with seeded dummy data.
• Join Meeting: Zoom meeting is created and opened.
• Open panel in meeting: App loads on the in-meeting surface and reads meeting context.
• Live conversation: Clinician-only live coaching appears in the side panel.
• End meeting: Coaching is saved; a summary is generated for the encounter.
• Remove app: Token is revoked, the Zoom connection is deleted, and re-authorization is required.
9. Reviewer support
If anything blocks testing, email support@legacytheapp.com (subject starting with “Zoom Review:”). Support hours 7:00 AM–7:00 PM Pacific, Monday–Friday; first response within 12 working hours.
Prepared for: Zoom Marketplace App Review
App: Legacy AI (in-meeting clinical coaching Zoom App)
Version / date: 1.1 — 2026-08-18
Primary reviewer contact: support@legacytheapp.com
Every feature and every requested OAuth scope below has an explicit “Test” (what to do) and “Confirm” (what you should observe).
1. Overview
Legacy AI is a clinical documentation and real-time coaching assistant. The Zoom App opens as an in-meeting side panel for the clinician (the meeting host) during a telehealth visit and:
• authorizes the clinician with Zoom (OAuth, in-client),
• reads the current meeting context,
• streams meeting media in real time (RTMS) to generate private, clinician-only live coaching,
• after the meeting, generates a structured summary tied to the patient encounter.
The patient joins the Zoom meeting as a normal participant and does NOT install or operate the app. The app is a single-role (clinician) in-meeting experience; the “second user” is simply the other meeting participant. Section 6 explains how to exercise the two-participant flow.
User-facing documentation: https://www.legacytheapp.com/docs/zoom-app
2. Test credentials
Clinician (primary) — Legacy AI web app
• Sign in at: https://legacy-standalone-production.azurewebsites.net
• Username: zoomreviews
• Password: Testtest1245
• Notes: Pre-seeded with a dummy patient and a ready telehealth encounter (see Section 5). Used to create/join the Zoom meeting and open the in-meeting side panel. No real patient data is present.
Zoom account
• Reviewers can add the production Legacy AI app to their own licensed Zoom account, or request a dedicated Zoom test account from support@legacytheapp.com.
• The account must be on a plan that includes Real-Time Media Streams (RTMS), which is required for live coaching.
Two-factor authentication
• The Legacy AI clinician test account has 2FA disabled for reviewers.
3. Setup & authorization steps
Step 1 — Add the app.
• In the Zoom App Marketplace, open the Legacy AI listing and click “Add”. Review the requested scopes and click “Allow”.
• Confirm: Authorization succeeds and Legacy AI appears under Manage > Added Apps.
Step 2 — Sign in to Legacy AI (clinician).
• Go to https://legacy-standalone-production.azurewebsites.net and log in with the clinician credentials in Section 2.
• Confirm: The clinician dashboard/patient list loads with the seeded dummy patient.
Step 3 — Start the telehealth meeting.
• Open the seeded telehealth encounter and click “Join Meeting”. If prompted, complete the Zoom OAuth consent.
• Confirm: Zoom OAuth completes, a Zoom meeting is created, and the meeting opens in the Zoom desktop client.
Step 4 — Open the app in the meeting.
• In the meeting toolbar choose Apps > Legacy AI.
• Confirm: The Legacy AI side panel loads on the in-meeting surface and detects the current meeting.
4. Feature-by-feature testing
The app runs as a Zoom App on the Meetings product surface only. Embed SDKs (Meeting SDK, Contact Center SDK, Phone SDK) are NOT enabled, and the app is not configured for Webinars, Zoom Rooms, Phone, or any other product.
Feature 1 — Zoom App in-meeting side panel (Meetings surface)
• Test: While in an active Zoom meeting (Section 3, Steps 3–4), open Apps > Legacy AI from the meeting toolbar.
• Confirm: The Legacy AI app renders inside the Zoom client as a side panel, reads the current meeting context via the Zoom Apps SDK, and displays the clinician coaching UI.
Feature 2 — Real-Time Media Streams (RTMS)
• Test: With the side panel open, start the coaching session. The app calls the Zoom Apps SDK startRTMS to begin streaming the meeting’s real-time media. Speak in the meeting (Section 6).
• Confirm: RTMS begins for the meeting; live coaching feedback appears in the clinician side panel in response to the spoken conversation. Ending the session or meeting stops RTMS cleanly.
5. Scope-by-scope testing
Below is every OAuth scope requested by the app, with why it is needed, how to test it, and how to confirm it worked.
Scope: user:read:user
• Why: Identify the authorizing clinician (email and user id) to link their Zoom identity to their Legacy AI account.
• Test: Complete authorization (Section 3, Step 1) and sign in (Step 2).
• Confirm: After consent, the app reads the Zoom user (GET /users/me) and associates the Zoom identity with the clinician account; the clinician can proceed to create/join a meeting.
Scope: meeting:write:meeting
• Why: Create the telehealth Zoom meeting for the encounter when the clinician clicks “Join Meeting”.
• Test: Perform Section 3, Step 3.
• Confirm: A Zoom meeting is created (POST /users/me/meetings) and opens in the Zoom desktop client.
Scope: meeting:read:meeting
• Why: Read meeting details to tie the meeting to the correct patient encounter.
• Test: Open the side panel in the meeting (Section 3, Step 4).
• Confirm: The app reads meeting details (GET /meetings/{id}) and the panel shows the correct meeting/encounter context.
Scope: meeting:read:meeting_audio
• Why: Receive the meeting’s real-time audio stream (via RTMS) to power live coaching.
• Test: Run the multi-participant flow (Section 6) and hold a short spoken conversation.
• Confirm: The clinician side panel produces live coaching that reflects what was spoken, proving the real-time audio stream is being received and processed.
Scope: meeting:read:meeting_transcript
• Why: Receive the meeting’s real-time transcript stream (via RTMS), used alongside audio to generate coaching feedback.
• Test: Same as above (Section 6); continue the spoken conversation.
• Confirm: Coaching feedback tracks the content of the conversation, showing the live transcript stream is received and used.
Scope: meeting:update:participant_rtms_app_status
• Why: Start and stop the participant’s RTMS app status so real-time media can begin and end from the Zoom App.
• Test: Start the coaching session (the app calls startRTMS), then end the session or meeting (the app calls stopRTMS).
• Confirm: RTMS starts when the session begins (coaching appears) and stops cleanly when the session ends (no further coaching; stream is torn down).
Scope: cloud_recording:read:list_recording_files
• Why: After the visit, list the meeting’s cloud recording files to locate the audio (M4A) for the post-meeting summary.
• Test: End the meeting (Section 6, Step 4) and wait for Zoom to finish processing the cloud recording.
• Confirm: The app lists the meeting recordings (GET /meetings/{id}/recordings) and finds the M4A audio file.
Scope: cloud_recording:read:recording
• Why: Download the located recording file from its download URL (authorized with the OAuth token) so the audio can be transcribed and summarized.
• Test: Same as above (Section 6, Step 4), after the recording file list is available.
• Confirm: The M4A file downloads successfully and a structured post-meeting summary is generated and viewable under the encounter in the Legacy AI web app.
Scope: rtms:read:rtms_started
• Why: Receive the meeting.rtms_started webhook so the server can attach to the real-time media
stream.
• Test: Start the coaching session (Section 6).
• Confirm: The meeting.rtms_started event is delivered and the server begins receiving the stream (live coaching starts appearing in the panel).
Scope: rtms:read:rtms_stopped
• Why: Receive the meeting.rtms_stopped webhook so the server can tear down the real-time media stream.
• Test: End the coaching session or the meeting (Section 6, Step 4).
• Confirm: The meeting.rtms_stopped event is delivered and the server stops and cleans up the RTMS session (coaching stops).
Scope: zoomapp:inmeeting
• Why: Enable the Legacy AI Zoom App to open inside the Zoom Meeting client as an in-meeting side panel.
• Test: During a meeting, open Apps > Legacy AI (Section 3, Step 4).
• Confirm: The app launches on the in-meeting surface (side panel).
6. End-to-end multi-participant flow
Step 1 — The clinician (primary account) joins the created meeting as host, with the Legacy AI side panel open.
Step 2 — A second Zoom client or device joins the same meeting as the “patient” participant. This can be any Zoom account and requires no Legacy AI login and no app installation.
Step 3 — Hold a short spoken conversation between the two participants.
• Confirm: The clinician’s side panel shows live coaching feedback during the conversation. The patient participant sees a normal meeting with no coaching and no app.
Step 4 — End the meeting.
• Confirm: The coaching session is saved to the encounter. After Zoom finishes processing the cloud recording, a post-meeting summary is generated and is viewable in the Legacy AI web app under that encounter.
7. Removing the app (deauthorization test)
Step 1 — In the Zoom App Marketplace: Manage > Added Apps > Legacy AI > Remove, then confirm.
• Confirm: Zoom sends the deauthorization notification; Legacy AI revokes the Zoom token and deletes the stored Zoom connection for the account. Opening the side panel afterward prompts to re-authorize.
Step 2 — Re-add the app to confirm re-authorization works (repeat Section 3).
Full user-impact details: https://www.legacytheapp.com/docs/zoom-app#3-removing-the-app
8. Expected outcomes summary
• Add + authorize: OAuth succeeds; the app appears in Added Apps.
• Clinician login: Dashboard loads with seeded dummy data.
• Join Meeting: Zoom meeting is created and opened.
• Open panel in meeting: App loads on the in-meeting surface and reads meeting context.
• Live conversation: Clinician-only live coaching appears in the side panel.
• End meeting: Coaching is saved; a summary is generated for the encounter.
• Remove app: Token is revoked, the Zoom connection is deleted, and re-authorization is required.
9. Reviewer support
If anything blocks testing, email support@legacytheapp.com (subject starting with “Zoom Review:”).
Support hours 7:00 AM–7:00 PM Pacific, Monday–Friday; first response within 12 working hours.
Legacy is a health system-focused longitudinal memory infrastructure - capturing what matters to patients and making it persist across time, teams, and settings so care is more personalized, aligned with goals, and efficient.
Legacy is a health system-focused longitudinal memory infrastructure - capturing what matters to patients and making it persist across time, teams, and settings so care is more personalized, aligned with goals, and efficient.
Legacy is a health system-focused longitudinal memory infrastructure - capturing what matters to patients and making it persist across time, teams, and settings so care is more personalized, aligned with goals, and efficient.
Legacy is a health system-focused longitudinal memory infrastructure - capturing what matters to patients and making it persist across time, teams, and settings so care is more personalized, aligned with goals, and efficient.