Who can use this: Workspace owners only (
client_ownerrole) URL / Route:/portal/workspace/settings(routeportal.workspace.edit) Plan / feature gate: Always on
Purpose
Workspace Settings is the canonical edit page for your workspace — the company-level container that holds all of your organizations, team members, and billing. It lives one layer above any specific organization.
Use this page when you need to change anything that applies to the
whole workspace, not to a single organization. Example: renaming your
company, adding the new @acme.io domain so future signups
auto-attach to your workspace, updating your contact phone.
Step by step
- Click Workspace Settings in the sidebar (under the Workspace
section), or visit
/portal/workspace/settings. - Edit any of:
- Workspace name — the company name shown on invoices, in the sidebar header, and on every share / invite URL
- Website — your public URL
- Contact email — workspace-level contact (separate from your personal email)
- Contact phone
- Workspace domains — comma-separated list of email domains
that belong to your company (
acme.com, acme.io). Used for Company-account detection during invitations and for future-self SSO.
- Click Save changes (
PATCH /portal/workspace/settings, routeportal.workspace.update). - The first time you save a workspace name, Solavel stamps
workspace_name_set_atso the first-time-naming prompts go away forever after.
What this is NOT
It is easy to confuse three different "settings" pages — they each own a different layer:
| Page | URL | What it edits | Who can use it |
|---|---|---|---|
| Account Settings | /portal/settings |
YOUR name, email, password | Anyone signed in |
| Workspace Settings | /portal/workspace/settings |
YOUR COMPANY: workspace name, domains | Workspace owner only |
| Organization Settings | /portal/orgs/{org}/edit |
ONE ORG: org name, address, logo | Per-org Owner of that org |
If you want to change YOUR profile, go to Account Settings. If you want to change ONE organization, go to that organization's Settings. Only the workspace-level fields belong here.
Permissions / restrictions
- Reading and writing the page require the
client_ownerSpatie role — i.e. you must be a workspace owner. Managers, members, and viewers see an "Access denied" page if they navigate here directly. - The page is protected by
ClientWorkspaceControllermiddlewareauth + verified + ensure.client, plus an explicit role check inside the controller. - Independent users are never workspace owners of someone else's workspace and cannot reach this page for it.
Workspace domains explained
The Workspace domains field is the most important one. It's a
comma-separated list of email domains your company owns
(acme.com, acme.io). Solavel uses it to:
- Detect Company-account invitations. When you invite
name@acme.comandacme.comis in your domain list, that invitation defaults to a Company account type (i.e. the new user's account belongs to your workspace). - Auto-attach future signups to your workspace if they sign up with a matching email domain (planned).
If your team uses multiple domains (e.g. you bought acme.io last
year), add them all. The list is JSON-encoded in
clients.company_domains and split on commas at save time.
Routes
| Method | URL | Route name | Controller |
|---|---|---|---|
| GET | /portal/workspace/settings |
portal.workspace.edit |
ClientWorkspaceController@edit |
| PATCH | /portal/workspace/settings |
portal.workspace.update |
ClientWorkspaceController@update |
Behind the scenes
- Controller:
app/Http/Controllers/Client/ClientWorkspaceController.php - Model:
app/Models/Client.php(the workspace = one row inclients) - Validation: workspace name 2–120 chars; website optional URL; domains parsed from comma-separated string into a JSON array
- Stamping:
workspace_name_set_atis set on first save so the first-time naming prompts never reappear
See also
- How Solavel works — the three-layer model
- Account types — Company vs Independent
- Workspace builder — the one workspace-wide capability
- Account Settings — your personal profile (different page)