Skip to Content
Investor OverviewRoles & Permissions

Roles & Permissions

Onoots distinguishes between human actors (brokerage members and buyers), the AI swarm (autonomous non-human actors), and the technical roles that govern data access. Every sensitive action β€” closing a commission, approving compliance, switching an AI agent on β€” is gated by a specific authority.

Actor hierarchy

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ ACCOUNT / BUSINESS (owner) β”‚ ← creates the brokerage β”‚ creates the brokerage + β”‚ and the first broker β”‚ first broker β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ ╔════════════════════▼════════════════════╗ β•‘ BROKERAGE β•‘ ╠══════════════════════════════════════════╣ β•‘ BROKER (principal Β· top authority) β•‘ β•‘ β”‚ approves deals/equity/compliance β•‘ β•‘ β”‚ AI kill-switch Β· settings Β· $ β•‘ β•‘ β–Ό β•‘ β•‘ TEAM LEAD (agent + supervises/recruits)β•‘ β•‘ β”‚ earns sponsor_share on recruits β•‘ β•‘ β–Ό β•‘ β•‘ AGENT (lists Β· qualifies Β· closes) β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•€β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β”‚ serves β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ DEMAND (buyers) β”‚ β”‚ β€’ Lead β†’ anonymous prospect (no account) β”‚ β”‚ β€’ Client β†’ authenticated buyer (in chat) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ AI SWARM ──────────────────────────┐ β”‚ Marketer Β· Qualifier Β· Scheduler Β· Nurture Β· Concierge Β· … β”‚ β”‚ everything passes β†’ πŸ›‘οΈ COMPLIANCE GUARDIAN (hard gate) β”‚ β”‚ allow / prepare / escalate / block β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Brokerage human roles

Every brokerage member holds exactly one of three roles:

RoleDescription
BrokerBrokerage principal/owner. Top authority: finalizes commissions, approves compliance and equity, manages billing, settings, and the AI swarm kill-switch. Sees the whole brokerage.
Team LeadAn agent who also supervises other agents. Inherits agent permissions and can sponsor recruits, earning sponsor_share on their deals.
AgentIndividual sales agent. Creates listings, qualifies leads, manages their own deals, and drives them to close.

The founder who creates the brokerage during onboarding is materialized as the first Broker β€” it is not a separate role.

The demand side: buyers

ActorHow they’re represented
DreamerThe lightest actor of all: an anonymous visitor who couldn’t find their property and leaves one message describing their dream home + an email, no account. Dreams go to a global platform registry. When a new listing matches, the Nurture agent emails them.
LeadProspect with no account. Arrives via a listing form, a referral link, the AI chat, or manual entry. Moves through states: auto-assigned β†’ pool β†’ broker-assigned β†’ closed.
ClientAuthenticated buyer who joins a lead or deal chat. Can message their agent and keep exploring properties without being part of the brokerage.

Onoots Dreams turns latent demand into opportunity: the dreamer describes what they want, and when supply appears the swarm matches it (AI scoring, gated by the Compliance Guardian) and emails them β€” with an unsubscribe link. The brokerage that published the listing pays for that reach (it’s their property).

The AI swarm (non-human actors)

AI agents act autonomously on business events (a published listing, a new lead…), but no action runs without passing the Compliance Guardian.

AI agentFunction
MarketerGenerates listing content and posts to social media.
QualifierBuyer concierge in the chat: replies and qualifies intent.
Compliance GuardianHard gate. Evaluates every swarm action and decides: allow, prepare, escalate (request human approval), or block.
Scheduler Β· Nurture Β· Concierge Β· Onboarder Β· OrchestratorShowing scheduling, follow-up, post-offer, pre-listing, and coordination (evolving per roadmap).

The Broker controls the swarm: toggles each agent on/off (kill-switch) and sets the Autonomy Policy (how much the AI may do without human intervention).

Permissions matrix

Legend: βœ… allowed Β· πŸ”’ own only Β· πŸ‘€ read-only Β· β›” denied

ActionVisitorLead/ClientAgentTeam LeadBroker
View public listingsβœ…βœ…βœ…βœ…βœ…
Leave a dream (Dreams)βœ…βœ…βœ…βœ…βœ…
Submit lead / request showingβœ…βœ…βœ…βœ…βœ…
Chat with the Qualifierβœ…βœ…β€”β€”β€”
Create/view own listingsβ›”β›”πŸ”’πŸ”’βœ…
View own assigned leadsβ›”β›”πŸ”’πŸ”’βœ…
View the lead poolβ›”β›”βœ…βœ…βœ…
Move a deal’s stageβ›”β›”πŸ”’πŸ”’βœ…
Finalize commission (money close)β›”β›”β›”β›”βœ…
Compliance queue / PDFβ›”β›”β›”β›”βœ…
Finance / exports / audit-trailβ›”β›”β›”βš οΈ exportsβœ…
Checklist templates (CRUD)β›”β›”πŸ‘€πŸ‘€βœ…
Recruit / view recruitsβ›”β›”πŸ”’βœ…βœ…
AI kill-switch / Autonomy Policyβ›”β›”β›”β›”βœ…
Billing & creditsβ›”β›”β›”β›”βœ…

Relationship roles

Beyond the primary role, actors connect to one another:

  • Recruitment: a sponsor (Team Lead or Broker) recruits an agent and earns sponsor_share on their deals.
  • Referrals: agentβ†’agent, recruitment, or client_link (a public link for a client to refer someone they know).
  • Conversations: each participant has an owner, participant, or observer role (the Broker typically joins as a read-only observer).
  • Signatures: each document defines signers (buyer, seller, agent, and custom roles per checklist).

Technical roles (data access)

Under the hood, Onoots enforces row-level security (RLS) over three roles:

Technical roleWho it isAccess
anonPublic visitorView listings, submit leads, request showings (rate-limited).
authenticatedLogged-in user (broker/agent/client)Brokerage-scoped access via is_agent_of / is_broker_of.
service_roleSystem (cron Β· worker Β· swarm)Internal operations; never exposed to the client.

Money and compliance actions have a double barrier: validation at the API layer and in the database (e.g. finalizing a commission requires being a Broker of that brokerage in both the route and the SQL function).

Last updated on