SaaS workspace
App study: a system of record a tenant Business rents, where its people and agents keep and move their own records.
A tenant's members, guests and agents
The tenant's own records
- BI sold to a tenant
- who signs in
- which record dominates
- who acts next
- how money moves
- who may settle what
Views as runtime data; local-first sync; tenant schema; the sharing graph; operated tenancy
- Member
- My work · inbox · triage per team · list, board, calendar, timeline and table of one Noun · saved Views, personal and shared · the record page with fields, the next allowed transitions, relations, activity, attachments, subscribers, the assignee and delegate, agent sessions · comments · projects and cycles · documents · search and a command palette · quick-add with templates · history with undo
- Admin, owner
- Members and seats, human and agent apart · teams · schema and custom fields · access by role, Verb, rows and fields · workflow editor · automations · integrations · agents with scopes, guidance, Limits and cost · import · export · security · audit log · billing and usage · a page builder for a narrower role
- Guest, requester
- A guest shell showing only what is shared · a request form · a share-link view with expiry
- Vendor operator
- Tenants list with aggregate health · an impersonation session with a reason, a time limit and an entry the tenant sees
- Tenant analyst
- The tenant's own Metrics, saved queries, Dashboards and scheduled Reports, with the same honest-reading rules as every other type
- Tenant, over outside records
- Connections to accounts the tenant does not own, read-only, with consent, history depth and provenance per value
A SaaS workspace is the App where one tenant Business's people and agents keep their own records and move them through their own work. The record is an issue, a patient chart, a reservation, a matter or a design file.
Both ends of the sale are Businesses. The seller makes the Product, and the buyer, usually not a Startup, rents it to run part of itself.
The job has four parts at once. Record the truth with history, move it through an opinionated lifecycle, and collaborate on it. Let the tenant compose its own views, fields, rules and agents.
A workspace is the buying Business's business-as-code, rented. Three instances widen it. BI sold to a tenant is a workspace whose records are the tenant's Metrics and Reports. A department sold as a Service is a workspace the vendor operates for the tenant under a visible mandate. A consolidation App is a workspace over records the tenant reads but does not own.
A partner-sharing console for a data product is not this type; it belongs to the developer portal. The study describes the work; how an App is defined is open, see What every App needs.
Tenant6 actors
- Tenant ownerWorkBilling, security, deletion and transfer; often the steward of schema and access
- Admin, team leadWorkMembers, teams, each team's workflow and triage, integrations, settings
- Member, viewerWorkA seat that creates and moves records; a cheaper read-only seat
- Assignee and delegateWorkThe assignee stays accountable; the delegate, often an agent, does the work
- Identity admin, billing contact, integratorWorkSSO and SCIM; invoices and plan; keys and webhooks
- Tenant agentsWorkDelegates on a record, a personal assistant with its person's rights, scheduled agents, installed third-party agents
Outside the buyer1 actor
- GuestWorkSees only the teams or records shared with them
Inside the buyer1 actor
- Requester without a seatWorkFiles work that lands in triage and follows its status
The selling Business2 actors
- Vendor support, safety, financeWorkSee aggregates by default, never rows
- Vendor operator under a mandateoperating the tenant's SystemWorkActs every day under a standing grant the tenant sees and can revoke
Vertical variants1 actor
- The tenant's own clientsWorkRead their own slice through a portal, email or a share link
- Workflow 1: Signup to first value
- Arrive from the Site, an invite or an agent's Mandate; a matching email domain offers to join the existing tenant.
- Provision the Tenant with a trial and the owner.
- Seed statuses, record types and removable demo data from an industry template.
- Import from the incumbent, which in a vertical is often the true first value.
- Invite people.
- Move one record through its lifecycle with two people and one agent.
- Workflow 2: The core loopMember, viewer
- Intake from a member, a form, email, an integration, an agent or the API; outside intake goes to triage.
- Triage rules set team, assignee, labels and priority; a rotating owner or an agent accepts, declines, merges or snoozes.
- The assignee works the record and may delegate to an agent, whose session ends in a reviewable result.
- Restricted transitions need a reviewer or an approval chain by threshold.
- Workflow 3: SharingMember, viewerGuest
- Share a record, folder or View with a member, guest, link or partner; containment carries the grant down.
- "Stopping sharing stops future reads.
- It does not un-read data a partner already pulled." That sentence sits on the control.
- Workflow 4: Migration
- Map columns and users, match on the source id so re-import updates, preview with problem rows skipped, apply as one change set with undo-all.
- Incumbent exports take weeks, some records never export, and billing history arrives as one opening balance, so the incumbent runs in parallel.
- Workflow 5: OffboardingMember, viewer
- A member who leaves is suspended at once; their open records, triage duty, agent sessions and integrations are reassigned, and their history stays attributed.
- A tenant that leaves exports everything, then a deletion window runs.
- Workflow 6: Operated tenancy
- A department sold as a Service runs the tenant's System daily.
- Every act names the mandate it runs under, the tenant reads them all, and revoking the mandate stops the next one.
- Workflow 7: Consolidation
- A household or a holding company connects accounts it does not own.
- Connections never move money, and each value shows its source and age.
- Tenant
- unclaimed
- trialing
- active
- past due
- read-only
- suspended
- closing (restorable)
- deleted
- held under a legal hold
- Membership (a person in a Role in a Tenant)
- invited
- active
- suspended (history kept)
- removed
- Work record, issue-style
- triage
- backlog
- to do
- in progress
- in review
- done
- blocked
- canceled
- duplicate
- archived
- snoozed and delegated as overlays
- Work record, vertical
- the Industry's own: a reservation runs inquiry
- held
- confirmed
- checked in
- checked out
- folio closed
- Agent session
- pending
- active
- awaiting input
- complete
- error
- stale
- Change set (bulk, import or agent write)
- proposed
- in review
- applied or discarded
- undone
- Share
- active
- expired or stopped
- kept as evidence
- Operating mandate
- granted by the tenant with scope by System
- Verb and threshold
- active
- revoked
- Connection to outside records
- consented
- syncing
- stale
- revoked
- a mirrored record is re-read
- never edited
- Notification
- unread
- read
- deleted
- snoozed back to unread. Distinct from a Task
Actors
| Actor | Side | Work here |
|---|---|---|
| Tenant owner | Tenant | Billing, security, deletion and transfer; often the steward of schema and access |
| Admin, team lead | Tenant | Members, teams, each team's workflow and triage, integrations, settings |
| Member, viewer | Tenant | A seat that creates and moves records; a cheaper read-only seat |
| Guest | Outside the buyer | Sees only the teams or records shared with them |
| Requester without a seat | Inside the buyer | Files work that lands in triage and follows its status |
| Assignee and delegate | Tenant | The assignee stays accountable; the delegate, often an agent, does the work |
| Identity admin, billing contact, integrator | Tenant | SSO and SCIM; invoices and plan; keys and webhooks |
| Tenant agents | Tenant | Delegates on a record, a personal assistant with its person's rights, scheduled agents, installed third-party agents |
| Vendor support, safety, finance | The selling Business | See aggregates by default, never rows |
| Vendor operator under a mandate | The selling Business, operating the tenant's System | Acts every day under a standing grant the tenant sees and can revoke |
| The tenant's own clients | Vertical variants | Read their own slice through a portal, email or a share link |
Accountability is human; action may be an agent's. The tenant governs its own people and agents, the vendor governs the platform, and neither sees the other's private side by default.
Interfaces
| Reader | Screens | Renderings |
|---|---|---|
| Member | My work; inbox; triage per team; list, board, calendar, timeline and table of one Noun; saved Views, personal and shared; the record page with fields, the next allowed transitions, relations, activity, attachments, subscribers, the assignee and delegate, agent sessions; comments; projects and cycles; documents; search and a command palette; quick-add with templates; history with undo | Email with replies posted back as comments; push; Slack or Teams mirror; mobile with quick capture; ICS, CSV and PDF |
| Admin, owner | Members and seats, human and agent apart; teams; schema and custom fields; access by role, Verb, rows and fields; workflow editor; automations; integrations; agents with scopes, guidance, Limits and cost; import; export; security; audit log; billing and usage; a page builder for a narrower role | API, webhooks, MCP, SDK and CLI from the same definition |
| Guest, requester | A guest shell showing only what is shared; a request form; a share-link view with expiry | |
| Vendor operator | Tenants list with aggregate health; an impersonation session with a reason, a time limit and an entry the tenant sees | |
| Tenant analyst | The tenant's own Metrics, saved queries, Dashboards and scheduled Reports, with the same honest-reading rules as every other type | Embedded readings the tenant shows in its own App, scoped to the tenant by the signed-in principal |
| Tenant, over outside records | Connections to accounts the tenant does not own, read-only, with consent, history depth and provenance per value |
A second role gets a second App over the same records, not a version of the first with fields hidden. A designer and a developer read one design file through two modes.
Records and actions
| Record | States |
|---|---|
| Tenant | unclaimed, trialing, active, past due, read-only, suspended, closing (restorable), deleted; held under a legal hold |
| Membership (a person in a Role in a Tenant) | invited, active, suspended (history kept), removed |
| Work record, issue-style | triage, backlog, to do, in progress, in review, done; blocked; canceled, duplicate; archived; snoozed and delegated as overlays |
| Work record, vertical | the Industry's own: a reservation runs inquiry, held, confirmed, checked in, checked out, folio closed |
| Agent session | pending, active, awaiting input, complete; error, stale |
| Change set (bulk, import or agent write) | proposed, in review, applied or discarded, undone |
| Share | active, expired or stopped; kept as evidence |
| Operating mandate | granted by the tenant with scope by System, Verb and threshold, active, revoked |
| Connection to outside records | consented, syncing, stale, revoked; a mirrored record is re-read, never edited |
| Notification | unread, read, deleted; snoozed back to unread. Distinct from a Task |
Verbs group by job. Tenancy: provision, invite, request setup, export, transfer, suspend, close, restore. Records: create, update, the lifecycle's named Verbs, archive, merge, move.
Triage: accept, decline, mark duplicate, snooze, request information. Collaboration: comment, mention, subscribe, remind. Delegation: delegate to an agent while the assignee stays, answer its question.
Sharing: share, stop sharing, request access. Import: map, match, preview, apply, undo.
Terms
Terms
| Term | In startupbuilder.dev | Definition, quoted from startupbuilder.dev or the gap |
|---|---|---|
| Tenant | Tenant | "A Tenant is the partition of a Startup's data that belongs to one Customer." startupbuilder.dev avoids "Workspace", the market's word in this type's name. Read for any Business. |
| Role | Role | "A Role is a seat that owns a set of work and holds the Permissions to do it, filled by a Human or an Agent." A seat and an agent seat are one mechanism. |
| Task | Task | "A Task is an Action waiting on a Worker, with an assignee, a due time, and a place in that Worker's inbox." |
| Notification | lacks | An Event the reader follows that needs no action. startupbuilder.dev avoids "notification" as a Message synonym. |
| Guest, mention, presence, custom field, import job | lack | |
| Watcher of one record | collides | Subscription is billing; startupbuilder.dev's Watch is an outbound webhook. |
| Team, Template, Interface | collide | startupbuilder.dev's Team is a Startup's Workers; Template is a Product or Startup Template; Interface is how a party reaches a Product, not a page set for a role. |
| View presentation | lacks | startupbuilder.dev's dynamic Collection covers the saved query, not its layout. |
| Reports | Reports | "Reports arranges saved Metric queries into Dashboards, weekly reviews and investor updates, delivered on a schedule and watched for thresholds." Sold to a tenant, it is this type. |
| Operating mandate, connection | lack | A Mandate is an Agent's; a vendor operating a tenant's System needs its own grant. |
Workflows
- Signup to first value. Arrive from the Site, an invite or an agent's Mandate; a matching email domain offers to join the existing tenant. Provision the Tenant with a trial and the owner. Seed statuses, record types and removable demo data from an industry template. Import from the incumbent, which in a vertical is often the true first value. Invite people. Move one record through its lifecycle with two people and one agent.
- The core loop. Intake from a member, a form, email, an integration, an agent or the API; outside intake goes to triage. Triage rules set team, assignee, labels and priority; a rotating owner or an agent accepts, declines, merges or snoozes. The assignee works the record and may delegate to an agent, whose session ends in a reviewable result. Restricted transitions need a reviewer or an approval chain by threshold.
- Sharing. Share a record, folder or View with a member, guest, link or partner; containment carries the grant down. "Stopping sharing stops future reads. It does not un-read data a partner already pulled." That sentence sits on the control.
- Migration. Map columns and users, match on the source id so re-import updates, preview with problem rows skipped, apply as one change set with undo-all. Incumbent exports take weeks, some records never export, and billing history arrives as one opening balance, so the incumbent runs in parallel.
- Offboarding. A member who leaves is suspended at once; their open records, triage duty, agent sessions and integrations are reassigned, and their history stays attributed. A tenant that leaves exports everything, then a deletion window runs.
- Operated tenancy. A department sold as a Service runs the tenant's System daily. Every act names the mandate it runs under, the tenant reads them all, and revoking the mandate stops the next one.
- Consolidation. A household or a holding company connects accounts it does not own. Connections never move money, and each value shows its source and age.
Money: a per-seat Subscription where seat counting is policy (guests, viewers, agents, suspended users). Dunning runs past due, grace, read-only (reads and exports allowed), suspended, closed.
A downgrade turns over-limit data read-only, never deleted. In vertical variants the tenant's own money flows inside the workspace, and that brings refunds, chargebacks and payouts from the marketplace.
Boundaries
- No read or write crosses a Tenant without an explicit share. In a local-first App, data is partitioned per tenant down to the client database.
- Grants flow down containment, and the precedence rule is stated: in one market product the broadest grant wins, which users assume is the opposite.
- Row and field rules are enforced in the data path on every read and write, never as a View filter. That holds for every Interface, MCP and imports included.
- Search, autocomplete, mention pickers, link previews, notification bodies, digests, webhooks, exports, AI answers and error messages all pass the same check.
- The vendor sees aggregates. Rows only through impersonation with a reason, a time limit and a scope, recorded where the tenant sees it. Vendor agents follow the same rule, and vendor AI never trains on tenant content.
- Under an ethical wall or private team, admin does not mean read-all. A tenant admin's view of members carries no last-seen, activity or counts unless the Business's Setting says otherwise.
- "My team's tasks by person" is a per-person view. The tenant declares its measurement policy per deployment, and the workspace enforces it where queries are built.
- Embedded tenant analytics takes the tenant from the authenticated principal, never from a parameter alone.
Agents
| Step | Agent | Human |
|---|---|---|
| Intake and triage | suggests team, assignee, labels and duplicates; routes by rule | accepts or declines where the team requires it |
| Working a record | acts as delegate: drafts, fills fields, asks questions | stays the accountable assignee and reviews the output |
| Bulk writes, deletes, more than ten rows | proposes a change set | applies or approves it |
| Sharing outside the tenant | drafts | confirms |
| Messages to the tenant's clients | drafts, sends low-stakes ones within Guards, labelled as AI | approves high-stakes ones |
| Reserved acts: a signature, a clinical order, a filing | prepares | performs |
| Access, membership, billing | none | admin, owner or billing contact |
Hard parts
- Latency and sync. Instant needs a client store, optimistic writes, a durable queue, delta catch-up and rollback. Permission is decided before data reaches the client, so revoking access purges the client cache.
- The inbox is three things. Notifications, Tasks waiting on me, and triage for my team. Merged, they bury the Tasks; split wrongly, they make three badges.
- Opinion against configuration. Defaults are opinions; escape hatches are narrow. Every escape hatch multiplies the test and migration matrix.
- Views are data. Authored at runtime by people and agents, personal or shared, they survive schema changes and grant no access.
- Schema at two levels. The vendor ships Versions; the tenant adds fields, options and statuses. A vendor upgrade merges with tenant extensions without breaking their Views, rules or imports.
- Who counts as a seat. If agents do the work, per-seat revenue erodes, and startupbuilder.dev counts an agent filling a Role as a seat.
- Two audits pulling apart. Compliance needs an immutable log bound to identity; workers need protection from per-person surveillance. The boundary is query direction, not the field set.
- Regulated records. Health, legal and finance verticals bring their own rules and clocks. A vertical template that does not know its Industry's rules is not a system of record.
Day one
The test: one tenant Business replaces its spreadsheet or incumbent for one Process this week, and its agent does the same through MCP. That needs:
- one dominant Noun with typed lifecycle states and required fields per state;
- tenancy and per-seat billing, with a trial and one-step cancel with export;
- list, board, the record page with comments, My work, one inbox, email and saved Views;
- attributed writes with undo, and soft delete;
- CSV import, and API, MCP and webhooks;
- one labelled agent whose bulk writes become Approvals;
- the vendor boundary from the first day, cheap first and costly to retrofit.
| Next | Turns on |
|---|---|
| Outsiders | Triage, a request form, guests, link shares |
| Teams | Workflow per team, private teams |
| Habits | Slack or Teams mirror, push, digests |
| Integration | Two-way sync with the incumbent, automations with SLAs and escalation |
| Depth | Custom fields and statuses, installed agents, row and field rules, SSO and SCIM, local-first sync |
| Vertical | Industry rules and clocks, embedded payments, the client projection |
| Analytics sold to the tenant | Tenant Metrics, scheduled Reports with receipts, embedded readings |
| Operated tenancy | Operating mandates, an act log the tenant reads, revoke |
| Outside records | Read-only connections, provenance per value, re-read schedules |
The Startup layer adds stage and operating model. At idea stage the App may be a waitlist plus the API and MCP.
In the Autonomous model the vendor's support and billing are agent Roles, so the impersonation rule binds agents first. Product-led growth makes invites and shares acquisition.
Related studies
Prototypes this study needs
Can the founder's stream cross tenants safely?
Two Startups and three provider Businesses as a union of per-tenant reads that never join records.
names: tenantCan a Role filling carry an agent's seat?
One hired agent in two tenants, checking that no Memory crosses, then let go.
names: tenantDo tenant Views survive a vendor rename?
A vendor v1, a tenant field, View and saved Metric query, then a v2 that renames the field.
names: tenant