Intake Form Versions
Intake Form Versions
Date: November 23, 2025
Overview
The intake system has two versions of the intake form with different copy tailored to the user:
- Staff/Caseworker Version - For staff entering client information (default)
- Self-Service Version - For clients filling out their own application (future use)
Current Implementation
Staff Version (Active)
Route: /intake
File: app/intake/page.tsx
Authentication: Required
Authorized Roles: staff, admin, caseworker, org_admin
Copy Characteristics:
- Third-person language ("Enter the client's information...")
- Staff-oriented instructions
- Professional terminology
- Focus on workflow and next steps
- Success message includes links to client profile and clients list
Example Copy:
- "Client Information (Head of Household)"
- "Gather information about the household..."
- "Assess the client's current housing status..."
- "Confirm that the client has been informed of and consents to..."
- "The client household has been registered in the system"
Self-Service Version (Saved for Future)
Route: /intake/self-service
File: app/intake/self-service/page.tsx
Authentication: None (public access)
Copy Characteristics:
- First/second-person language ("Your information...", "You'll need...")
- Client-facing instructions
- Accessible terminology
- Focus on client experience
- Help section with contact information
Example Copy:
- "Head of Household Information"
- "You'll need information about your household..."
- "What do you need help with right now?"
- "Your information is confidential..."
- "Thank you for completing your application"
Form Component
File: app/components/ApplicantIntakeForm.tsx
The form component is the same for both versions - only the wrapper pages change the context and copy.
Updated for Staff Version:
- All section headings reference "client" instead of "you"
- Helper text is staff-oriented
- Success screen has staff actions (View Client Profile, Back to Clients List)
When to Use Each Version
Use Staff Version (/intake)
- Default for all current workflows
- Caseworkers conducting in-person or phone interviews
- Staff entering data on behalf of clients
- Coordinated Entry intake processes
Use Self-Service Version (/intake/self-service)
- Future: Public kiosks at service centers
- Future: Email links to clients
- Future: Website self-registration
- When client can complete independently
Switching Between Versions
To switch from staff version to self-service version:
- Update the route you link to from
/intaketo/intake/self-service - No code changes needed - both pages use the same form component
- Both versions submit to the same API endpoint
API Backend
Both versions use the same API:
POST /api/intake/submit- Creates household and client records
- Calculates vulnerability scores
- Returns household ID
The API doesn't differentiate between staff-entered and self-service - the intake_method field in the database tracks the source:
- Staff version:
intake_method = 'staff_entered' - Self-service version:
intake_method = 'self_service'
Navigation & Access
Staff Version
- Accessible via CRM navigation: "Intake" menu item
- Requires authentication AND authorized role (staff, admin, caseworker, org_admin)
- Unauthorized users redirected to
/unauthorized - After submission: redirects to client profile or clients list
Self-Service Version
- Publicly accessible (no authentication)
- Can be linked from external websites
- After submission: shows success message with reference number
Copy Comparison
| Element | Staff Version | Self-Service Version |
|---|---|---|
| Page Title | Client Intake Form | Applicant Intake Application |
| Instructions | "Interview the client and enter..." | "You'll need information about..." |
| Step 1 | "Client Information (Head of Household)" | "Head of Household Information" |
| Step 5 | "Client's Immediate Needs" | "What do you need help with right now?" |
| Consent | "Confirm that the client understands..." | "I understand and consent..." |
| Success | "Client Intake Completed Successfully!" | "Application Submitted Successfully!" |
| Actions | View Client Profile / Back to List | Reference Number / Contact Info |
Future Enhancements
Planned for Self-Service
- Email/SMS confirmation with reference number
- Save & resume functionality with unique link
- Multi-language support
- Progress save to browser localStorage
- Simplified mobile UI
Planned for Staff Version
- Auto-assign to logged-in caseworker's org
- Quick search for duplicate households
- Print intake form
- E-signature capture for client consent
- Household member builder (add multiple family members)
Files Structure
app/
├── intake/
│ ├── page.tsx # Staff version (active)
│ └── self-service/
│ └── page.tsx # Self-service version (future)
├── components/
│ └── ApplicantIntakeForm.tsx # Shared form component
└── api/
└── intake/
└── submit/
└── route.ts # Shared API endpoint
Migration Notes
If switching back to self-service as default:
- Copy content from
app/intake/self-service/page.tsxtoapp/intake/page.tsx - Update form component headings to use second-person
- Remove authentication requirement from main intake page
- Consider keeping staff version at
/intake/staffroute
Database Tracking
The households table tracks how intake was completed:
intake_method TEXT DEFAULT 'staff_entered'
-- Values: 'self_service', 'staff_entered', 'phone', 'in_person'
This allows reporting on:
- How many intakes are staff-entered vs. self-service
- Which method has better completion rates
- Staff productivity metrics
Last Updated: November 23, 2025
Current Default: Staff Version (/intake)
Use links in each imported doc to open its source.