👨‍⚕️ Client Onboarding System - SOP

Standard Operating Procedures - Version 1.0

System Overview

The Client Onboarding System enables organizations to efficiently onboard new clients with a comprehensive multi-step wizard interface.

Key Features

🧙 Multi-Step Wizard

6-step guided process for comprehensive client data collection with progress tracking.

📱 Responsive Design

Modern UI that works seamlessly across desktop, tablet, and mobile devices.

🔍 Real-time Validation

Client-side validation with immediate feedback and error highlighting.

🏠 Address Validation

Integration with Radar API for Australian address validation and autocomplete.

📄 Document Management

Drag-and-drop document upload with categorization and preview.

📊 Progress Tracking

Visual progress indicators showing completion status at each step.

🔐 Auto-population

Automatic population of organization details from authentication context.

📅 Australian Date Format

Custom date input component supporting DD/MM/YYYY format with validation.

Technical Architecture

1 Frontend Framework

React-based Application with modern hooks and functional components:

  • useState for form state management
  • useEffect for side effects and API calls
  • useCallback for optimized event handlers
  • Custom hooks for form state management
2 State Management

Custom Form State Hook providing:

  • Centralized form data management
  • Validation state tracking
  • UI state management (loading, errors)
  • Form reset functionality
3 API Integration

RESTful API Integration with:

  • Client creation endpoint
  • Document upload endpoints
  • Organization data fetching
  • Error handling and retry logic
4 External Services

Third-party Integrations:

  • Radar API: Australian address validation and autocomplete
  • File Upload: Document storage and management
  • Authentication: Organization context from auth tokens

Onboarding Workflow

Personal Info
Emergency Contact
Program Details
Business Details
Document Upload
Review & Submit
Dashboard Screenshot

Accessing the Onboarding System

How to access and navigate the client onboarding wizard.

1 Navigation to Onboarding
  • From the main application dashboard, locate the "Clients" section
  • Click on "Add New Client" or "Onboard Client" button
  • System automatically redirects to the onboarding wizard
  • Wizard starts with Step 1: Personal Information
Dashboard Screenshot
2 Wizard Interface Overview
  • Progress Bar: Top of page showing overall completion percentage
  • Step Indicators: Visual indicators for each step with clickable navigation
  • Form Area: Main content area with current step's form fields
  • Navigation Buttons: Previous/Next buttons at the bottom
Dashboard Screenshot
Note: The onboarding wizard automatically saves progress as you navigate between steps. You can return to previous steps to modify information before final submission.

Wizard Overview

Understanding the multi-step onboarding wizard structure and navigation.

Wizard Steps

Step Title Description Key Features
1 Personal Information Basic client details, contact information, and address Profile image upload, Australian address validation
2 Emergency Contact Emergency contact details and guardian information Relationship-based conditional fields, address validation
3 Program Details Client program information and professionals involved Dynamic professional forms, date validation
4 Business Details Organization and workflow configuration Auto-populated organization data, status selection
5 Upload Documents Document upload and management Drag-and-drop upload, document categorization
6 Review & Submit Final review and client creation Data summary, validation confirmation

Navigation Controls

1 Progress Indicators
  • Progress Bar: Shows overall completion percentage (0-100%)
  • Step Numbers: Circular indicators showing step completion status
  • Active Step: Current step highlighted with ring indicator
  • Completed Steps: Show checkmark icon instead of number
Dashboard Screenshot
2 Navigation Buttons
  • Previous Button: Gray button on left (disabled on first step)
  • Next Button: Blue button on right (moves to next step)
  • Create Client Button: Green button on final step (submits form)
  • Disabled States: Buttons disabled during API calls
3 Step Navigation
  • Clickable Steps: Completed steps are clickable for navigation
  • Validation: Steps validate before allowing progression
  • Data Persistence: Form data persists when navigating between steps
  • Error Handling: Validation errors prevent progression to next step
Dashboard Screenshot

Personal Information

Collecting client personal details with comprehensive validation.

Form Sections

1 Profile Image Upload
  • Drag-and-drop: Drag files or click to select
  • File Requirements: Max 5MB, common image formats
  • Preview: Image preview with remove option
  • Validation: File type and size validation
Dashboard Screenshot
2 Name and Basic Information
  • First Name: Required text field
  • Last Name: Required text field
  • Date of Birth: Australian date format (DD/MM/YYYY)
  • Age: Auto-calculated from DOB, manual override available
  • Gender: Dropdown with standard options
Dashboard Screenshot
3 Phone Numbers
  • Primary Phone: Type selector + Australian formatted input
  • Secondary Phone: Optional additional phone number
  • Formatting: Automatic Australian phone number formatting
  • Validation: Australian phone number pattern validation
Dashboard Screenshot
4 Email Address
  • Email Field: Standard email input with validation
  • Format Validation: Real-time email format validation
  • Optional Field: Not required but validated if provided
5 Address Information
  • Country Selection: Dropdown with country options
  • Address Line 1: Australian address autocomplete via Radar API
  • Address Line 2: Optional additional address information
  • City/State/Postcode: Auto-populated from address selection
  • Validation: Australian address format validation

Validation Rules

Validation Requirements:
  • First Name: Required, non-empty string
  • Last Name: Required, non-empty string
  • Date of Birth: Required, valid date in DD/MM/YYYY format
  • Age: Required, positive integer
  • Gender: Required, selection from predefined options
  • Phone Numbers: Valid Australian format if provided
  • Email: Valid email format if provided
  • Address: Valid Australian address format
Dashboard Screenshot

Emergency Contact

Emergency contact and guardian information collection with conditional fields.

Emergency Contact Section

1 Contact Information
  • Full Name: Required field for emergency contact
  • Address: Australian address with Radar API validation
  • Phone Number: Type selector + Australian formatted input
  • Email: Optional email address
2 Relationship Type
  • Relationship: Dropdown with options (Guardian, Nominee, Other)
  • Conditional Logic: Guardian section appears when "Other" is selected
  • Required Field: Must select a relationship type
Dashboard Screenshot

Guardian Section (Conditional)

1 Guardian Information
  • Full Name: Required when relationship is "Other"
  • Address: Australian address with Radar API validation
  • Phone Number: Type selector + Australian formatted input
  • Email: Optional email address
2 Conditional Display Logic
  • Trigger: Relationship dropdown selection of "Other"
  • Animation: Smooth expansion of guardian section
  • Validation: Guardian fields required when section visible
  • Persistence: Data persists when toggling relationship type

Validation Rules

Validation Requirements:
  • Emergency Contact Name: Required, non-empty string
  • Emergency Contact Address: Required, valid Australian address
  • Emergency Contact Phone: Required, valid Australian phone number
  • Relationship: Required selection from dropdown
  • Guardian Name: Required when relationship is "Other"
  • Guardian Address: Required when relationship is "Other"
  • Guardian Phone: Required when relationship is "Other"
Dashboard Screenshot

Program Details

Client program information and dynamic professionals management.

Program Information

1 Program Type and Plan
  • Program Type: Dropdown with options (NDIS, HCP, CHSP, DVA)
  • Plan Number: Required text field for program identification
  • Start Date: Australian date format (optional)
  • End Date: Australian date format (optional)
Dashboard Screenshot

Professionals Management

1 Dynamic Professional Forms
  • Add Professional: Button to add new professional entries
  • Remove Professional: Remove button for each entry (minimum 1)
  • Professional Fields: Name, role, organization, contact, email, address
  • Date Fields: Start and end dates for each professional
2 Address Validation for Professionals
  • Radar API Integration: Australian address validation for each professional
  • Autocomplete: Address suggestions while typing
  • Auto-population: City, state, postcode auto-filled from selection
  • Individual Validation: Each professional address validated separately
3 Phone and Email Validation
  • Phone Formatting: Australian phone number formatting
  • Email Validation: Standard email format validation
  • Real-time Validation: Immediate feedback on input
  • Required Fields: All professional fields are required

Validation Rules

Validation Requirements:
  • Program Type: Required selection from dropdown
  • Plan Number: Required, non-empty string
  • Professional Name: Required for each professional
  • Professional Role: Required for each professional
  • Professional Organization: Required for each professional
  • Professional Contact Number: Required, valid Australian format
  • Professional Email: Required, valid email format
  • Professional Address: Required, valid Australian address
Dashboard Screenshot

Business Details

Organization and workflow configuration with auto-populated data.

Auto-populated Fields

1 Organization ID
  • Source: Automatically retrieved from authentication context
  • Function: getOrgId() from auth utilities
  • Read-only: Field is disabled for editing
  • Validation: Required field, validated against auth system
2 Organization Name
  • Source: Fetched from API using organization ID
  • API Call: fetchOrganizationName(orgId)
  • Loading State: Shows loading indicator during fetch
  • Error Handling: Fallback to "Error loading organization name"
  • Read-only: Field is disabled for editing

Configurable Fields

1 Workflow Template
  • Options: Standard Onboarding, Premium Onboarding, Enterprise Onboarding
  • Default: Pre-configured and disabled for editing
  • Purpose: Defines client onboarding workflow process
2 Initial Status
  • Options: Active, Inactive, Suspended
  • Default: Active
  • Purpose: Sets initial client status in the system
  • Editable: User can select different initial status

API Integration Flow

Component Mount
Get Org ID from Auth
Fetch Org Name from API
Populate Form Fields
Technical Implementation:
  • useEffect Hook: Triggers on component mount and org ID changes
  • Loading States: UI shows loading indicators during API calls
  • Error Handling: Graceful fallback for failed API requests
  • Data Persistence: Organization data stored in form state
Dashboard Screenshot

Document Upload

Uploading and managing client documents with categorization.

Document Categories

Document Type Description Required File Requirements
ID Document Driver's license, passport, or state ID Yes PDF, JPG, PNG (Max 10MB)
Intake Form Completed client intake form No PDF, DOC, DOCX (Max 10MB)
Service Agreement Signed service agreement No PDF (Max 10MB)
Plan Document Care or service plan documentation No PDF, DOC, DOCX (Max 10MB)
Assessment Report Client assessment report No PDF, DOC, DOCX (Max 10MB)
Other Any additional relevant documents No Any format (Max 10MB)
Dashboard Screenshot

Upload Process

1 Document Selection
  • Category-based Upload: Separate upload buttons for each document type
  • Multiple Files: Support for multiple file selection per category
  • Drag-and-drop: Drag files directly onto upload areas
  • File Browser: Traditional file selection dialog
2 Upload Validation
  • File Size: Maximum 10MB per file validation
  • File Type: Supported format validation
  • Required Documents: ID Document is mandatory
  • Duplicate Prevention: File name checking
3 Temporary Upload Process
  • Temp Upload API: /api/v1/documents/temp-upload
  • FormData: Multipart form data with file and metadata
  • Document Owner: Temporary owner ID (0) until client creation
  • Uploaded By: Current user ID from authentication
Dashboard Screenshot
4 Document Management
  • Document Preview: File icon with name and size
  • Remove Option:
  • Status Indicators: Upload status and completion
  • Finalization: Documents linked to client after creation

API Integration

Document Upload Flow:
  • Step 1: Temporary upload to server with document metadata
  • Step 2: Store document IDs in form state
  • Step 3: Create client record via API
  • Step 4: Finalize document ownership with client ID
  • Step 5: Handle upload errors and retry logic
Dashboard Screenshot

Review & Submit

Final review and client creation process with comprehensive data summary.

Review Sections

1 Data Summary Display
  • Personal Information: Name, contact details, address
  • Emergency Contact: Contact details and relationship
  • Program Details: Program type, plan number, professionals
  • Business Configuration: Organization, workflow, status
  • Uploaded Documents: Document list with sizes and types
Dashboard Screenshot
2 Validation Confirmation
  • Required Fields: All required fields validated
  • Data Format: Phone numbers, emails, addresses validated
  • Document Requirements: Mandatory documents confirmed
  • Business Rules: Organization and workflow validated
Dashboard Screenshot

Submission Process

1 Client Creation API Call
  • Endpoint: POST /api/v1/clients
  • Data Format: FormData with all client information
  • Phone Cleaning: Australian phone number formatting
  • Conditional Fields: Guardian data included when applicable
  • Professional Data: Array of professionals with cleaned contact numbers
2 Document Finalization
  • Endpoint: POST /api/v1/documents/finalize/{clientId}
  • Process: Links uploaded documents to created client
  • Data: Document IDs and uploaded user information
  • Error Handling: Non-blocking finalization with warnings
3 Success Handling
  • Success Message: Client onboarded successfully notification
  • Client Data: Display created client ID and number
  • Navigation Options: Add another client or view client list
  • Cache Refresh: Client list cache eviction and refresh
4 Error Handling
  • Validation Errors: Field-specific error messages
  • API Errors: HTTP error status handling
  • Network Errors: Connection failure handling
  • User Feedback: Clear error messages with retry options

Success Workflow

Review Data
Submit Form
Create Client
Finalize Documents
Show Success
Dashboard Screenshot
Dashboard Screenshot

Validation Logic

Form validation and error handling mechanisms throughout the onboarding process.

Validation Types

📋 Required Field Validation

Ensures mandatory fields are completed before proceeding to next steps.

📞 Phone Number Validation

Australian phone number format validation with real-time formatting.

📧 Email Validation

Standard email format validation with proper regex patterns.

🏠 Address Validation

Australian address validation using Radar API integration.

📅 Date Validation

Australian date format (DD/MM/YYYY) validation with logical date checking.

📄 Document Validation

File type, size, and required document validation.

Step-by-Step Validation Rules

Step 1: Personal Information
  • First Name: Required, non-empty string
  • Last Name: Required, non-empty string
  • Date of Birth: Required, valid DD/MM/YYYY format
  • Age: Required, positive integer
  • Gender: Required selection
  • Phone Numbers: Valid Australian format if provided
  • Email: Valid format if provided
  • Address: Valid Australian address
Step 2: Emergency Contact
  • Emergency Contact Name: Required
  • Emergency Contact Address: Required, valid Australian address
  • Emergency Contact Phone: Required, valid Australian format
  • Relationship: Required selection
  • Guardian Fields: Required when relationship is "Other"
Step 3: Program Details
  • Program Type: Required selection
  • Plan Number: Required
  • Professional Name: Required for each professional
  • Professional Role: Required for each professional
  • Professional Organization: Required for each professional
  • Professional Contact: Required, valid Australian format
  • Professional Email: Required, valid format
  • Professional Address: Required, valid Australian address
Step 4: Business Details
  • Organization ID: Required, from authentication
  • Organization Name: Required, from API
  • Status: Required selection
Step 5: Document Upload
  • ID Document: Required, at least one uploaded
  • File Size: Maximum 10MB per file
  • File Type: Supported formats only

Error Handling

Error Display Mechanism:
  • Inline Errors: Red text below problematic fields
  • Visual Indicators: Red borders on invalid fields
  • Step Validation: Prevents progression with validation errors
  • API Errors: Displayed in alert boxes with details
  • Clear on Input: Errors clear when user starts typing
Dashboard Screenshot

Troubleshooting Guide

Solutions to common issues and problems you may encounter.

Common Issues

Issue 1: Form Validation Errors Preventing Progression

Possible Causes:

  • Required fields not completed
  • Invalid phone number format
  • Email format validation failure
  • Address validation issues

Solutions:

  • Check for red error messages below fields
  • Ensure Australian phone number format (04XX XXX XXX)
  • Verify email format (user@domain.com)
  • Use address autocomplete for valid Australian addresses
Issue 2: Document Upload Failures

Error Messages:

"File too large" or "Invalid file type"

Solutions:

  • Ensure files are under 10MB limit
  • Use supported formats (PDF, JPG, PNG, DOC, DOCX)
  • Try compressing large files before upload
  • Check network connection for large file uploads
Issue 3: Address Autocomplete Not Working

Possible Causes:

  • Radar API key not configured
  • Network connectivity issues
  • Non-Australian address entry

Solutions:

  • Check if country is set to Australia
  • Verify API key configuration in environment variables
  • Type at least 3 characters for suggestions to appear
  • Manual address entry is always available as fallback
Issue 4: Organization Details Not Loading

Possible Causes:

  • Authentication token issues
  • API connectivity problems
  • Organization ID not available in auth context

Solutions:

  • Refresh the page to re-authenticate
  • Check network connection
  • Contact administrator for organization access issues
  • Manual organization entry available as fallback
Issue 5: Client Creation Failure

Possible Causes:

  • API server issues
  • Data validation failures on server
  • Network connectivity problems

Solutions:

  • Check error message for specific details
  • Verify all required fields are completed
  • Try again after few minutes if server issue
  • Contact IT support if issue persists

Error Message Reference

Error Message Meaning Solution
"First name is required" First name field is empty Enter client's first name
"Please enter a valid Australian phone number" Phone number format invalid Use Australian format (04XX XXX XXX)
"Please enter a valid email address" Email format invalid Use valid email format (user@domain.com)
"At least one ID document is required" Missing required ID document Upload at least one ID document
"File too large" Uploaded file exceeds size limit Reduce file size below 10MB
"Invalid file type" Unsupported file format Use supported formats (PDF, JPG, PNG, DOC, DOCX)

Performance Optimization

Best Practices:
  • Large Files: Compress images and documents before upload
  • Network Issues: Use stable internet connection for large uploads
  • Browser Performance: Use latest browser versions for optimal performance
  • Data Entry: Use address autocomplete to avoid manual entry errors
  • Document Preparation: Have required documents ready before starting

Contact Support

When to Contact Support:
  • Persistent validation errors after checking all fields
  • Repeated API connection failures
  • System performance issues
  • Missing features or functionality
  • Security concerns or access issues

Information to Provide:

  • Detailed description of the issue
  • Steps to reproduce the problem
  • Screenshot of any error messages
  • Browser and operating system information
  • Date and time the issue occurred