Skip to main content
The OrganizationMemberManagement component provides a unified interface to manage members and invitations for your organization.

Setup requirements

Auth0 Configuration Required—Ensure your tenant is configured with the My Organization API. View setup guide →

Installation

pnpm

Get started

To let administrators view an individual member, wire viewMemberDetailsAction to navigate to the route hosting OrganizationMemberDetail:

Props

Display props

Display props control how the component renders without affecting its behavior. Use these to hide sections or enable read-only mode.

Action props

Action props handle user interactions and define what happens when users perform member and invitation operations. Use lifecycle hooks (onBefore, onAfter) to integrate with your application’s routing and analytics. createInvitationAction Type: ComponentAction<CreateInvitationInput, MemberInvitation> Controls invitation creation (up to 10 invitees per request).
  • onBefore(input) runs synchronously before sending. Return false to cancel.
  • onAfter(input, createdInvitation) runs after the invitation is created.
Invitation connection routing The invitation picker lists eligible Enterprise SSO identity providers and enabled User Stores / User Directories configured for the organization. The connection selector queries both sources:
  • GET /my-org/identity-providers (filters for eligible member access levels)
  • GET /my-org/user-stores (filters for is_enabled: true)
The payload sent to createInvitationAction routes using exactly one applicable identifier based on the selected connection type:
  • Enterprise SSO connection selected: the payload populates identity_provider_id.
  • User Store / Directory connection selected: the payload populates user_store_id.
Connection routing rules:
  • Auto-selection: If an organization has only one eligible connection, that connection is selected by default and remains editable.
  • Zero connections: If no eligible connections exist, the invitation entry point is disabled and displays explanatory feedback.
  • Revoke and resend: The revoke-and-resend flow preserves the original connection routing source (user_store_id or identity_provider_id).
  • Connection eligibility: The invitation picker includes connections configured with a limited or full member access level.
revokeInvitationAction Type: ComponentAction<MemberInvitation[]> Controls invitation revocation (supports single and bulk revocations up to 10 invitations per batch).
  • onBefore(invitations) confirms before revoking. Return false to cancel.
  • onAfter(invitations) runs after invitations are revoked.
resendInvitationAction Type: ComponentAction<MemberInvitation, MemberInvitation> Controls the revoke-and-resend flow.
  • onBefore(invitation) confirms before resending. Return false to cancel.
  • onAfter(original, newInvitation) runs after a fresh invitation is created.
viewMemberDetailsAction Type: ComponentAction<ViewMemberDetailsParams> Fires when selecting a member row or roles badge. Receives { userId, tab }. Wire this to navigate to OrganizationMemberDetail.
  • onAfter({ userId, tab }) runs on selection. Preserve tab in your router URL to open the requested tab directly.
removeFromOrganizationAction Type: ComponentAction<string> Controls member removal from the organization (membership only; does not delete the user profile from the Auth0 user store). Both hooks receive the userId.
  • onBefore(userId) confirms before removal. Return false to cancel.
  • onAfter(userId) runs after removal.
assignRolesAction Type: ComponentAction<{ userId: string; roleIds: string[] }> Fires after assigning roles from the row modal. Role selections are capped at 10 roles per assignment request, and an individual member can have up to 50 total roles assigned. Both hooks receive { userId, roleIds }.
  • onBefore({ userId, roleIds }) validates selection. Return false to cancel.
  • onAfter({ userId, roleIds }) runs after roles are assigned.

Customization props

customMessages Override bundled component text. Every field is optional and falls back to the built-in default.
header—Component header
  • title, description
tabs—Tab labels
  • members, invitations
count_capped—Capped count indicator
  • Text displayed when member or invitation count exceeds 1,000 items
member.table—Member table display
  • columns.name, columns.roles, columns.last_login
  • empty_message, search_placeholder
member.actions—Member row actions
  • menu_label, remove_from_organization, view_details
member.assign_roles—Assign roles modal
  • title, description
  • roles_label, roles_placeholder
  • submit_button, cancel_button, no_roles_available
member.remove_from_organization—Remove member confirmation
  • title, description
  • confirm_button, cancel_button
member.success / member.error—Member action statuses
  • success.removed_from_organization, success.role_assigned
  • error.fetch_failed, error.assign_roles_failed, error.remove_from_organization_failed
invitation.table—Invitation table display
  • columns.email, columns.status, columns.inviter
  • columns.created_at, columns.expires_at, columns.roles
  • empty_message, search_placeholder, showing_results
  • status_pending, status_expired
invitation.actions—Invitation row actions
  • menu_label, view_details, copy_url, revoke_and_resend, revoke
invitation.create—Create invitation modal
  • title, description
  • email_label, email_placeholder, email_helper
  • email_limit_error, email_invalid_error, email_duplicate_error, email_required_error
  • roles_label, roles_placeholder, roles_max_selection_message, roles_searching_message
  • connection_label, connection_placeholder, connection_helper
  • connection_group_user_store, connection_group_identity_provider
  • submit_button, creating, cancel_button
invitation.details—Invitation details drawer
  • title, email_label, status_label
  • roles_label, connection_label
  • created_at_label, expires_at_label, invited_by_label, invitation_url_label
  • copy_url_button, close_button, revoke_button, resend_button
invitation.revoke / invitation.revoke_resend—Revocation confirmations
  • revoke.title, revoke.description, revoke.confirm_button, revoke.cancel_button
  • revoke_resend.title, revoke_resend.description, revoke_resend.confirm_button, revoke_resend.cancel_button
invitation.bulk_revoke—Bulk revocation confirmation
  • button, button_plural, count, count_plural, success, max_selection_message
  • confirm.title, confirm.title_plural, confirm.description, confirm.description_plural
  • confirm.confirm_button, confirm.confirm_button_plural, confirm.cancel_button
invitation.error / invitation.success—Invitation statuses and alerts
  • success.url_copied, success.invitation_resent
  • error.fetch_failed, error.fetch_roles_failed, error.create_failed
  • error.revoke_failed, error.resend_failed, error.revoke_resend_failed
  • error.bulk_revoke_failed, error.connection_required, error.copy_url_failed

styling Customize appearance with CSS variables and class overrides. Variables support light, dark, and common scopes. Class overrides target named slots inside the component tree.
Variables—CSS custom properties
  • common—Applied to all themes
  • light—Light theme only
  • dark—Dark theme only
Classes—Targeted element class overrides
  • OrganizationMemberManagement-root
  • OrganizationMemberManagement-header
  • OrganizationMemberManagement-tabs
  • OrganizationInvitationTab-root
  • OrganizationInvitationTab-table
  • OrganizationInvitationTab-createModal
  • OrganizationInvitationTab-detailsModal
  • OrganizationInvitationTab-revokeModal
  • OrganizationInvitationTab-revokeResendModal
  • OrganizationInvitationTab-bulkRevokeModal
  • OrganizationInvitationTab-searchInput
  • OrganizationInvitationTab-filterDropdown
  • OrganizationInvitationTab-pagination

Advanced customization

Available hooks

These hooks provide the underlying logic without any UI. Use them to build completely custom interfaces while leveraging the Auth0 API integration.