Accounts Dashboard
Accounts Dashboard
The Accounts Dashboard at /:company/accounts gives authenticated users a single view of every portal account linked to their email address. A user can hold multiple account roles with the same agency — for example, acting simultaneously as a landlord and a tenant — and this page surfaces all of them in one place.
Supported Account Types
| Type | Description |
|---|---|
| Landlord | Manage rental properties, view statements, and track income. |
| Tenant | View tenancy details, report maintenance, and pay rent. |
| Buyer | Track property offers, viewings, and purchase progress. |
| Vendor | Monitor property sales, offers received, and marketing activity. |
| Contractor | View assigned jobs, update progress, and manage invoices. |
Navigating to the Page
The Accounts Dashboard is accessible from two entry points:
- Sidebar navigation — click Accounts (Users icon) in the company shell sidebar.
- Home dashboard — click the My Accounts quick-access card on the company home page.
The direct URL pattern is:
https://<your-portal-domain>/<company>/accounts
Page Layout
Type Summary Bar
At the top of the page, a row of compact badges shows the total count of accounts found for each type (e.g. 2 Landlords, 1 Tenant). Only account types that returned results are shown.
Filter Pills
When accounts of more than one type are present, a row of filter pills appears beneath the summary bar. Clicking a pill narrows the card grid to that account type. The active pill displays the count for that type. Clicking All resets the filter.
Account Cards
Each card in the grid represents a single portal account and displays:
- Account type icon and colour (unique per type)
- Account type label (e.g. Landlord, Tenant)
- Display name for the account
- Email address associated with the account
- Active / Inactive status badge — inactive accounts are labelled in red
- Account ID (truncated, shown at the bottom of the card)
Clicking a card navigates to that account's dedicated view:
/:company/accounts/:type/:accountId
States
Loading
While account data is being fetched, a skeleton UI matching the card grid layout is displayed. This is also used as the Next.js route-level loading state (loading.tsx).
Error
If the data fetch fails entirely, a red error panel is shown with the error message and a Try Again button that re-triggers the query.
If the fetch partially succeeds (some account types load, others do not), a banner is shown above the grid indicating that some results may be incomplete.
Empty
If no accounts are linked to the user's email:
No portal accounts are linked to your email address for this agency. Contact your agent if you believe this is an error.
If the active filter produces no results, the empty state offers a Clear Filters button.
Data Source
Account data is fetched using the accountDiscovery.discover tRPC procedure, queried with the agency's shortName (company slug). Results are cached for 60 seconds on the client and the query retries up to 2 times on failure before showing the error state.
No additional environment variables are required — this feature uses the existing AgentOS account discovery endpoint.
Permissions
This page is only accessible to authenticated users. The data returned is scoped to the email address of the signed-in user; users will only ever see their own linked accounts.