The Client Workspace
The single-client view is the day-to-day workspace for everything that touches one client. Every project, ticket, contract, resource, and so on appears in a tab inside this one page — no jumping between sections.
Opening the Workspace
From the Clients page, click any client card (Grid view) or row (List view). You land at /client/<slug>/.
You can also navigate directly via:
- Compose Message → recipient picker
- Project workspace → "Company" link in the toolbar
- Any "View Client" link in the portal
The Header
The workspace header shows:
Logo + Name
- The client logo (if uploaded)
- The client name as the page title — click to edit inline (admin/editor)
- A status badge next to the name
Action menu
A three-dot menu top-right with admin actions:
- Edit Client — opens the Settings tab in edit mode
- Compose Message — open the compose-message modal for this client
- Archive Client — archive (soft-delete) the client
- Delete Client — permanent delete (admin only, requires confirmation)
Quick stats
Inline counters showing:
- Contacts — how many users are assigned
- Locations — physical sites (if Locations is enabled)
- Projects — count of active projects
- Tickets — count of open tickets
- Last login — most recent contact login across all client users
The Tab System
The workspace shows a horizontal tab row. Each tab loads its content in-place — no page reload between tabs.
The tabs that appear depend on which features are enabled portal-wide. Features are toggled in Settings → Core Features.
| Tab | Always shown | Requires |
|---|---|---|
| Contacts | Yes | — |
| Locations | No | locations feature on |
| Assets | No | assets feature on |
| Resources | No | resources feature on |
| Projects | No | projects feature on |
| Tickets | No | tickets feature on |
| Invoices | No | invoices feature on |
| Contracts | No | contracts feature on |
| Settings | Yes | — |
If a feature is off portal-wide, its tab simply doesn't appear in the workspace.
Always-Visible Tabs
Contacts (default tab)
The user-management interface for this client — see the dedicated Contacts & Billing page.
The Contacts tab is the default landing tab when you open a client. It's a Vue.js app with two sub-tabs:
- Client Users — the contacts assigned to this client
- Account Managers — internal team members responsible for the client
Settings (gear icon)
The configuration tab for the client itself — see Managing & Permissions. Always at the far-right of the tab row, represented by a gear icon (no label).
Settings includes:
- Basic Information (name, logo, description)
- Billing Contact selection
- Address Information (multiple addresses with billing flag)
- Status and category management
Feature-Gated Tabs
These tabs appear only when their parent feature is enabled:
Locations
Lists physical sites for this client. Each location card shows:
- Location name
- Address summary
- Tags / labels
- Contact info if set
Click a location to drill into its full record.
Assets
Lists equipment, hardware, or any inventory tracked per-client. Card grid with type, status, and last-service date.
Resources
The client's resource library — both folders the client has access to and resources directly assigned to them. Same UI as the main Resources page but pre-filtered to this client.
Projects
A summary table of every project owned by this client:
- Project number
- Project name
- Category
- Status (with color badge)
- Last modified
- Active link to the project workspace
Tickets
A summary table of every ticket filed for this client:
- Ticket reference
- Subject
- Status
- Priority
- Last updated
- Active link to the ticket
Invoices
The client's invoice history (if invoices are enabled):
- Invoice number
- Date
- Amount
- Status (Paid / Sent / Overdue / Draft)
- Download link to the invoice PDF
Contracts
The client's contract history. Includes one row per:
- Contract directly assigned to this client (the_client field matches)
- Contract submission where any signer is a user from this client
Pending contracts show a yellow badge in the tab label so you spot them quickly.
Tab Badges
Some tabs include count badges in their label:
| Tab | Badge shows |
|---|---|
| Projects | Total count of projects for this client |
| Tickets | Total count of tickets |
| Invoices | Total count of invoices |
| Contracts | Pending contract count (only when > 0, in yellow) |
Badges update on tab content load — switch back to the workspace after creating a new project and the count refreshes.
Tab Persistence
The active tab persists in the URL via the hash (#tab_projects, #tab_tickets, etc.). This means:
- Bookmark a specific tab to return directly to it
- Share a URL with a colleague that lands them on the same tab you're on
- Refresh the page and stay on the same tab
The default tab on first visit is always Contacts.
Quick Actions
Most tabs include action buttons specific to that view:
| Tab | Quick actions |
|---|---|
| Contacts | Add Contact, Add Account Manager, Send Invites, Import |
| Projects | Create Project (jumps to the new-project modal pre-scoped to this client) |
| Tickets | (no create — tickets are filed by client users via the portal) |
| Resources | Add Folder for Client, Upload Resource |
| Contracts | Send from Template (pre-scoped to this client) |
| Invoices | Create Invoice (if invoices feature includes draft creation) |
| Settings | Save Changes |
These actions are pre-scoped to the current client, so you skip the client-picker step you'd see if you started from the global feature page.
The workspace is the recommended starting point for client work. Instead of going to /projects/ and filtering by client, open the client first — the Projects tab is already filtered, the Create Project button already knows the client, and you have one-click access to every other related record without losing context.