A renovation job runs on trades and clients working the same schedule. Neither should ever see the other’s rates, contacts or comments.
Every new job meant setting up access by hand and answering the same questions again. Visibility was the hard part: trades can't see clients or other trades, clients can't see trades, and CEOs can't open each other’s jobs. Invoices follow the same rules, set by who uploaded them.
We wrote down what each role can and cannot do before designing anything, then built to that as a companion plugin on hooks, so the vendor product stays upgradeable.
Four roles, admin, CEO, client and trade, each defined by what they may do and, more importantly, what they may never do. Only an admin can hard-delete or reopen a closed job. These rules became the dashboards’ specification.
A CEO creates a job under a client. It closes to read-only: the client keeps the record, trades lose upload access, and only an admin can reactivate it. Each client holds unlimited jobs, each mapped to a platform project.
CEOs see active jobs, client summaries, trade assignments, budget against actual and upload approvals. Clients see progress, milestones and permitted invoices. Trades see only their assigned jobs. Every view opens on job, address, status and a click-to-call number.
Internal members, trades and clients register through one structured flow that ends in approval, so nobody reaches job data before someone has granted it. Clients can hard-delete their own account, GDPR style.
A trade’s invoice is visible to admin, CEO and client; a CEO’s stays hidden from trades. Both are stored against the job and feed the actuals, so billing tracks progress instead of trailing it.
Email is event-based and role-targeted, so a notification never becomes the leak the permission matrix was built to prevent.
The customisation is a plugin on WP Project Manager Pro’s existing hooks. Where no hook existed and a core touch was unavoidable, the change was documented in a change log the client keeps for future upgrades.
Setup that used to be a conversation is now a form and an approval, and the CEO’s office stopped being the router for every question.
Each party opens to the job name, client address, status and a click-to-call number, then only the actions their role owns, so nobody learns the parts of the system that are not theirs.
One structured flow for internal members, trades and clients, with a checkpoint before access, so the right people are inside the system and nobody else is.
Configuration is organised around how the business actually operates rather than by technical category, so an operations lead can maintain it without a developer.
The defining constraint was negative permissions. Most project tools make work visible; this one had to make it selectively invisible across dashboards, invoices, comments and emails. Writing the cannot-do list before any screen design kept all four consistent.
Tell us where the friction is. We’ll propose a clear place to start.
Send a project request or book a call. A written scope helps but isn’t required. NDA on request.
A project manager reviews your request and sets up a free call with a senior engineer.
You get deliverables, timeline, and cost agreed before any work starts.