Skip to content
AXOWLDevelopers
Quickstart

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.

Do not mix these up.

AxisQuestionValues
SubjectWhose badge is this?An internal person (a member of the organization) · a customer of one of your apps · a group (a team)
GradeWhat 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.

Identity or access recordScopeLookup
Organization member badgeOrganizationOrganization and internal user
Customer accountMember scope of an app groupOrganization, member scope and normalized email
Customer badgeCustomer account in the organizationEnd-user ID
App accessApp groupApp 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.

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.
  • None is 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.

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.