Guides

Onboarding

OpsDash ships with three layers of onboarding that guide new users from first login to productive use.

Setup wizard

Runs automatically for new users whose org has onboarding_completed = false. Consists of up to 5 steps:

StepWhat it collectsRequired
1. ProfileFull name, avatarYes
2. OrganizationOrg name, logoYes
3. InviteTeam member emails + rolesNo
4. ExploreIntroduction to key featuresNo
5. CompleteRedirect to dashboard

To reset the wizard for testing or re-onboarding:

UPDATE public.organizations
SET onboarding_completed = false
WHERE id = 'your-org-uuid';

Onboarding checklist

Visible on the Dashboard for new orgs. Tracks setup completion:

ItemHow it's completed
Profile filledusers.full_name is not empty
Org configuredorganizations.name is not the auto-generated default
First contact addedcontacts count > 0
First deal createddeals count > 0
First project createdprojects count > 0
Team member invitedinvitations count > 0 OR org_members count > 1

Server action: getOnboardingChecklistStatus(orgSlug)

Page-level guided tours

Interactive walkthroughs on specific pages powered by driver.js. Available pages:

  • Dashboard — overview of KPIs and activity feed
  • CRM Contacts — table, filters, add contact
  • CRM Deals — pipeline board, drag-and-drop
  • Projects — kanban, task creation
  • Forms — builder, lead capture config (8-step tour)

Tours are triggered by clicking the ? help button on each page. Users can restart a tour at any time — tour state is not persisted.

Seeding demo data

For demos and new installations, use the seed server action to populate sample data:

// actions/seed.ts
await seedDemoData(orgSlug);
// Creates: 5 contacts, 3 companies, 5 leads, 3 deals, 2 projects, 5 tasks

The seed action is accessible to org owners via the Platform Admin panel. Remove demo data before handing off to a client using the Admin panel or by truncating the relevant tables.

Private instance customization

For private instance deployments, the onboarding wizard can be pre-configured:

  • Skip the wizard entirely by setting onboarding_completed = true in SQL after seeding the client's org
  • Pre-populate the org name and logo before the client's first login
  • Disable the guided tours in opsdash.config.ts if the client prefers a clean UI