Vendors
The vendor is the paying subscriber: they source leads, own the customer relationship, and read the dashboard the platform reports back to them. See Reading the tables for the conventions.
Capabilities
| Capability | Gate | Admin | CSM | SDM | Expert | Vendor | Customer |
|---|---|---|---|---|---|---|---|
| View leads across the tenant | lead.view | ✔️ | ✔️ | ✔️ | ✔️ (own) | ✔️ | ✔️ (own) |
| View milestones | milestone.view | ✔️ | ✔️ | ✔️ | ✔️ (own) | ✔️ | ✔️ (own) |
| View invoices | invoice.view | ✔️ | ✔️ | ✔️ | ✔️ (own) | ✔️ | ✔️ (own) |
| View CSAT scores | csat.view | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ✔️ (own) |
| View activity | activity.view | ✔️ | ✔️ | ✔️ | ✔️ (own) | ✔️ | ✔️ (own) |
| Rate an expert on a delivered lead | expert.rate | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ |
| Run the tenant onboarding concierge | onboarding.run | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ |
Vendors read the full tenant, not a filtered slice — lead.view, milestone.view,
invoice.view, csat.view and activity.view are all held at full scope, the same as a manager.
What they do not hold is anything on the requirements or bidding path: no brd.view, no
proposal.view, and no write on a lead beyond sourcing it. The dashboard is a reporting surface,
so expert.rate is the vendor’s only write on delivery.
There is no vendors table in the platform. A vendor is a tenant, and the vendor-facing directory
is their customer list at /vendor/customers; tenant administration lives under
Roles → Admin.
Surfaces — the vendor dashboard
Every one of these is an explicit vendor-only route: the dashboard cards click through to them, and no other role — admin included — is on the list. An admin walks the dashboard through View As instead.
| Page | What it shows | Vendor | Every other role |
|---|---|---|---|
/vendor/dashboard | The dashboard itself | ✔️ | ❌ |
/vendor/funnel | Revenue funnel | ✔️ | ❌ |
/vendor/pipeline | Pipeline drop-offs | ✔️ | ❌ |
/vendor/csat | CSAT by revenue | ✔️ | ❌ |
/vendor/health | Service quality success rate | ✔️ | ❌ |
/vendor/renewals | Renewal risk indicators | ✔️ | ❌ |
/vendor/metrics | The KPI dictionary behind the dashboard | ✔️ | ❌ |
/vendor/customers | Customer list and invitations | ✔️ | ❌ |
Surfaces — shared
| Page | Gate | Admin | CSM | SDM | Expert | Vendor | Customer |
|---|---|---|---|---|---|---|---|
/service-leads | derived from lead.view | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
/service-leads/create | explicit — vendor lead sourcing | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ |
/service-leads/import | explicit — bulk lead import | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
/onboarding | derived from onboarding.run | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ |
/settings | explicit — account settings | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
/admin/metrics | derived from tenantConfig.manage | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
Metric definitions are read by admins at /admin/metrics and by vendors at /vendor/metrics.
Both surfaces are read-only and stay that way: a definition changes by migration and deploy, never
in the product, and no role — admin included — can enter, adjust or override a reported figure.