Organization Onboarding
Guide users through organization setup, team creation, and member invitations after registration.
The organization onboarding feature extends the user onboarding with organization-specific steps. It's implemented in the @kit/org-onboarding
package and handles the complete organization setup flow.
Overview
Organization onboarding combines user onboarding (profile + theme) with organization steps:
- Organization creation (name, slug, logo)
- Team member invitations
- Pending invitation handling
Available Steps
Step | Description | Component |
---|---|---|
profile | User profile setup | OnboardingProfileStep |
theme | Theme selection | OnboardingThemeStep |
organization | Organization creation | OrgOnboardingStep |
organization-invite | Team member invitations | OrgOnboardingInvitationStep |
pending-invitations | Handle pending invites | null (auto-handled) |
Quick Setup
Install the package
Create the onboarding page
import { OrganizationOnboarding } from '@kit/org-onboarding'; import { dashboardRoutes } from '@kit/shared/config'; // ... other imports export default async function OnboardingFullPage(): Promise<React.JSX.Element> { const db = await getDBClient(); const user = await db.user.require(); // Check if user already has organization memberships const memberships = await db.organization.getUserMemberships(); if (memberships.length > 0) { // redirect to a user only sub-onboarding page return redirect(dashboardRoutes.paths.onboarding.user); } return ( <div className="relative min-h-screen bg-background"> <OrganizationOnboarding activeSteps={['profile', 'theme', 'organization', 'organization-invite']} metadata={{ user: user }} rootUrl={dashboardRoutes.url} redirectUrl={dashboardRoutes.paths.dashboard.index} /> </div> ); }
Key Features
Smart Redirection
- Users with existing memberships → User onboarding
- New users → Full organization onboarding
- Pending invitations → Appropriate handling
Organization Creation
- Name, slug, and logo setup
- Slug validation (alphanumeric + hyphens/underscores)
- Logo upload with cropping
Team Invitations
- Invite up to 5 team members
- Email validation
- Role assignment
- Automatic invitation emails
Form Integration
- Extends user onboarding schema
- Transactional data processing
- Automatic user completion status
Component Props
Prop | Type | Default |
---|---|---|
metadata* | ... | |
activeSteps | OrganizationOnboardingStep[] | |
rootUrl* | string | |
redirectUrl* | string |
When to Use
Use organization onboarding when you want users to:
- Set up their organization immediately after registration
- Invite team members during onboarding
- Create a complete workspace setup experience
For simpler flows, use User Onboarding instead.
Architecture
The organization onboarding builds on top of user onboarding by:
- Extending
USER_ONBOARDING_STEP
with organization steps - Adding organization-specific schemas
- Providing dedicated server actions for organization data
- Handling complex membership and invitation logic
This modular approach keeps the code maintainable while providing a rich onboarding experience.
Add an onboarding process after registration to collect more data on your new users and to perform specific actions.
Add subscription and payment capabilities to your application with multiple billing providers.
How is this guide?
Last updated on 10/17/2025