Skip to main content

Organization switching for multi-tenant apps

<OrganizationSwitcher /> enables users of apps with multi-tenant architectures to switch between multiple organizations, including their personal accounts.

Organization flows

Organization actions

Give users access to <CreateOrganization /> and <OrganizationProfile /> so they can create organizations and manage members, invitations, and requests.

Multi-tenancy

One account, multiple organizations

Users can belong to multiple organizations, all with different roles. <OrganizationSwitcher /> updates the active organization in the session so your app enforces the right permissions.

User management

Invitations

Users can view and accept organization invitations from the <OrganizationSwitcher />. Organization admins can send invitations from <OrganizationProfile /> or the dashboard.

User management

Access requests

Admins can review and approve join requests in <OrganizationProfile />. Once approved, the organization becomes immediately available to the user.

Personal accounts

Personal account switching

If enabled, users can switch between their personal workspace and organizations. Ideal for hybrid B2B and B2C apps like GitHub.

Customization

Customizable to your brand

Match the look and feel of your product with full styling control. Override themes, layout, and behaviors to create an account menu that feels native to your app.

org icon
Acme Corp.
active org

Acme Corp.

Owner

Manage
inactive org

Brightside AI

Create Organization

Secured by

Implement a Org switcher in minutes

Drop-in <OrganizationSwitcher />

Build secure, scalable authentication in minutes with Clerk's SDKs. Drop in pre-built UI components and onboard users instantly, without friction or security concerns.

Clerk API

Custom flows

Want full control over your onboarding experience? Our headless APIs give you the flexibility to build exactly what you need.

"use client"

import { useAuth, useOrganizationList } from "@clerk/nextjs"
import CreateOrganization from "../components/create-organization" 
// See https://clerk.com/docs/guides/development/custom-flows/
// organizations/create-organizations for this component

// List user's organization memberships
export default function JoinedOrganizations() {
  const { isLoaded, setActive, userMemberships } = 
useOrganizationList({
    userMemberships: {
      // Set pagination parameters
    }
}