Client Onboarding System
Complete guide for client onboarding process. Select a topic below to get started.
System Overview
Learn about the system features, architecture, and technical implementation.
Accessing the System
How to access and navigate the client onboarding wizard.
Wizard Overview
Understanding the multi-step onboarding wizard structure.
Personal Information
Collecting client personal details with validation.
Emergency Contact
Emergency contact and guardian information collection.
Program Details
Client program information and professionals involved.
Business Details
Organization and workflow configuration.
Document Upload
Uploading and managing client documents.
Review & Submit
Final review and client creation process.
Validation Logic
Form validation and error handling mechanisms.
Troubleshooting
Solutions to common issues and problems.
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
React-based Application with modern hooks and functional components:
useStatefor form state managementuseEffectfor side effects and API callsuseCallbackfor optimized event handlers- Custom hooks for form state management
Custom Form State Hook providing:
- Centralized form data management
- Validation state tracking
- UI state management (loading, errors)
- Form reset functionality
RESTful API Integration with:
- Client creation endpoint
- Document upload endpoints
- Organization data fetching
- Error handling and retry logic
Third-party Integrations:
- Radar API: Australian address validation and autocomplete
- File Upload: Document storage and management
- Authentication: Organization context from auth tokens
Onboarding Workflow
Accessing the Onboarding System
How to access and navigate the client onboarding wizard.
- 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
- 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
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
- 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
- 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
- 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
Personal Information
Collecting client personal details with comprehensive validation.
Form Sections
- 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
- 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
- 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
- Email Field: Standard email input with validation
- Format Validation: Real-time email format validation
- Optional Field: Not required but validated if provided
- 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
- 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
Emergency Contact
Emergency contact and guardian information collection with conditional fields.
Emergency Contact Section
- 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
- Relationship: Dropdown with options (Guardian, Nominee, Other)
- Conditional Logic: Guardian section appears when "Other" is selected
- Required Field: Must select a relationship type
Guardian Section (Conditional)
- 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
- 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
- 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"
Program Details
Client program information and dynamic professionals management.
Program Information
- 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)
Professionals Management
- 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
- 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
- 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
- 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
Business Details
Organization and workflow configuration with auto-populated data.
Auto-populated Fields
- 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
- 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
- Options: Standard Onboarding, Premium Onboarding, Enterprise Onboarding
- Default: Pre-configured and disabled for editing
- Purpose: Defines client onboarding workflow process
- Options: Active, Inactive, Suspended
- Default: Active
- Purpose: Sets initial client status in the system
- Editable: User can select different initial status
API Integration Flow
- 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
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) |
Upload Process
- 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
- File Size: Maximum 10MB per file validation
- File Type: Supported format validation
- Required Documents: ID Document is mandatory
- Duplicate Prevention: File name checking
- 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
- 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
- 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
Review & Submit
Final review and client creation process with comprehensive data summary.
Review Sections
- 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
- Required Fields: All required fields validated
- Data Format: Phone numbers, emails, addresses validated
- Document Requirements: Mandatory documents confirmed
- Business Rules: Organization and workflow validated
Submission Process
- 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
- 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
- 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
- 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
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
- 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
- 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"
- 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
- Organization ID: Required, from authentication
- Organization Name: Required, from API
- Status: Required selection
- ID Document: Required, at least one uploaded
- File Size: Maximum 10MB per file
- File Type: Supported formats only
Error Handling
- 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
Troubleshooting Guide
Solutions to common issues and problems you may encounter.
Common Issues
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
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
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
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
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
- 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
- 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