Riley Strahan RS

Virtual Participant Workspace

Create a VP and watch it join, transcribe, and summarize — all via LMA embedded iframes
LMA Virtual Participant creator
https://YOUR_LMA_URL/#/embed?component=vp-loader
🤖
VP creator appears here.
Set your LMA Base URL + meeting details in the yellow bar,
then click Apply.
Parent-app controls
postMessage
Parent sends LMA_CREATE_VP with the form values to the VP-loader iframe. All LMA_* events from every iframe show up below.
Waiting for events from LMA iframes…
LMA Live view (noVNC) waiting
https://YOUR_LMA_URL/#/embed?component=vnc&vpId=…
Live view will appear once the VP has started.
LMA VP details
https://YOUR_LMA_URL/#/embed?component=vp-details&vpId=…&show=details
VP metadata will appear here.
LMA Live transcript
https://YOUR_LMA_URL/#/embed?component=transcript&callId=…
Live transcript auto-refreshes.
Once the VP joins the meeting, the callId is emitted via
LMA_VP_STATUS_CHANGED and this iframe loads automatically.
If the backend hasn't finished creating the call record yet, the transcript embed's own AppSync subscription will keep polling and auto-fill — no page refresh needed.
LMA AI meeting summary
https://YOUR_LMA_URL/#/embed?component=summary&callId=…
Summary appears after the meeting is complete (auto-refreshes when ready).
How this works: the top-left iframe is ?component=vp-loader. When you click ▶ Create VP & join meeting, the parent page posts an LMA_CREATE_VP message; the loader creates the VP via GraphQL + Step Function, emits LMA_VP_CREATED back with vpId, and streams LMA_VP_STATUS_CHANGED events (including callId as soon as the VP joins). The parent then reveals the four monitor iframes — the transcript and summary iframes use the new AppSync-subscription auto-refresh, so they load their "Waiting for meeting to start…" state and self-populate when the call appears. Zero manual refreshes.