CRM Overview
CRM Overview
Last verified against code: 2025-02-03
What this CRM is
A property-management and housing-services CRM built with Next.js and Supabase. It supports coordinated entry, client and household management, resource libraries, referrals, intake (including self-service), reporting, document vault, inventory, volunteer/Corps management, and a landlord portal. A public Rangefinder module helps users find resources by location and eligibility.
Who it is for
- Staff and caseworkers — Organizations managing clients, referrals, resources, and intake.
- Admins — System and organization administration, user and module management.
- Landlords — Property and application management via the landlord portal.
- Public / self-service — Intake self-service and Rangefinder are available without CRM login.
Core goals
- Multi-tenant, organization-scoped data with role-based access (admin, staff, caseworker, org_admin, demo, landlord).
- Tier-based and per-organization module access (Basic, Standard, Premium, Enterprise).
- Integrated intake, referrals, resources, documents, inventory, and reporting.
- Landlord portal and volunteer (Corps) module as distinct entry points.
- Rangefinder as a public resource-finding tool.
Non-goals (out of scope for this doc)
- Detailed feature specs → see
/docs/product. - Architecture and tech stack → see
/docs/architecture. - Setup and deployment → see
/docs/operations.
Major modules and how they fit
| Module | Route / area | Purpose |
|---|---|---|
| Clients | /clients | Client and household management |
| Intake | /intake, /intake/self-service | Intake forms and assessments; self-service is public |
| Resources | /resources | Resource library and program management |
| Referrals | /referrals | Referral tracking and coordination |
| Reports | /access-crm/reports | Analytics and reporting dashboards |
| Documents | /documents | Document vault and management |
| Inventory | /inventory | Physical goods tracking and distribution |
| Corps | /corps (via /modules/corps) | Volunteer network and event management |
| Landlord portal | /landlord/* | Landlord-only UI; separate login |
| Rangefinder | /rangefinder/* | Public resource search and eligibility |
| Admin | /admin/* | Admin-only dashboard and configuration |
CRM entry (login) is at /crm/login. Main CRM shell lives under /access-crm and route groups (crm), (corps), (landlord); module access is enforced by middleware and Supabase RLS using organization tier and enabled_modules.
Terminology
- Organization — Tenant unit; users (except admin) are scoped to an organization.
- Tier — Subscription level (basic, standard, premium, enterprise) that defines default module access.
- Module — A feature area (clients, intake, resources, referrals, reports, documents, inventory, corps) that can be enabled or disabled per organization.
- RLS — Row Level Security (Supabase/Postgres) used to enforce data access by role and organization.
Help and end-user documentation
In-app help and end-user guides live under app/help/ (e.g. MDX content). They are separate from this internal /docs tree and are not modified by the documentation reorganization.
Use links in each imported doc to open its source.