Roles — the industry's names, the minimum set

What a role actually does in PropFlow today, how the list grew to ten, what AppFolio, Yardi, RealPage, EliseAI and our own customers call these jobs, and the six roles we should start with before Western Slope, Situs Group and ConAm sign in next week.

2026-09-10, rewritten late evening after Fede's rulings · decision 1 decided (the six) (roles are the job a person holds in their company; no accounting role now; minimum set, add later) · all three decisions decided (Sep 10–11) · podcast episode (6 min)

Six roles, named the way the industry names the jobs. Organization Admin, Regional Manager, Property Manager, Leasing Agent, Maintenance Technician, Owner. Every one of those words appears in AppFolio's own standard role list or in our customers' own org charts. Ten names today collapse to these six; one shared list feeds every screen; a guard test stops anyone from writing their own copy again. The catalog, the guard test and the six-role flip are merged.

1 · What a role actually controls (it is not just the sidebar)

A role is one word stored on a person's membership in a company. That one word is read in eight different places. Only the first is "just UI".

One word e.g. "leasing agent" Sidebar & pageshides what you can't use The front doorblocks pages by web address The back doorevery save/edit re-checks the role Invitingyou invite only at or below you Which buildingsadmins see all, others a list Clara knows you're staffcalls/texts from you get the staff voice Clara's toolsview-only people get read tools only Who gets pagedrenewal/call alerts go to managers First sign-inonly a company admin getsthe setup wizard + terms
Verified in the live code on Sep 10. The three "Clara" boxes are why a role is more than screen furniture: a person with a staff role who calls the property line is treated as staff, and view-only people can never trigger a write through Clara.

Two things a role does not control, and should not: what a company has paid for (their modules; ruled Aug 25 and Sep 7: entitlement is the outer gate, a role only narrows inside it) and whose AppFolio login is on file for a building (a technical field that happens to be named "owner" in the code; Gera's design says it must never appear in a roles list).

2 · The current state of the world

Ten names, five behaviours

WHAT WE OFFER (10 names) WHAT THE CODE DOES (5 behaviours) Platform Admin Organization Admin Property Manager Regional Manager Accounting Assistant Property Manager Leasing Assistant Leasing Agent Maintenance Viewer Everything, every company (PropFlow staff) Everything inside one company Full day-to-day access, assigned buildings Leasing only · Maintenance only Read everything, change nothing amber = a title wired to be exactly a Property Manager (Regional Manager can additionally invite Property Managers)
The four amber roles point at the same permission table in the code, by reference. Choosing "Accounting" over "Property Manager" changes the word on a badge and nothing else.

Three screens, three different lists

Where a role is pickedWhat it offersWhy it differs
Onboarding wizard, "Add your team"5: Property Manager, Leasing Agent, Maintenance, Accounting, ViewerHand-written short list; admin and regional were pushed to Settings "for later"
Settings → Team (customer's own admin)7 to 10 depending on who is invitingComputed live from the invite ladder; the only screen that never drifts
Back office → Customer → "+ Invite person"3: Organization Admin, Property Manager, Leasing AgentHand-written, deliberately narrow
A second invite screen in the codeall 10dead nothing links to it; a second copy of invite logic waiting to be re-wired by accident

Who actually holds a role today

Read from the production user table on Sep 10 (counts only, no names).

RolePeople
Platform Admin (PropFlow staff)5
Property Manager3
Viewer1
No role stored at all (retired column; see correction below)12
Organization Admin, Leasing Agent, Maintenance, and the four title-only roles (retired column; Kenya in fact holds Regional Manager)0

How we got here

WhenWhat changedRoles
Mar 17First roles system for the pilot: admin, property manager, assistant manager, leasing agent, maintenance supervisor, maintenance tech, viewer7
May 10The company model (the old design Fede remembers): "admin" split into PropFlow staff vs. a customer's own admin; the maintenance pair and the assistant collapsed6
Aug 19Four "team title" labels added so a teammate's job title could be shown, with a ruling that relabelling must never take a feature away, so all four were wired to equal Property Manager10
Sep 10Fede pauses roles; inventory, handoff, this audit10

3 · How the industry names these jobs

Fede's rule: a PropFlow role is the job a person holds in their company, in the words the industry uses. So the question is not what abstraction is cleanest, it is what the people at Western Slope, ConAm and Situs already call each other. Four sources, from most to least binding for us.

AppFolio's own standard roles (all three customers live here)

AppFolio ships 13 standard user roles, customisable per company; Plus-tier customers can also copy a role under a new name. Owners are not users at all: they get a separate Owner Portal with its own per-owner permissions (dashboard, reports, documents), which is the same shape in Buildium, RealPage and Yardi.

AppFolio roleIn one lineOurs
PresidentEverything, including managing users and sensitive personal dataOrganization Admin
Regional ManagerStarts as Property Manager, meant to be widened for people with more authorityRegional Manager
Property ManagerFull edit on properties, tenants, vendors, owners; limited accountingProperty Manager
Assistant Property ManagerProperty Manager minus deleting thingsnot yet (most likely first addition)
On-Site ManagerProperty Manager without owner info, view-only reportsfolds into Property Manager
Leasing Agent · Assistant Leasing AgentLeasing, receipts and charges; assistant cannot deleteLeasing Agent
Maintenance Coordinator · Maintenance TechnicianCoordinator: all maintenance and vendors. Technician: only their own work orders, mobile viewMaintenance Technician (one role for now)
Accountant · Accounts Payable · Accounts ReceivableAccounting rolesnone (Fede, Sep 10: not now)
View OnlySees properties, tenants, vendors, maintenance; no accountingOwner (view only)
Owner Portal (not a role)Per-owner permissions: dashboard, reports, documentsOwner, for now; Gera's ownership record later

The rest of the market, in one table

JobInstitutional multifamily (RealPage, Entrata, NAA)Third-party / small operators (AppFolio, Buildium, Yardi Breeze)AI leasing tools (EliseAI, Funnel)
Top of a customer's accountGlobal / Organization AdminPresident, Administrator, AdminOrganization Admin (EliseAI), Admin (Funnel)
Oversees several buildingsRegional Manager, Regional Property Manager, Portfolio Manager (NAA credential: CAPS)Regional ManagerOwner tier (EliseAI, above Community Admin)
Runs one buildingCommunity Manager (NAA credential: CAM)Property ManagerCommunity Admin (EliseAI)
LeasesLeasing Consultant, Leasing Professional (NAA credential: CALP)Leasing AgentUser (Funnel), Agent
Fixes thingsMaintenance Supervisor, Maintenance Technician (NAA credential: CAMT)Maintenance Coordinator, Maintenance Technician, Maintenance Usern/a
Owns the buildingOwner Portal, Asset ManagerOwner Portal, Rental OwnerOwner (EliseAI)

Yardi Voyager, Entrata and Rent Manager ship configurable security groups rather than fixed names; the job names above are what their customers configure. EliseAI's documented roles: Organization Admin, Community Admin, Owner, Delinquency Agent, Analyst.

What our own customers call their people

CompanyPersonTheir titleOur role
Western SlopeJason FishManaging broker / partnerOrganization Admin
Western SlopeJay TaylorPartner (asked today: "can you designate two admins?")Organization Admin
Western SlopeKat BarkerLeasing managerProperty Manager, or Leasing Agent if she should not see maintenance
Western SlopeBeverly"Assistant PM", Kat's virtual assistantLeasing Agent
ConAm / Yale 25 StationDara JohnsonRegional portfolio manager (Sean: "global admin… might be Dara")Organization Admin, or Regional Manager (decision 2)
ConAm / Yale 25 StationJaise SylvaCommunity managerProperty Manager
JP&CoKenyaRegional managerRegional Manager
Ownership sideSean's father; Sean for JP&CoOwner who wants to watchOwner

4 · The minimum set: six roles

Every word below is either an AppFolio standard role or a title one of our customers uses today. "Property Manager" rather than "Community Manager" because AppFolio, Buildium and two of our three customers say Property Manager; the hint text can say "community manager" for ConAm-style shops. "Leasing Agent" rather than "Leasing Consultant" for the same reason. Which buildings a person covers stays a separate setting on their membership, because Kat covers every Western Slope building and Jaise covers one.

ROLE (the job they hold) ADDS ON TOP OF THE ROLE BELOW Organization AdminAppFolio: President · EliseAI: Organization Admin · the bosses, one or two per company Regional ManagerAppFolio: Regional Manager · NAA: CAPS · oversees the on-site teams across buildings Property ManagerAppFolio: Property Manager · institutional: Community Manager (CAM) · runs a building day to day Leasing AgentAppFolio: Leasing Agent · NAA: CALP Maintenance TechnicianAppFolio: Maintenance Tech · NAA: CAMT Ownerevery PMS: Owner Portal · sees their buildings, changes nothing, never paged PropFlow staff (Platform Admin)us, every company · never offered to a customer company settings, billing, integrations,admins and the whole team every building in the company, plusinviting and managing on-site staff maintenance + leasing + tenants + vendors+ settings for their buildings; gets paged leasing only · maintenance onlyread the rest read only, scoped to what they own
Six roles a customer can hand out, one internal. Every name is the industry's. The invite ladder stays as it is: you hand out roles at or below your own.

What changes versus today, per role

RoleTodayProposed
Organization Adminexists, wiredunchanged
Regional Managera label equal to Property Manager, plus it may invite Property Managersbecomes real: Property Manager permissions across every building in the company, plus inviting and managing on-site staff. No billing, no company settings. AppFolio describes it the same way: "starts as Property Manager, widened for people with more authority"
Property Managerexists, wiredunchanged; hint mentions "community manager"
Leasing Agentexists, wiredunchanged
Maintenance Technicianexists as "Maintenance", wiredlabel only; one role covers coordinators and technicians until a customer needs AppFolio's split
Ownerexists as "Viewer", wired (read-only everywhere, read-only Clara tools, never paged)label only, plus reach limited to the buildings they own. Gera's ownership record replaces the manual scoping later; nothing to undo
Accounting, Assistant Property Manager, Leasing Assistantlabels equal to Property Manager, nobody uses themno longer offered; values stay valid in the database, nobody renamed

5 · One place for roles, and nobody gets their own copy

Fede asked how to consolidate roles into one place and make sure nobody adds their own list again. The answer has two halves, and the first is being built tonight as a dark change with no visible difference.

The role catalog one file: name, label, one-line description, which screens offer it Onboarding wizard"add your team" Settings → Teamcustomer's own admin invites Back officePropFlow staff invites Guard test in CI fails the build if any other file writes its own list of roles
Each screen asks the catalog "which roles may I offer, to this inviter?" and gets the answer. The guard is the same shape as the customer-identifier fence: a ratchet, so a new copy fails even in a file that was allowed before.
  1. Done, Sep 10 night: the catalog, the three screens reading from it, and the guard test are merged (the bot review caught a fourth hand-written list on the Settings re-role picker, now also on the catalog). Every screen now offers the same six roles per decision 1. Nothing a customer hears from Clara changed.
  2. Done, Sep 11: Regional Manager removed from every picker; Maintenance relabelled Maintenance Technician. Still to do, no decision needed: delete the dead invite screen; backfill the twelve users with no role and refuse to save a membership without one.

6 · Decisions for Fede

Answers save for everyone who opens this page. Already ruled today and not re-asked: roles are named for the job a person holds in their company; no accounting role now; start minimal and add later.

1. The starting set decided

2. What Regional Manager means decided: not now

3. Owner decided: not now

7 · What this deliberately leaves alone

Sources

Live code at the main branch on 2026-09-10: the role list and permission tables (src/lib/platform/auth/permissions.ts, permissions-source.ts), the three pickers, the staff-recognition list Clara uses, the tool authorisation matrix, the invite and accept endpoints. The company-model design record from May 10. The Sep 10 roles inventory and handoff on the onboarding hub; production user counts read on Sep 10 by that inventory. Today's standup, raw per-speaker transcript (Fede, Gera, Sean). AppFolio help center: "User Roles in AppFolio", "Manage User Roles and Permissions", "Adding Maintenance Technician Users", "Owner Portal Permissions" (local knowledge-base copies). Yardi Breeze custom-roles post; Buildium "User Roles and staff member access"; RealPage OneSite and Entrata product docs; EliseAI SSO role-mapping article; NAA credentials pages (CALP, CAM, CAPS, CAMT); IREM ARM/CPM. Design-partner contacts on the onboarding hub. Gera's portfolio architecture design, people section. A direct read of JP&Co's AppFolio role settings was attempted and stopped: the login breaker was tripped from two earlier failures today, so the help-center article stands in for it. This page is a second page next to the hub on purpose: Fede asked for one short, standalone read with diagrams to decide on, and the hub is a running log.

PropFlow Docs