<OrganizationProfile />
component

The <OrganizationProfile />
component allows users to manage their organization membership and security settings.
This component's General tab displays the organization's information and the Leave organization button. Admins will be able to see the Update profile button, Verified domains section, and Delete organization button.
The Members tab shows the organization's members along with their join dates and roles. Admins will have the ability to invite a member, change a member's role, or remove them from the organization. Admins will have tabs within the Members tab to view the organization's invitations and requests.
Properties
The <OrganizationProfile />
component accepts the following properties, all of which are optional:
- Name
appearance
- Type
Appearance | undefined
- Description
Optional object to style your components. Will only affect Clerk components and not Account Portal pages.
- Name
afterLeaveOrganizationUrl
- Type
string
- Description
The full URL or path to navigate to after leaving an organization.
- Name
customPages
- Type
CustomPages[]
- Description
An array of custom pages to add to the organization profile. Only available for the JavaScript SDK. To add custom pages with React-based SDK's, see the dedicated guide.
- Name
fallback?
- Type
ReactNode
- Description
An optional element to be rendered while the component is mounting.
- Name
path
- Type
string
- Description
The path where the component is mounted on when
routing
is set topath
. It is ignored in hash- and virtual-based routing.
For example:/organization-profile
.
- Name
routing
- Type
'hash' | 'path'
- Description
The routing strategy for your pages.
Defaults to'path'
for frameworks that handle routing, such as Next.js and Remix. Defaults tohash
for all other SDK's, such as React.
You can embed the <OrganizationProfile />
component using the Next.js optional catch-all route. This allows you to redirect the user inside your application.
import { OrganizationProfile } from '@clerk/nextjs'
export default function OrganizationProfilePage() {
return <OrganizationProfile />
}
import { OrganizationProfile } from '@clerk/clerk-react'
export default function OrganizationProfilePage() {
return <OrganizationProfile />
}
---
import { OrganizationProfile } from '@clerk/astro/components'
---
<OrganizationProfile />
import { OrganizationProfile } from '@clerk/remix'
export default function OrganizationProfilePage() {
return <OrganizationProfile />
}
import { OrganizationProfile } from '@clerk/tanstack-start'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/organization-profile')({
component: OrganizationProfile,
})
function OrganizationProfile() {
return <OrganizationProfile />
}
<script setup lang="ts">
import { OrganizationProfile } from '@clerk/vue'
</script>
<template>
<OrganizationProfile />
</template>
Usage with JavaScript
The following methods available on an instance of the Clerk
class are used to render and control the <OrganizationProfile />
component:
mountOrganizationProfile()
unmountOrganizationProfile()
openOrganizationProfile()
closeOrganizationProfile()
The following examples assume that you have followed the quickstart in order to add Clerk to your JavaScript application.
mountOrganization Profile()
Render the <OrganizationProfile />
component to an HTML <div>
element.
function mountOrganizationProfile(node: HTMLDivElement, props?: OrganizationProfileProps): void
- Name
node
- Type
HTMLDivElement
- Description
The
<div>
element used to render in the<OrganizationProfile />
component
- Name
props?
- Type
OrganizationProfileProps
- Description
The properties to pass to the
<OrganizationProfile />
component
import { Clerk } from '@clerk/clerk-js'
// Initialize Clerk with your Clerk Publishable Key
const clerkPubKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY
const clerk = new Clerk(clerkPubKey)
await clerk.load()
document.getElementById('app').innerHTML = `
<div id="organization-profile"></div>
`
const orgProfileDiv = document.getElementById('organization-profile')
clerk.mountOrganizationProfile(orgProfileDiv)
unmountOrganization Profile()
Unmount and run cleanup on an existing <OrganizationProfile />
component instance.
function unmountOrganizationProfile(node: HTMLDivElement): void
- Name
node
- Type
HTMLDivElement
- Description
The container
<div>
element with a rendered<OrganizationProfile />
component instance.
import { Clerk } from '@clerk/clerk-js'
// Initialize Clerk with your Clerk Publishable Key
const clerkPubKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY
const clerk = new Clerk(clerkPubKey)
await clerk.load()
document.getElementById('app').innerHTML = `
<div id="organization-profile"></div>
`
const orgProfileDiv = document.getElementById('organization-profile')
clerk.mountOrganizationProfile(orgProfileDiv)
// ...
clerk.unmountOrganizationProfile(orgProfileDiv)
openOrganizationProfile()
Opens the <OrganizationProfile />
component as an overlay at the root of your HTML body
element.
function openOrganizationProfile(props?: OrganizationProfileProps): void
- Name
props?
- Type
OrganizationProfileProps
- Description
The properties to pass to the
<OrganizationProfile />
component
import { Clerk } from '@clerk/clerk-js'
// Initialize Clerk with your Clerk Publishable Key
const clerkPubKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY
const clerk = new Clerk(clerkPubKey)
await clerk.load()
document.getElementById('app').innerHTML = `
<div id="organization-profile"></div>
`
const orgProfileDiv = document.getElementById('organization-profile')
clerk.openOrganizationProfile(orgProfileDiv)
closeOrganizationProfile()
Closes the organization profile overlay.
function closeOrganizationProfile(): void
import { Clerk } from '@clerk/clerk-js'
// Initialize Clerk with your Clerk Publishable Key
const clerkPubKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY
const clerk = new Clerk(clerkPubKey)
await clerk.load()
document.getElementById('app').innerHTML = `
<div id="organization-profile"></div>
`
const orgProfileDiv = document.getElementById('organization-profile')
clerk.closeOrganizationProfile(orgProfileDiv)
Customization
To learn about how to customize Clerk components, see the customization documentation.
In addition, you also can add custom pages and links to the <OrganizationProfile />
navigation sidebar. For more information, refer to the Custom Pages documentation.
Feedback
Last updated on