Reference
solarOS resolves access from a fixed permission catalog mapped to platform
roles. OWNER bypasses this matrix entirely (hardcoded in the resolution
engine, not a row in RolePermission); every other role below is an exact
role-permission grant. Generated from PERMISSIONS and ROLE_PERMISSION_MATRIX
in apps/web/prisma/seed-helpers/seed-permissions.ts.
| Permission | Description | ADMIN | SALES_MANAGER | SALES_USER | OPERATIONS_MANAGER | OPERATIONS_USER | TECHNICIAN | MEMBER |
|---|---|---|---|---|---|---|---|---|
| customers.view_own | View customers assigned to you | Yes | Yes | Yes | ||||
| customers.view_all | View all customer records in the organization | Yes | Yes | Yes | Yes | |||
| customers.view_unassigned | View customers not assigned to anyone | Yes | Yes | Yes | Yes | Yes | ||
| customers.create | Create new customer records | Yes | Yes | Yes | Yes | Yes | ||
| customers.edit | Edit existing customer records | Yes | Yes | Yes | Yes | Yes | ||
| customers.delete | Delete customer records | Yes | Yes | Yes | ||||
| customers.assign | Assign customers to team members | Yes | Yes | Yes | Yes | |||
| customers.reassign | Change the accountable owner of an existing customer record | Yes | Yes | Yes | ||||
| leads.view_own | View leads assigned to you | Yes | Yes | |||||
| leads.view_all | View all lead records in the organization | Yes | Yes | Yes | Yes | |||
| leads.view_unassigned | View leads not assigned to anyone | Yes | Yes | Yes | Yes | Yes | ||
| leads.create | Create new leads | Yes | Yes | Yes | Yes | Yes | ||
| leads.edit | Edit existing leads | Yes | Yes | Yes | Yes | Yes | ||
| leads.delete | Delete lead records | Yes | Yes | Yes | ||||
| leads.assign | Assign leads to team members | Yes | Yes | Yes | Yes | |||
| leads.reassign | Change the accountable owner of an existing lead | Yes | Yes | Yes | ||||
| opportunities.view_own | View opportunities assigned to you | Yes | Yes | |||||
| opportunities.view_all | View all opportunities in the organization | Yes | Yes | Yes | Yes | |||
| opportunities.view_unassigned | View opportunities not assigned to anyone | Yes | Yes | Yes | Yes | Yes | ||
| opportunities.create | Create new opportunities | Yes | Yes | Yes | Yes | Yes | ||
| opportunities.edit | Edit existing opportunities | Yes | Yes | Yes | Yes | Yes | ||
| opportunities.delete | Delete opportunity records | Yes | Yes | Yes | ||||
| opportunities.reassign | Change the accountable owner of an existing opportunity | Yes | Yes | Yes | ||||
| quotes.view_own | View quotes you created or are assigned to | Yes | Yes | |||||
| quotes.view_all | View all quotes in the organization | Yes | Yes | Yes | Yes | |||
| quotes.view_unassigned | View quotes not assigned to anyone | Yes | Yes | Yes | Yes | Yes | ||
| quotes.create | Create new quotes | Yes | Yes | Yes | Yes | Yes | ||
| quotes.edit | Edit existing quotes | Yes | Yes | Yes | Yes | Yes | ||
| quotes.delete | Delete quote records | Yes | Yes | Yes | ||||
| quotes.approve | Approve quotes for customer delivery | Yes | Yes | Yes | ||||
| quotes.send | Send quotes to customers | Yes | Yes | Yes | Yes | Yes | ||
| quotes.assign | Assign quotes to team members | Yes | Yes | Yes | Yes | |||
| quotes.reassign | Change the accountable owner of an existing quote | Yes | Yes | Yes | ||||
| quotes.adjustments.write_in | Add one-off pricing adjustments that are not in the pricing catalog | Yes | Yes | |||||
| tasks.view_own | View Own tasks | Yes | Yes | Yes | ||||
| tasks.view_all | View All tasks | Yes | Yes | Yes | Yes | |||
| tasks.view_unassigned | View Unassigned tasks | Yes | Yes | Yes | Yes | |||
| tasks.create | Create tasks | Yes | Yes | Yes | Yes | |||
| tasks.edit | Edit tasks | Yes | Yes | Yes | Yes | |||
| tasks.delete | Delete tasks | Yes | Yes | |||||
| projects.view_own | View projects assigned to you | Yes | Yes | Yes | ||||
| projects.view_all | View all projects in the organization | Yes | Yes | Yes | Yes | |||
| projects.view_unassigned | View projects not assigned to anyone | Yes | Yes | Yes | Yes | |||
| projects.create | Create new projects | Yes | Yes | Yes | Yes | |||
| projects.edit | Edit existing projects | Yes | Yes | Yes | Yes | |||
| projects.delete | Delete project records | Yes | Yes | |||||
| projects.assign | Assign projects to team members | Yes | Yes | Yes | ||||
| projects.reassign | Change the accountable owner of an existing project | Yes | Yes | Yes | ||||
| projects.manage_templates | Create and edit project templates | Yes | Yes | |||||
| projects.change_orders.approve | Approve, reject, or void project change orders | Yes | Yes | |||||
| media.upload | Upload media to a visible project media gallery | Yes | Yes | Yes | Yes | Yes | ||
| media.delete | Soft-delete media from a visible project media gallery | Yes | Yes | Yes | ||||
| work_orders.view_own | View work orders assigned to you | Yes | Yes | Yes | ||||
| work_orders.view_all | View all work orders in the organization | Yes | Yes | Yes | Yes | |||
| work_orders.view_unassigned | View work orders not assigned to anyone | Yes | Yes | Yes | ||||
| work_orders.create | Create new work orders | Yes | Yes | Yes | ||||
| work_orders.edit | Edit existing work orders | Yes | Yes | Yes | ||||
| work_orders.delete | Delete work order records | Yes | Yes | |||||
| work_orders.complete | Mark work orders as complete | Yes | Yes | Yes | Yes | |||
| appointments.create | Create or schedule service appointments on a work order | Yes | Yes | Yes | ||||
| reports.view_own | View reports you submitted | Yes | Yes | Yes | ||||
| reports.view_all | View all reports in the organization | Yes | Yes | Yes | Yes | |||
| reports.create | Create field reports | Yes | Yes | Yes | Yes | |||
| reports.edit | Edit report contents after creation | Yes | Yes | Yes | Yes | |||
| reports.delete | Soft-delete report records | Yes | Yes | |||||
| reports.review | Review and approve submitted reports | Yes | Yes | |||||
| reports.email_customer | Send customer-facing report emails | Yes | Yes | |||||
| reports.create_quote | Create follow-up quotes from report outcomes | Yes | Yes | Yes | ||||
| billing.view_own | View your own invoices and payments | Yes | Yes | |||||
| billing.view_all | View all invoices and payment history | Yes | Yes | Yes | Yes | |||
| billing.create | Create new invoices | Yes | Yes | Yes | Yes | |||
| billing.manage | Manage payments and process refunds | Yes | Yes | |||||
| billing.field_invoice | Send invoices and collect or record customer payments from the technician work-order experience | Yes | ||||||
| users.view | View the users list | Yes | Yes | Yes | Yes | |||
| users.invite | Send invitations to join the organization | Yes | ||||||
| users.edit_role | Change another user's role | Yes | ||||||
| users.edit_details | Edit another user's details such as schedule | Yes | ||||||
| users.deactivate | Deactivate or remove users | Yes | ||||||
| users.manage_permissions | Manage per-user permission overrides | Yes | ||||||
| users.manage_sso | Configure single sign-on (SAML/OIDC) for the organization | Yes | ||||||
| users.manage_2fa | Configure per-role two-factor authentication enforcement | Yes | ||||||
| users.manage_compensation | Configure per-role commission and base compensation (Compensation feature shell) | |||||||
| settings.view | View organization settings | Yes | Yes | Yes | Yes | Yes | Yes | |
| settings.edit | Modify organization settings | Yes | ||||||
| settings.billing | View and manage billing settings | |||||||
| settings.fields.manage | Create, edit, deprecate, and delete custom fields used in quotes, projects, and agreements | Yes | ||||||
| settings.organization.manage | Edit organization profile, branding, and hours (Company section). | Yes | ||||||
| settings.licenses.manage | Create, edit, and delete contractor licenses (Company section). | Yes | ||||||
| settings.work-types.manage | Create, edit, and delete work types (Operations section). | Yes | ||||||
| settings.checklists.manage | Create, edit, and delete checklist templates (Operations section). | Yes | ||||||
| settings.slas.manage | Create, edit, and delete work-type SLAs (Operations section). | Yes | ||||||
| settings.scheduling.manage | Configure scheduling rules and guardrails (Operations section). | Yes | ||||||
| settings.maintenance-plans.manage | Umbrella permission for plans, billing, renewals, service catalog, and deliverable types (Operations section). | Yes | ||||||
| settings.subscriptions.manage | Create, edit, and delete subscription maintenance plans (Operations section). | Yes | ||||||
| settings.service-catalog.manage | Create, edit, and delete service offerings (Operations section). | Yes | ||||||
| settings.deliverable-types.manage | Create, edit, and delete deliverable types (Operations section). | Yes | ||||||
| settings.locations.manage | Create, edit, and archive company offices, warehouses, and pickup locations. | Yes | ||||||
| settings.pickup-locations.manage | Create, edit, and delete material pickup locations (Operations section). | Yes | ||||||
| settings.project-templates.manage | Create, edit, and delete project templates and mappings (Operations section). | Yes | ||||||
| settings.project-automation.manage | Create, edit, and delete project automation rules (Operations section). | Yes | ||||||
| settings.knowledge.manage | Upload, edit, and delete knowledge base documents (Operations section). | Yes | ||||||
| settings.report-types.manage | Create, edit, and delete report types (Operations section). | Yes | ||||||
| settings.wo-report-configs.manage | Configure required reports per work type (Operations section). | Yes | ||||||
| settings.contract-templates.manage | Create, edit, and delete customer agreement templates (Sales catalog section). | Yes | ||||||
| settings.financing.manage | Configure financing lenders and options (Sales catalog section). | Yes | ||||||
| settings.pricing.manage | Configure pricing adders, rules, tiers, and financing options (Sales catalog section). | Yes | ||||||
| settings.jurisdictions.manage | Configure jurisdictions and compliance data (Company section). | Yes | ||||||
| settings.territories.manage | Draw and edit territories and territory types (Company section). | Yes | ||||||
| settings.payment-schedules.manage | Create, edit, and delete payment schedule templates (Sales catalog section). | Yes | ||||||
| settings.custom-record-types.manage | Create, edit, and delete custom record type schemas (Projects section). | Yes | ||||||
| settings.email-templates.manage | Create, edit, and delete customer email templates (Communications section). | Yes | ||||||
| settings.sms-templates.manage | Create, edit, and delete customer SMS templates (Communications section). | Yes | ||||||
| settings.sender-identity.manage | Configure from-email, from-name, from-phone, and run domain verification (Communications section). | Yes | ||||||
| settings.notification-rules.manage | Create, edit, and delete notification routing rules (Communications section). | Yes | ||||||
| settings.activity-feed.manage | Choose which system events appear in the in-app activity feed. | Yes | ||||||
| settings.email-log.view | Read the organization-wide log of sent emails, including content and delivery status (Communications section). | Yes | ||||||
| settings.integrations.view | View installed integrations and the discoverable catalog (Integrations section). | Yes | Yes | |||||
| settings.integrations.manage | Connect, configure, test, and disconnect third-party integrations (e.g., Salesforce, QuickBooks). | Yes | ||||||
| settings.webhooks.manage | Create, edit, delete, and rotate secrets for outbound webhooks (Integrations section). | Yes | ||||||
| settings.api-keys.manage | Create and revoke API keys for external tools and AI agents (Integrations section). | Yes | ||||||
| settings.organization.export | Request a full export of organization data (invoices, customers, projects). | |||||||
| settings.organization.delete | Permanently delete the organization and all associated data. | |||||||
| settings.authentication.manage | Configure SSO provider + tenant and org-level 2FA enforcement (Security section). | Yes | ||||||
| settings.session.manage | Configure password policy, session timeout, and remember-device rules (Security section). | Yes | ||||||
| settings.audit-log.view | Read the organization-wide audit log with filters and row detail (Security section). | Yes | ||||||
| settings.data-export.request | Request full or scoped exports of organization data (Security section). | Yes | ||||||
| settings.retention.manage | Configure per-entity data retention policy (Security section). | Yes | ||||||
| settings.developer.manage | Create/toggle/delete organization feature flags and access developer tools. Platform-reserved, OWNER-only. | |||||||
| monitoring.view | View system monitoring dashboards | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| monitoring.configure | Configure alert thresholds and notification settings | Yes | Yes | |||||
| profile.edit_own | Edit own profile information | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.dashboard.view | Open the Dashboard area. Off = the Dashboard pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.sales.view | Open the Sales area. Off = the Sales pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.customers.view | Open the Customers area. Off = the Customers pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.projects.view | Open the Projects area. Off = the Projects pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.dispatch.view | Open the Dispatch area. Off = the Dispatch pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.monitoring.view | Open the Monitoring area. Off = the Monitoring pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.marketplace.view | Open the Marketplace area. Off = the Marketplace pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.billing.view | Open the Billing area. Off = the Billing pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| nav.settings.view | Open the Settings area. Off = the Settings pages are hidden and blocked. | Yes | ||||||
| project_items.view_own | View project items assigned to you (My Work sub-app) | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| project_items.view_all | View all project items across the team / organization | Yes | Yes | Yes | ||||
| project_items.view_unassigned | View project items not assigned to anyone (claim queue) | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| project_items.assign_others | Assign project items to other team members | Yes | Yes | Yes | ||||
| project_items.claim | Self-claim unassigned project items | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| project_items.delete | Soft-delete project items from a visible project | Yes | Yes | |||||
| material_reqs.create | Create material requisitions from projects and work orders | Yes | Yes | Yes | ||||
| material_reqs.edit | Edit material requisitions, including line items, receiving, and status changes | Yes | Yes | Yes | ||||
| material_reqs.delete | Cancel material requisitions and remove their project/work-order links | Yes | Yes | |||||
| material_reqs.pickup | Confirm pickup of a ready material order (status and pickup notes only) | Yes | Yes | Yes | Yes | |||
| cases.view_own | View cases assigned to you or that you created | Yes | Yes | Yes | ||||
| cases.view_all | View all cases in the organization | Yes | Yes | Yes | ||||
| cases.view_unassigned | View cases not assigned to anyone | Yes | Yes | Yes | ||||
| cases.create | Create new cases from staff intake | Yes | Yes | Yes | ||||
| cases.edit | Edit existing cases | Yes | Yes | Yes | ||||
| cases.delete | Delete case records | Yes | Yes | |||||
| cases.reassign | Change the accountable owner of an existing case | Yes | Yes | |||||
| cases.close | Close cases with a recorded resolution | Yes | Yes | Yes | ||||
| cases.reopen_closed | Transition a CLOSED case back to OPEN (manager-only) | Yes | Yes | |||||
| cases.manager_dashboard.view | Access the /service/cases/dashboard summary page | Yes | Yes | |||||
| contracts.create | Create customer agreements and contracts | Yes | Yes | Yes | Yes | |||
| contracts.void | Void pending customer agreements and cancel outstanding signatures | Yes | ||||||
| contracts.reassign | Change the accountable owner of an existing contract | Yes | Yes | Yes | ||||
| invoices.reassign | Change the accountable owner of an existing invoice | Yes | Yes | Yes | ||||
| change_orders.reassign | Change the accountable owner of an existing change order | Yes | Yes | Yes | ||||
| financing_applications.reassign | Change the accountable owner of an existing financing application | Yes | Yes | Yes | ||||
| automation_rules.reassign | Change the accountable owner of an existing automation rule | Yes | ||||||
| knowledge_documents.reassign | Change the accountable owner of an existing knowledge document | Yes | ||||||
| org_api_keys.reassign | Change the accountable owner of an existing API key | Yes | ||||||
| org_webhooks.reassign | Change the accountable owner of an existing webhook | Yes | ||||||
| saved_filters.reassign | Change the accountable owner of an existing saved filter | Yes | ||||||
| saved_filters.manage_shared | Share saved views with the whole organization, show them in page headers, and edit or delete any shared view | Yes | ||||||
| nav.cases.view | Open the Cases area. Off = the Cases pages are hidden and blocked. | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| analytics.view | Open the Analytics module (business trends and reports). Off = the Analytics pages are hidden and blocked. | Yes |
Was this page helpful?