Skip to main content
All Docs
FeaturesmyProp (AgentOS People Portal)Updated April 4, 2026

Messaging

Messaging

The myProp messaging system lets property clients communicate directly with their letting or estate agency from within the portal. All messages are routed through the AgentOS API and appear in the agency's existing workflow.


Accessing Messages

Navigate to Messages from the main portal navigation. The messages page is available at:

/<company-slug>/messages

You must be signed in to access this page. All messaging endpoints are authenticated.


Account Switcher

If you hold more than one property role — for example, you are both a landlord and a tenant — you can switch between your accounts without signing out.

  • Desktop: an account switcher panel appears in the sidebar on the left.
  • Mobile: a dropdown appears at the top of the messages view.

Supported account types:

Account TypeDescription
LandlordOwns one or more rental properties managed by the agency
TenantCurrently renting a property through the agency
BuyerSearching for a property to purchase
VendorSelling a property through the agency
ContractorCarries out maintenance or works on behalf of the agency

Each account type is colour-coded and icon-labelled throughout the interface for quick identification.


Inbox

The inbox displays all messages associated with the selected account.

  • Read / unread indicators — Unread messages are visually distinguished.
  • Urgency badges — Messages flagged as urgent are highlighted.
  • Category labels — Messages may carry a category set by the agency.
  • Relative timestamps — Dates are shown as 2m ago, 3h ago, 5d ago, or a short date for older messages.
  • Pagination — Use the previous/next controls to move through large inboxes.

Auto Mark-as-Read

Opening a message automatically marks it as read. No manual action is required.


Reading a Message

Click any message in the inbox to open the detail view. The detail view shows:

  • Full message body
  • Sender and recipient information
  • Message metadata (date sent, category, urgency)
  • A reply form (see below)

Use the Back button or arrow to return to the inbox.


Composing a New Message

  1. Click the Compose button in the messages interface.
  2. Confirm the sending account shown beneath the form heading — this is the persona the agency will see.
  3. Enter a Subject (required, up to 500 characters).
  4. Enter your Message (required, up to 5,000 characters). A live character counter is shown.
  5. Toggle Urgent if the matter requires priority attention.
  6. Click Send.

Once sent, the inbox refreshes automatically and the new message appears at the top.


Replying to a Message

From the message detail view, an inline reply form is shown below the message body.

  1. Type your reply in the reply field.
  2. Click Send Reply.

Replies are threaded to the original message on the AgentOS side.


Empty State

If your inbox is empty, the portal displays an empty state prompt encouraging you to use the Compose button to send your first message.


Error Handling

If a network or API error occurs, an error banner is shown with a Try Again button that retries the failed request. Form validation errors (e.g. missing subject or body) are surfaced inline before submission.


Technical Notes (for Developers)

tRPC Endpoints

All messaging endpoints live under the messaging router and require an authenticated session.

ProcedureTypeDescription
messaging.statusQueryCheck messaging service availability
messaging.inboxQueryPaginated inbox for a given account and type
messaging.messageDetailsQueryFull message body and metadata for a single message
messaging.sendMutationSend a new message to the agency
messaging.replyMutationReply to an existing message thread
messaging.markReadMutationMark a message as read

AgentOS API Routing

The messaging service (src/lib/letmc/messaging.ts) automatically selects the correct AgentOS API branch:

  • Buyers and vendors → routed through the sales API
  • Landlords, tenants, contractors → routed through the lettings API

Account discovery uses accountDiscovery.discover to resolve the correct person record for each account type.

Send Payload Fields

FieldRequiredMax LengthNotes
subjectYes500 charsPlain text
bodyYes5,000 charsPlain text
isUrgentNoBoolean flag
accountIdYesAgentOS account identifier
accountTypeYesOne of the 5 supported types