OrganizationMemberManagement component gives your customers a single tabbed interface for managing who has access to their Auth0 Organization. Organization administrators can review the current member list with assigned roles, invite new members, and manage pending invitations through the full lifecycle—create, view details, copy the invitation URL, revoke, and revoke-and-resend.
With the OrganizationMemberManagement component, you do not need to orchestrate navigation, call API endpoints, or manage state. The component loads the current Organization’s members and pending invitations from the My Organization API automatically.
- React
- Next.js
- shadcn
Setup requirements
Auth0 Configuration Required—Ensure your tenant is configured with the
My Organization API. View setup guide
→
Auth0Provider with interactiveErrorHandler="popup" so the challenge resolves in a popup without losing page state.Install the component
Running either command also installs the @auth0/universal-components-core
dependency for shared utilities and Auth0 integration.
@auth0/universal-components-react; only Auth0ComponentProvider uses a framework-specific subpath—@auth0/universal-components-react/spa for React.Get started
The component has no required props.React SPA
viewMemberDetailsAction to the route that renders the OrganizationMemberDetail component. The action receives { userId, tab }: userId flows through to that component’s required userId prop, and the optional tab tells you which tab the administrator asked for.React SPA
Full integration example
Full integration example
Props
OrganizationMemberManagement has no required props. It loads the current Organization’s members and pending invitations from the My Organization API automatically.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.createInvitationActionType:
ComponentAction<CreateInvitationInput, MemberInvitation>Controls the invitation-creation flow. Fires when an administrator submits the “Invite member” modal. Use onBefore to validate the invitee list (for example, against a blocklist) and onAfter to track analytics or refetch dependent data.Properties:disabled—Hide the “Invite member” button entirely.onBefore(input)—Runs before the invitation is sent. Returnfalseto cancel.input.inviteesis the array of invitees being created (one per row in the modal).onAfter(input, createdInvitation)—Runs after the invitation is successfully created. Receives both the original input and the created invitation record.
revokeInvitationActionType:
ComponentAction<MemberInvitation>Controls the invitation-revoke flow. Fires when an administrator revokes a pending invitation from the invitation list. Receives the invitation record being revoked.Properties:disabled—Hide the revoke option in the invitation row menu.onBefore(invitation)—Runs before the invitation is revoked. Returnfalseto cancel.onAfter(invitation)—Runs after the invitation is revoked. Use this to refresh state outside the component.
resendInvitationActionType:
ComponentAction<MemberInvitation, MemberInvitation>Controls the revoke-and-resend flow. The component revokes the original invitation and creates a new one with the same details. onAfter receives both the old and the new invitation.Properties:disabled—Hide the resend option in the invitation row menu.onBefore(invitation)—Runs before the invitation is resent. Returnfalseto cancel.onAfter(originalInvitation, newInvitation)—Runs after the new invitation is sent.
viewMemberDetailsActionType:
ComponentAction<ViewMemberDetailsParams>Fires when an administrator requests the per-member detail view from the member list. Receives a ViewMemberDetailsParams object—the member’s userId, plus an optional tab ('details' or 'roles') when the request targets a specific tab. The standard wiring is to navigate to the route that renders OrganizationMemberDetail; userId flows through to its required userId prop.Properties:disabled—Hide the “View details” entry in the row’s actions menu.onAfter({ userId, tab })—Runs after the user requests the detail view. Wire this to your router. Whentabis present, carry it into the destination URL so the detail view opens on the requested tab.
removeFromOrganizationActionType:
ComponentAction<string>Controls the remove-from-organization flow on a specific member row. Both lifecycle hooks receive the userId string directly.This action triggers a step-up authentication challenge. Configure your
Auth0Provider with interactiveErrorHandler="popup".disabled—Hide the remove option in the row menu.onBefore(userId)—Runs before the member is removed. Returnfalseto cancel.onAfter(userId)—Runs after the member is removed. Use this to refresh seat usage or write to an audit log.
assignRolesActionType:
ComponentAction<{ userId: string; roleIds: string[] }>Fires after an administrator assigns one or more roles to a member from the row’s role modal. Both lifecycle hooks receive an object with the userId and the array of roleIds being assigned.Properties:disabled—Hide the assign-roles option.onBefore({ userId, roleIds })—Validate the selection. Returnfalseto cancel.onAfter({ userId, roleIds })—Runs after the roles are assigned. Use this to write to an audit log or refresh role badges.
Customization props
Customization props let you override default text and apply CSS variables or class names to match your application’s design system.customMessagesCustomize all text and translations rendered by the component. Every field is optional and falls back to the built-in default. Use this prop to localize the component or to align microcopy with your product voice.
Available Messages
Available Messages
header—Component header
title,description
members,invitations
columns.name,columns.roles,columns.last_loginempty_message,search_placeholderfilter_by_role,all_roles
assign_roles,remove_from_organization,view_details
title,descriptionroles_label,roles_placeholdersubmit_button,cancel_button
title,descriptionconfirm_button,cancel_button
columns.email,columns.status,columns.invitercolumns.created_at,columns.expires_at,columns.rolesempty_message,search_placeholderfilter_by_role,all_rolesstatus_pending,status_expired
title,descriptionemail_label,email_placeholderroles_label,provider_labelsubmit_button,cancel_button
title,email_label,status_labelroles_label,provider_labelcopy_url_button,revoke_button,resend_button
error.fetch_failed,error.create_failed,error.revoke_failedsuccess.url_copied,success.invitation_resent
stylingCustomize appearance with CSS variables and class overrides. Variables are theme-aware (separate
light, dark, and common scopes); class overrides target named slots inside the component tree so you can attach utility or design-system classes without forking the source.Available Styling Options
Available Styling Options
Variables—CSS custom properties
common—Applied to all themeslight—Light theme onlydark—Dark theme only
OrganizationMemberManagement-rootOrganizationMemberManagement-headerOrganizationMemberManagement-tabsOrganizationMemberManagement-tableActionsOrganizationMemberTab-tableOrganizationInvitationTab-tableOrganizationInvitationTab-createModalOrganizationInvitationTab-detailsModalOrganizationInvitationTab-revokeModalOrganizationInvitationTab-revokeResendModal
Advanced customization
TheOrganizationMemberManagement component is composed of smaller subcomponents and hooks. Import them individually to build custom workflows.