Optionalnote: stringAnalyze communication coaching moments
Run custom analysis with user-defined rubric
Analyze an interview transcript
Analyze a sales call transcript
Analyze a session transcript
RAG: search for context then generate AI answer
Optionaloptions: AskOptionsCheck which connected users match a metadata-based relationship with the caller.
The server derives the match value from the caller's profile in the database — the client only specifies which metadata field names to compare and their own profile ID.
The calling user's profile ID (for metadata lookup)
Field name mapping: userField on connected users, callerField on the caller
Array of online user IDs that match
Clear cached token (forces re-generation on next request)
Clear the current userId (e.g., on logout). Stops the presence heartbeat and sends an offline signal.
Open an SSE stream for real-time active room discovery. Returns a handle with a close() method to terminate the connection.
The user ID to filter rooms for (required)
Optionalhandlers: {Event handlers for stream events
Open an SSE stream for real-time chat messages in a room. Returns a handle with a close() method to terminate the connection.
The room to stream messages for
Optionalhandlers: {Event handlers for stream events
Tear down the client. Stops the presence heartbeat and sends an immediate offline signal. Call this when the client is no longer needed.
List active rooms for the authenticated org/tenant. When userId is provided, only rooms targeting that user are returned.
OptionaluserId: stringGet the SSE stream URL for active room discovery. Returns the full URL including authentication and userId query parameters.
The user ID to filter rooms for (required)
Get paginated message history for a room.
The room to fetch history for
Optionaloptions: { cursor?: string; limit?: number }Pagination options (cursor, limit)
Messages and next cursor for pagination
Get the SSE stream URL for real-time chat messages in a room. Exchanges the cloud token for a single-use ticket (keeps token out of URL).
The room to stream messages for
Full SSE URL with ticket and roomName query params
Get all conversations (rooms) the user has chatted in, with last message preview and count.
The user ID to fetch conversations for
Array of conversation summaries sorted by most recent
Send a presence heartbeat to indicate the current user is online. Call this periodically (e.g., every 5s) from any page. The server stores it in Redis with an 8s TTL.
The current user's email
Immediately remove the user's online presence (e.g., on logout).
The current user's email
Push mood/sentiment data to a response context.
Context identifier (e.g. from a recording or live session)
User ID for request validation
Sentiment/mood data to push
Query against accumulated meeting context identified by a response ID.
Context identifier (e.g. from a recording or live session)
User ID for request validation
Question to ask about the meeting content
Optionaloptions: { model?: string; promptKey?: string }Optional parameters (promptKey, model)
Remove an advertised room from discovery.
Semantic search across all sources (transcriptions + documents)
Optionaloptions: SearchOptionsSearch within documents only
Optionaloptions: SearchOptionsSearch within transcriptions only
Optionaloptions: SearchOptionsSend a chat message to a room. The message is persisted and broadcast to SSE subscribers via MongoDB change stream.
The room to send the message to
The message text (max 1000 chars)
The sender's user ID
The persisted message ID
Update the cloud token (e.g., after manual refresh)
Set or update the current user's email. Forces a token refresh on the next request. Restarts the presence heartbeat if enabled.
Update an advertised room's metadata.
Advertise a room for discovery by targeted users.