← Back to all products

Onboarding Flow

$19

Onboarding wizard with progressive profiling, conditional setup steps, and completion tracking.

📁 9 files
PythonMarkdown

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 9 files

onboarding-flow/ ├── LICENSE ├── README.md ├── examples/ │ └── basic_example.py ├── free-sample.zip ├── guide/ │ ├── 01_features.md │ ├── 02_quick-start.md │ └── 03_project-structure.md ├── index.html └── src/ └── main.py

📖 Documentation Preview README excerpt

Onboarding Flow

A Python onboarding wizard for SaaS applications. Guides new users through setup steps with progressive profiling, conditional step logic, completion tracking, and automated welcome/completion emails — all built on Python's standard library.

Features

  • Multi-step flows — Define ordered onboarding steps (form, choice, info, action types)
  • Progressive profiling — Collect user data across multiple steps without overwhelming them
  • Conditional steps — Show/hide steps based on user attributes (role, plan, etc.)
  • Skip support — Optional steps can be skipped; required steps must be completed
  • Completion tracking — Percentage-based progress tracking per user
  • Welcome emails — HTML email templates with step overview and CTA buttons
  • Completion emails — Congratulations email with summary of completed/skipped steps
  • Template engine — Built-in {{variable}} and {{#if condition}} template rendering
  • JSON persistence — Save/load flow definitions and user progress

Requirements

  • Python 3.10+
  • No external dependencies (stdlib only)

Quick Start


# Start with demo flow
python src/main.py --init-demo

# Custom port
python src/main.py --port 8002

Then try the API:


# List available flows
curl http://localhost:8002/api/flows

# Start onboarding for a user
curl -X POST http://localhost:8002/api/flows/<flow_id>/start \
  -H "Content-Type: application/json" \
  -d '{"user_id": "user_123", "context": {"role": "admin"}}'

# Complete a step
curl -X POST http://localhost:8002/api/flows/<flow_id>/complete-step \
  -H "Content-Type: application/json" \
  -d '{"user_id": "user_123", "step_id": "profile", "data": {"company": "Acme Corp"}}'

# Check progress
curl http://localhost:8002/api/flows/<flow_id>/progress/user_123

API Endpoints

MethodPathDescription
GET/api/flowsList all onboarding flows
POST/api/flows/:flow_id/startStart a user on a flow
POST/api/flows/:flow_id/complete-stepComplete a step with data
GET/api/flows/:flow_id/progress/:user_idGet user's progress

... continues with setup instructions, usage examples, and more.

📄 Code Sample .py preview

examples/basic_example.py#!/usr/bin/env python3 """ Onboarding Flow — Basic Usage Example ======================================= Demonstrates the full onboarding lifecycle: 1. Create a multi-step flow 2. Start a user on the flow 3. Complete steps with data 4. Skip optional steps 5. Generate welcome and completion emails Run: python3 basic_example.py """ from __future__ import annotations import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "src")) from main import OnboardingEngine, OnboardingStep def main() -> None: print("=== Onboarding Flow — Basic Example ===\n") engine = OnboardingEngine(data_dir=Path("/tmp/onboarding-demo")) # --- 1. Define onboarding steps --- steps = [ OnboardingStep(id="profile", title="Complete Profile", order=1, description="Basic info about you and your team.", step_type="form", required=True, fields=[{"name": "company", "type": "text"}]), OnboardingStep(id="use_case", title="Select Use Case", order=2, description="What do you want to achieve?", step_type="choice", options=["Build a product", "Manage a team", "Track metrics"]),
Buy Now — $19 Back to Products