Connected ID
A Connected ID is an identity badge: who a person is inside one organization. Org-scoped actions, permissions, and audit attribution all attach to it.
Everyone who exists inside your org carries one — an employee, a service account, a team, and every end user of your applications. It is not a “members only” table.
Two independent axes
Section titled “Two independent axes”Do not mix these up.
| Axis | Question | Values |
|---|---|---|
| Subject | Whose badge is this? | An internal person (a member of the organization) · a customer of one of your apps · a group (a team) |
| Grade | What is this person’s standing as a member? | Membership type — Owner, Boardmember, Admin, Member, Guest, ServiceAccount, None |
Grade only means something for members. A customer’s badge carries membership type None.
Guest is a different thing entirely: an external person you invited (the ORG_GUEST role) —
a contractor, an auditor. They are members.
To ask “is this person a member of the org”, ask the subject axis: is the badge an internal person’s? “Any badge that is not a group” is a different question — it includes your customers.
Which layer scopes what
Section titled “Which layer scopes what”| Identity or access record | Scope | Lookup |
|---|---|---|
| Organization member badge | Organization | Organization and internal user |
| Customer account | Member scope of an app group | Organization, member scope and normalized email |
| Customer badge | Customer account in the organization | End-user ID |
| App access | App group | App group ID and end-user ID |
A customer who signs in to two apps in the same group has one end-user ID. If the apps are in separate groups, each group has its own account for that email. Removing the customer from one group leaves the other account’s access intact.
Employees who are also customers
Section titled “Employees who are also customers”An employee can have an organization badge and a customer account in each app group they use. The customer token carries its member ID in sub and its customer badge ID in cid. Use is_employee for employee status. Matching email addresses do not establish a link to an employee account.
A customer badge has membership grade None. A customer account alone does not consume an organization membership seat.
MembershipType is derived, not set directly
Section titled “MembershipType is derived, not set directly”The membership type is a projection of the member’s highest role level, not an independent field:
- Highest role level Owner →
Owner; Admin →Admin; Write or Read →Member; no roles →Member. - It is recomputed whenever the member’s roles change.
- Excluded from derivation (set explicitly):
ServiceAccount,Guest,Boardmember, and group badges. Noneis not derived either — it is what a customer badge carries, because grade is a membership concept and a customer is not a member.
Roles are the single source of truth; the membership type follows them. See Roles & permissions.
Relationships
Section titled “Relationships”Connected IDs participate in org structure through relationships of three kinds — member-of (belongs to a team), reporting (reports to) and reference (a dotted line). The reporting hierarchy is many-to-many and nestable.