Pathfinder Docs

Documentation Preview

Intake Form Versions

Source: `docs/product/INTAKE_VERSIONS.md`View on GitHub

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:

  1. Staff/Caseworker Version - For staff entering client information (default)
  2. 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:

  1. Update the route you link to from /intake to /intake/self-service
  2. No code changes needed - both pages use the same form component
  3. 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

ElementStaff VersionSelf-Service Version
Page TitleClient Intake FormApplicant 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!"
ActionsView Client Profile / Back to ListReference 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:

  1. Copy content from app/intake/self-service/page.tsx to app/intake/page.tsx
  2. Update form component headings to use second-person
  3. Remove authentication requirement from main intake page
  4. Consider keeping staff version at /intake/staff route

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.