Screen: Clients
web/clients.html (script web/clients-surface.js) — "Clients" in the Admin menu, admins only
since 17 Oct 2026. From the 15 Oct meeting with Lindsey (project pages are the main workspace) and Kirk's rule:
the client page edits only what is specific to the client's account.
What is on it
One row per client: name, type (Client or Internal), HubSpot company (a link when mapped), and the number of current projects. The count links to that client in Projects. Search matches client and project names.
- + New client creates a client with no project yet.
- Edit changes the name, type or HubSpot mapping. It uses the same dialog and the same
conflict-protected
POST /api/portfolio-actions(update_client) as before, so a stale version is refused with a reload prompt. /clients.html?edit=<client id>opens that client's editor (used by Projects and by All projects' account-identity conflicts).
The data comes from GET /api/account-directory?as=all.
What is not on it
Project status, project managers, team, proposals, source conflicts and classification are on Projects:
By client or All projects. The client owner (clients.owner_person_id) is
not shown anywhere in SABLE, the customer portal included; the field stays in the database.
Access
Clients is in the Admin menu, which only admins see, and a non-admin who opens the page is pointed to Projects. Server
side, update_client is admin only; create_client also allows leads, who can still create a client
through Add project.