OrgRoster reads crew_members (field labour, usually no login), lead_distribution_reps (sales, including reps with no login), org_members (the durable role mirror) and optionally Clerk (whoever can sign in), and merges them into one list of people with role, crew, login status and every id they have been known under.
Also called: team roster · staff directory · sales reps missing from team page · one person one row
- 1Records fold on Clerk user id first, then lowercased email, then normalised name, in that order of trust.
- 2Merging keeps the strongest role — a crew lead who is also an admin is an admin.
- 3A real Clerk id claims the record so later Clerk-keyed lookups land on it, while the previous id is kept as an alias.
- 4Clerk reading is optional: the Team page wants it, the crew portal skips it because it runs on a phone in a field.
- 5Only names, roles, crew membership and work emails are returned.
Who works here had four different answers depending on which screen asked, and reading one of them and calling it the team is how the team page ended up with no sales reps on it. A framer who exists only as a crew member — the common case for field labour — could be handed a field link that resolved to nobody, and a crew leader's roster came back holding only the men who happened to have office accounts. One resolver folds every source into a single person, so the field link, the crew roster, the team page and the labour rollup all name the same people. It carries names, roles, crews and work emails and nothing else: no phone numbers, no pay, no rates, because pay lives on the crew record behind its own permission.
- Four staff stores producing four different answers to who works here.
- Duplicate rows for one human across stores.
- Features silently excluding anyone without a login.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →