/pm/messaging/:conversationId.
Overview
The page loads messages for theconversationId route parameter via the platform useMessages hook, then resolves sender display names by querying pf_profiles for unique sender_id values in the message set. The header shows a “Secure” badge. Message history is rendered by MessageThread with load-more pagination via hasMore / loadMore. A MessageComposer at the bottom of the page handles new message input and supports a reply-to context (showing the quoted message author and a 100-character preview). Clicking a reply arrow on any message sets the reply context, which can be cleared with Cancel Reply.
Who it’s for
Requires permissionPM_PERMISSIONS.MESSAGES_VIEW (enforced via RequirePermission in the route definition).
Before you start
- You need
pm.messages.viewto access messaging. - Navigate here from the Messaging inbox (
/pm/messaging) by selecting a conversation.
Steps
1
Open a conversation
From the Messaging inbox (
/pm/messaging), click a conversation row to open the thread.2
Read the message history
Scroll through messages. Click Load more if older messages are available.
3
Reply to a specific message (optional)
Click the reply icon on a message to set it as the reply context. The composer shows the quoted author and preview.
4
Compose and send a reply
Type a message in the composer and submit. The
useSendMessage hook posts the message to the conversation.Key concepts
Related
Practice Management
Practice Management core overview.
Governance & parity
Documentation coverage and governance.
This page documents shipped product behavior. It is not medical, legal, or
billing advice. Verify against your organization’s policies and applicable
regulations before using it for clinical, compliance, or billing decisions.
Protected health information (PHI) shown in the product is governed by your
tenant’s access controls and is never exposed in this documentation.
Documentation sources
Documentation sources
- src/routes/pm.tsx
- src/cores/pm/pages/MessagingThreadPage.tsx