Settings
Functions & Access
Decide which parts of ProductOS each person can reach: none, view, comment or edit per area, set per job function. Lives at Settings → Functions & Access.
A role (owner, admin, member, commenter, viewer) says how much someone can do. A function says where. Each workspace defines its own functions, for the jobs it has: Product, Engineering, Leadership, Sales and marketing, Support.
A function sets a level in each of 16 areas:
| Level | What the person can do in the area |
|---|---|
| None | Nothing. The area is hidden: not in the sidebar, search, links, exports, the Copilot or the connector, and its pages answer "not found". |
| View | Read it, and link its records to ones they can edit. |
| Comment | Read it and comment on it. |
| Edit | Create, change, link and trash, as far as their role allows. |
What someone can do in an area is the lower of their role and their function. A viewer with an Edit function still only views. The owner is never limited by a function. A person with no function reaches everything their role allows, which is how every workspace starts.
The areas are Feedback, Themes, Work, Initiatives, Releases, Outcomes, Products, Customers (accounts and personas), Team, Strategy, Market intelligence, Go-to-market, Sales intelligence, Knowledge, Code (repositories and coding sessions) and Design system.
Who can use it
Admins and the owner. An admin cannot change the function they hold themselves, or move themselves to another one: that would be raising their own access. The owner, or another admin, can.
The table
Areas run down the side and functions across the top. Pick a level in a cell and it saves. Select a function's name to rename it, describe it or delete it.
- Add starter functions adds Product, Engineering, Leadership, Sales and marketing and Support, each once. A workspace that already has some gets only the ones it is missing. They are yours to rename and change.
- New function creates an empty one: every area starts at None.
- Delete asks where its people go: to another function, or to no function (unrestricted).
Landing page and sidebar
A function's dialog also sets:
- Landing page: where its people arrive after signing in. A page the function hides is not offered, and if one is set anyway they land on the dashboard.
- Pinned in the sidebar: up to 8 pages shown in a Pinned group at the top of the sidebar. (Which sections start open, and pages hidden by default, are set through the Functions API.)
Each person can change their own sidebar with Customize at the bottom of it: pin pages, hide the ones they never use, and Reset to my function's default to go back. Hidden pages stay in the command palette. Nobody can bring back a page their function hides.
Dashboard
A function also lays out the dashboard its people start with, so each job sees what answers its question first. The dashboard has a main column, led by the widget that matters most to that job, and a narrower side column for context. A line at the top lists what needs attention, counted from the widgets on that person's dashboard.
| Starter | Its dashboard answers | Main column (first leads the page) | Side column |
|---|---|---|---|
| Product | What needs my attention across the Golden Thread? | Feedback to triage, top feedback, blocked and overdue Work | Upcoming releases, account health, shipped for your customers, activity |
| Engineering | What am I building, and what is in my way? | My Work this sprint, blocked and overdue Work, sprint progress | My pull requests and sessions, upcoming releases, activity |
| Leadership | Are we on track, and where is the risk? | Outcomes and OKR progress, initiatives at risk, where the team's time goes | Revenue at risk, upcoming releases, dates that moved, recently shipped |
| Sales and marketing | What can I tell customers, and what blocks deals? | Shipped for your customers, deal blockers and the Work behind them, top feedback | Upcoming launches, upcoming releases, wins and losses, market signals |
| Support | What are customers telling us, and what can I tell them back? | Feedback to triage, shipped for your customers, top feedback | Account health, upcoming releases, recently shipped, activity |
Set a function's layout under Dashboard in its dialog: move widgets up and down, between the columns, add or remove them. Widgets the function's access hides are listed under Needs more access with the areas they need, and cannot be added.
People rearrange their own dashboard with Customize in the top bar. It lists what is on their dashboard, then what they can add, and only ever widgets in areas they can view: a widget about an area their function hides is not offered, and nothing hints that it exists. Reset to Engineering's default (with their function's name) puts back the function's layout and replaces their changes. Their layout is saved through ProductOS's server, which drops any widget they cannot view, so a widget from a hidden area never appears on their dashboard however the layout was saved. A widget that only adds a detail from another area, such as the deal revenue in Revenue at risk, shows without that detail for someone who cannot view it.
Someone with no function sees the dashboard as it always was, with the newer widgets available to turn on.
Giving someone a function
On Members & roles, each member has a Function menu beside their role. The invite form has one too: the function applies when they accept. People are told when their function changes.
What changes for them
- The sidebar, command palette and Go to shortcuts leave out areas set to None, and those pages answer "not found".
- In an area set to View, lists and records are read only: Add is locked and the detail view opens read only.
- A record linked to things in an area they cannot see shows those as locked chips with a count, "2 themes", never a title.
- Notifications about records in a hidden area are not sent to them.
- Their API tokens and the MCP connector are held to the same levels, and a whole-workspace export is refused to them.
Every change to a function, and to who holds it, is in the Audit log.
For the endpoints behind this page, see Functions API.