Ninety
Your EOS operating system — rocks, issues, to-dos and scorecard, answerable and actionable.
Ninety.io is where an EOS-run MSP keeps score of itself: the Rocks each leader committed to this quarter, the Issues list nobody's gotten to yet, the To-Dos out of last week's Level 10, and the Scorecard that's supposed to catch a slipping number before it becomes a client-facing problem. All of that is real, current, and normally locked behind a login only the leadership team bothers to open. Connect it here and a session reads the whole operating system at once — which rocks are off track and who owns them, what's overdue on whose to-do list, which measurables missed goal last week — and, once you grant it, captures a new issue, to-do, rock, milestone or score straight out of the conversation that surfaced it. Twenty-eight capabilities: eighteen reads always on, ten creates-and-updates behind an explicit grant. Nothing in this surface deletes anything, ever.
The story
What changes once it’s connected.
The honest failure mode of EOS tooling isn't that the system is wrong — it's that checking it is a chore, so it gets checked once a week instead of when it actually matters. A session connected to Ninety collapses that chore into a question: which rocks are behind, what's stuck on the Issues list, whose to-do list is piling up, and whether last week's Scorecard number that everyone's worried about actually missed goal or just looked close. The read surface covers the whole EOS shape — the teams and who sits on each one, the Rocks with their milestones, the Issues list per team, To-Dos by owner or team, the Scorecard's measurables and weekly scores with the notes attached to them, and what's on the agenda for the next Level 10.
Then the part that actually saves time: capturing what a conversation surfaces without switching to Ninety to type it in. When the org grants write access, a session can add an issue straight to a team's IDS list, log a to-do against the right owner, create or update a rock and its milestones, or put this week's score on the scorecard with a note explaining the miss. Every one of those ten write skills is a create or an update — nothing is ever deleted, and where Ninety supports archiving instead of deleting, that's reversible on Ninety's side, not final.
Access rides the Personal Access Token itself: it acts as whoever generated it, with that person's actual in-app role and team memberships — a session can't see or touch more than the token's owner could looking at Ninety directly. Reads are always available once the token validates; the ten write skills only activate when the org's agent credential separately carries write:ninety, so a read-only connection stays read-only until someone deliberately turns writing on.
Things you can ask
Ask it like you’d ask a teammate.
Skills included
Every skill, in the open.
28 skills across 8 areas
The Personal Access Token acts as the person who generated it — its own in-app role and team memberships, nothing more. Reads are always on once the token validates: eighteen skills across teams, rocks, issues, to-dos, the scorecard, and the next meeting. The other ten — creating or updating a rock, milestone, issue, to-do, or scorecard entry — only activate when the org's agent credential separately carries write:ninety; without that grant the connection is read-only, full stop. No skill anywhere in this surface deletes anything.
Agent & session1What this connection is and whether it's answering — the first thing to check when a result looks wrong.⊘ Read-only, and it reports the connection rather than repairing it — it cannot mint a fresh token or change whose token is bound. A revoked or expired Ninety PAT shows up here as a connection that has stopped validating.›
whoamiWhat this session is wired to, who the token acts as, and whether it's still validating.
Teams & people4The teams under the company and who sits on each one — the roster the rest of this surface is scoped by.⊘ Reading only — no team is created or renamed, and no one is added to or removed from a team from here.›
list_teamsEvery team in the company, including which ones are private and which the token's owner belongs to.list_usersThe company's user roster — the ids the rest of this surface asks for when assigning an owner.get_userOne user's record opened in full, pulled by their user id.list_team_membersWho's actually on a given team, members and visitors distinguished.
Rocks & milestones7The quarterly commitments each team and leader is on the hook for, plus the milestones that track progress toward them.⊘ Reads freely. The four writes above activate only when the org's agent credential carries write:ninety.✎ Writes: Creates a new rock for a team and owner; updates an existing rock's status, description, or due date; creates a milestone under a rock; updates a milestone's detail or marks it done — attributed to the token's own user. Creates and updates only: there is no delete skill anywhere in this area, and where Ninety supports archiving instead of deleting, that's reversible on Ninety's own side.›
list_rocksEvery rock for a team or the whole company, filterable to what's off track.get_rockOne rock's full record — owner, status, and the milestones under it.get_milestoneOne milestone opened on its own, including whether it's done.create_rockAdds a new rock for a team and owner, straight out of a conversation.update_rockUpdates a rock's status, description, or due date — never deletes it.create_milestoneAdds a milestone under an existing rock.update_milestoneMarks a milestone done or edits its detail — never deletes it.
Issues (IDS)4Each team's Issues list — the backlog IDS is supposed to work down every week.⊘ Reads freely. Both writes above activate only when the org's agent credential carries write:ninety.✎ Writes: Creates a new issue on a team's IDS list; updates an existing issue's detail or marks it solved — attributed to the token's own user. Creates and updates only: there is no delete skill, and archiving is reversible on Ninety's own side.›
list_issuesA team's Issues list, open or archived.get_issueOne issue's full record, pulled by its id.create_issueAdds a new issue to a team's IDS list, straight out of a conversation.update_issueEdits an issue's detail or marks it solved — never deletes it.
To-Dos4Action items out of meetings and conversations, tracked by owner and due date.⊘ Reads freely. Both writes above activate only when the org's agent credential carries write:ninety.✎ Writes: Creates a new to-do against an owner and due date; updates an existing to-do's detail or marks it complete — attributed to the token's own user. Creates and updates only: there is no delete skill, and archiving is reversible on Ninety's own side.›
list_todosTo-dos for a team or a specific owner, including what's overdue.get_todoOne to-do's full record, pulled by its id.create_todoAdds a new to-do against an owner and due date, straight out of a conversation.update_todoEdits a to-do or marks it complete — never deletes it.
Scorecard4The weekly measurables each team tracks, their goals, and the scores actually logged against them.⊘ Reads freely. Both writes above activate only when the org's agent credential carries write:ninety.✎ Writes: Logs this week's score against a measurable, and attaches or updates the note explaining it — attributed to the token's own user. Creates and updates only: there is no delete skill anywhere in this area.›
list_measurablesA team's tracked measurables, with owner and goal.get_team_scorecardA team's scorecard across a date range — every measurable's weekly scores against goal.put_scoreLogs this week's number against a measurable, straight out of a conversation.put_noteAttaches a note to a scorecard entry — the context behind a miss.
Meetings1The next Level 10 on the calendar and what's queued for its agenda.⊘ Read-only — it reads what's scheduled, it does not create, start, or run a meeting.›
get_next_meetingThe next scheduled Level 10 for a team — when it is and what's on the agenda.
Health rollups3Estate-wide answers built on top of the per-record reads: which rocks are off track by team, whose to-dos are overdue, and which measurables missed goal.⊘ Reads and reconciles across the other areas; it changes nothing.›
rock_status_summaryRock status rolled up by team, with the off-track list and each rock's owner surfaced first.overdue_todosEvery open to-do already past its due date, grouped by owner.scorecard_missesMeasurables that missed goal within a lookback window, across teams.
Connecting
Wire it in, in an afternoon.
How to connect
- 01In Ninety, open Settings → Developer Settings and generate a Personal Access Token (pick the longest expiry you're comfortable with).
- 02Paste it here, optionally with who it belongs to and when it expires — the connection is validated live before anything saves.
- 03The token acts as you in Ninety; revoke it there to disconnect instantly.
Patch your stack in.
Start the Switchboard free trial against your own environment — read-only, traced answers, live in an afternoon. The apps are on the shelf when you want them.