Skip to content

Settings — Team

The Settings ▸ Team page is the admin surface for managing every member of your organization. The page is exposed at /settings/team, with /settings/users redirecting here for backward compatibility.

The page complements Account ▸ Profile, which is each member’s own view of their personal record. Settings ▸ Team is the same data plane seen from the admin side, with full edit rights and the org-level security policy controls.

Settings Team — Acme Financial Group demo tenant

Standard PageHeader with the title Team and a one-line description.

A composed OrgSecuritySection component at the top of the page, controlling org-wide policies that apply to every member:

  • SSO configuration — SAML / OIDC connection setup
  • 2FA enforcement — require every member to enroll in TOTP 2FA

Both controls emit org.settings_updated audit events with the diff.

A visual divider between the org-level policies and the per-user list.

A flex row with the Users sub-heading on the left and the Invite User button on the right. Clicking the button opens the invite dialog.

Each active user is a clickable row with:

  • Name + email (primary)
  • Last login timestamp
  • Role badge (colour-coded)
  • More menu (Change role · Resend invite · Deactivate)

Clicking the row navigates to the per-user team profile at /settings/team/:userId, which is the admin counterpart of Account ▸ Profile.

Below the active users, a separate sub-section lists every pending invite with a Resend button. Pending invites expire after 7 days and can be resent without recreating the record.

The dialog captures email and role. On submit:

  1. A pending user record is created
  2. An invite email is dispatched with a one-time link (7-day TTL)
  3. The pending row appears in the Pending invites section

The invite link is single-use and binds to the email it was sent to.

RoleDefault permissions
OwnerFull platform + billing + dangerous deletions
AdminSettings + team management; no billing
MemberDay-to-day verifications and envelopes
ViewerRead-only across the platform

Per-action permission overrides live under Settings ▸ Access Levels.

Deactivating a user via the More menu:

  • Revokes every active session
  • Hides the user from Directory and Participants
  • Preserves the audit trail (no data loss)
  • Re-assigns open verifications per the Settings ▸ Compliance policy

Deactivation is reversible only via the support channel — the UI does not surface re-activation.

The OrgSecuritySection renders two grouped controls:

When configured, users sign in via the connected IdP (Okta, Azure AD, Google Workspace, etc.) and the password fields under Account ▸ Security disappear. Existing password-based sessions remain active until next sign-in.

The flow is roughly:

  1. Pick provider (SAML or OIDC)
  2. Paste IdP metadata or fields
  3. Test the connection
  4. Toggle on for the org

When enabled, every member must enroll in TOTP 2FA before signing in. New invites cannot complete sign-in without enrollment; existing users get a forced enrollment flow on next sign-in.

The toggle is irreversible only as a UX matter — disabling it later just removes the gate; existing 2FA enrollments are not deleted.

RoleViewInviteChange roleDeactivateOrg security
Owner✓ (any)✓ (any non-self)
Admin✓ (not Owner)✓ (not Owner)
Member
Viewer

Members hitting /settings/team get a 403 page via RoleGuard.

ActionEvent
Inviteuser.invited
Role changeuser.role_updated
Deactivationuser.deactivated
SSO toggleorg.settings_updated (diff includes sso_enabled)
2FA enforcementorg.settings_updated (diff includes enforce_2fa)
SymptomMost likely causeFix
Invite email not receivedBounce or spam filterResend; confirm email
Deactivate option missingTarget is OwnerReach out to support to deactivate Owner
SSO active but password fields visibleUser session cached old configUser signs out and back in
Role change doesn’t applyUser’s session cached old permissionsUser refreshes; permissions re-fetch on focus
Deactivated user still in DirectoryCache staleWait or refresh — refetch on focus