Skip to main content
Zenovay
Pro Plan15 minutesIntermediate

SaaS User Onboarding Tracking

Track and optimize your SaaS onboarding flow to improve user activation and retention. Learn about saas in this industry guide.

saasonboardingactivationanalyticsuser-journey
Last updated:

Track your user onboarding flow to identify drop-off points and optimize for faster activation.

Onboarding Analytics Overview

Why Track Onboarding?

MetricImpact
Faster activation2x higher retention
Complete onboarding3x conversion rate
Day 1 value40% more engaged

Key Onboarding Metrics

MetricFormulaBenchmark
Completion RateCompleted ÷ Started40-60%
Time to CompleteAvg minutes<10 min
Drop-off RateAbandoned ÷ Started<40%
Reactivation RateReturned ÷ Dropped10-20%

Designing Trackable Onboarding

Define Onboarding Steps

Typical SaaS onboarding:

StepActionPurpose
1Account CreatedEntry
2Profile CompletedPersonalization
3Core Feature UsedValue preview
4First SuccessAha moment
5Second SessionHabit forming

Track Each Step

// Step tracking function
function trackOnboardingStep(stepNumber, stepName, metadata = {}) {
  zenovay('track','onboarding_step', {
    step: stepNumber,
    step_name: stepName,
    time_on_step: calculateTimeOnStep(),
    total_time: calculateTotalOnboardingTime(),
    ...metadata
  });
}

// Usage
trackOnboardingStep(1, 'account_created', { method: 'email' });
trackOnboardingStep(2, 'profile_completed', { fields: ['name', 'company', 'role'] });
trackOnboardingStep(3, 'first_project', { template_used: 'marketing' });
trackOnboardingStep(4, 'first_success', { action: 'report_generated' });

Track Completion

// Onboarding completed
zenovay('track','onboarding_completed', {
  total_steps: 5,
  total_time_minutes: 8,
  skipped_steps: [],
  method: 'guided'
});

// Onboarding skipped
zenovay('track','onboarding_skipped', {
  completed_steps: 2,
  skipped_at_step: 3,
  reason: 'skip_button_clicked'
});

Creating Onboarding Funnels

Main Onboarding Funnel

  1. Go to GoalsFunnels
  2. Create "User Onboarding"
  3. Add your steps:
Step 1: signup_completed
Step 2: profile_completed
Step 3: first_feature_used
Step 4: aha_moment
Step 5: second_session

View Drop-off Analysis

StepUsersConversionDrop-off
Signup1,000--
Profile68068%32%
First Use51075%25%
Aha Moment34067%33%
Return Visit25575%25%

Focus: Profile completion has highest drop-off.

Tracking Onboarding Variations

Guided vs Self-Serve

// Track onboarding type
zenovay('track','onboarding_started', {
  type: 'guided', // or 'self-serve', 'demo', 'wizard'
  source: 'signup_flow'
});

A/B Test Onboarding

// Track variant
zenovay('track','onboarding_variant', {
  experiment: 'onboarding_v2',
  variant: 'simplified',
  user_id: 'user_123'
});

Compare variants:

  • Completion rate
  • Time to complete
  • Downstream retention

Onboarding Segments

By User Role

RoleCompletionTimeFocus
Admin72%12 minSettings
User58%8 minFeatures
Viewer45%3 minNavigation

By Company Size

SizeCompletionNeeds
1-1065%Speed
11-5058%Team features
51-20048%Customization
200+42%Enterprise

By Traffic Source

SourceCompletionNotes
Organic62%High intent
Paid Ads45%Lower quality
Referral68%Pre-educated
Content55%Curious

Session Replay for Onboarding

Find Problem Areas

  1. Go to Sessions
  2. Filter: "onboarding_step" contains step 3
  3. Filter: Missing "onboarding_completed"
  4. Watch where users struggle

Common Findings

UI confusion:

  • Users click non-clickable elements
  • Miss important buttons
  • Don't scroll to CTA

Form friction:

  • Hesitate on fields
  • Error corrections
  • Abandoned forms

Value unclear:

  • Leave before core feature
  • Don't understand next step
  • Exit at pricing mention

Optimizing Each Step

Step 1: Account Creation

Track:

zenovay('track','signup_field', {
  field: 'email',
  time_spent: 5
});

Optimize:

  • Fewer fields
  • Social signup options
  • Clear password requirements

Step 2: Profile/Setup

Track:

zenovay('track','profile_section', {
  section: 'company_info',
  completed: true,
  time_spent: 45
});

Optimize:

  • Make optional fields clear
  • Progressive disclosure
  • Skip option visible

Step 3: First Core Action

Track:

zenovay('track','first_action', {
  action_type: 'create_project',
  used_template: true,
  template_name: 'getting_started'
});

Optimize:

  • Provide templates
  • Pre-populate data
  • Guide to quick win

Step 4: Aha Moment

Track:

zenovay('track','aha_moment', {
  trigger: 'first_result_seen',
  time_from_signup_minutes: 5,
  value_demonstrated: 'report_generated'
});

Optimize:

  • Reduce time to value
  • Celebrate the moment
  • Explain what happened

Time-Based Analysis

Time to Activate

// Track activation time
zenovay('track','user_activated', {
  time_from_signup_hours: 2,
  session_count: 1,
  actions_taken: 15
});

Optimal Onboarding Time

Completion TimeRetention 30d
<5 min45%
5-15 min52%
15-30 min38%
>30 min25%

Sweet spot: 5-15 minutes = highest retention.

Incomplete Onboarding Recovery

Track Abandonment

// User exits during onboarding
zenovay('track','onboarding_abandoned', {
  last_step: 2,
  time_spent: 180,
  page: '/onboarding/profile'
});

Re-engagement Tracking

// User returns to continue
zenovay('track','onboarding_resumed', {
  days_since_abandon: 2,
  resumed_at_step: 2,
  source: 'email_reminder'
});

Recovery Tactics

Days InactiveActionTrack
1Email promptreminder_sent
3Feature highlighthighlight_email
7Offer helpsupport_offer

Onboarding Checklist Component

Track Checklist Usage

// Checklist item completed
zenovay('track','checklist_item', {
  item: 'invite_team',
  checked: true,
  position: 4,
  total_items: 6
});

// Checklist fully completed
zenovay('track','checklist_completed', {
  total_time_days: 3,
  items_completed: 6
});

Checklist Analytics

View in dashboard:

  • Most completed items
  • Least completed items
  • Time to complete each
  • Order of completion

Onboarding Health Score

Calculate Score

// Update onboarding score
function calculateOnboardingScore(userId) {
  const score = {
    profile_complete: 20,
    first_action: 25,
    team_invited: 20,
    integration_setup: 25,
    second_session: 10
  };

  zenovay('track','onboarding_score_updated', {
    user_id: userId,
    score: calculateTotal(score),
    components: score
  });
}

Score Distribution

Score RangeUsersConversion
0-2530%5%
26-5025%15%
51-7525%35%
76-10020%55%

Reporting

Weekly Onboarding Report

Include:

  • Signups this week
  • Completion rate
  • Average time to complete
  • Step-by-step drop-offs
  • Segment breakdown

Cohort View

Track cohorts over time:

  • Week 1 completion rate
  • Week 2 activation rate
  • Week 4 retention rate

Best Practices

Design for Measurement

  1. Define success first

    • What is activation?
    • What is the aha moment?
    • Track those specifically
  2. Instrument everything

    • Every step
    • Every skip
    • Every retry
  3. Segment from start

    • Capture role/use case
    • Track source
    • Note company size

Common Mistakes

  1. Too many steps

    • Overwhelming
    • High abandonment
  2. Unclear progress

    • No progress bar
    • Users feel lost
  3. Forced onboarding

    • No skip option
    • Frustrates power users
  4. Ignoring data

    • Not watching replays
    • Not optimizing drop-offs

Next Steps

Was this article helpful?