Connect all CRM pages to the BFF and CRM service, add module docs, and mark CRM available in the SuperApp catalog. Co-authored-by: Cursor <cursoragent@cursor.com>
81 lines
3.0 KiB
Markdown
81 lines
3.0 KiB
Markdown
# CRM Routing Map
|
|
|
|
**Date:** 2026-07-26
|
|
**Pattern:** Thin `app/crm/**/page.tsx` → `modules/crm/features/**`
|
|
|
|
## Root
|
|
|
|
| Route | File | Module export |
|
|
|-------|------|---------------|
|
|
| `/crm` | — | Redirect via hub link |
|
|
| `/crm/hub` | `app/crm/hub/page.tsx` | `CrmHub` from `pages/hub` |
|
|
|
|
## Sales portal layout
|
|
|
|
`app/crm/sales/layout.tsx` → `createPortalLayout("sales")`
|
|
|
|
## Sales routes
|
|
|
|
| URL | Feature module |
|
|
|-----|----------------|
|
|
| `/crm/sales/dashboard/overview` | `features/sales/dashboards` → `OverviewDashboard` |
|
|
| `/crm/sales/dashboard/sales` | `SalesDashboard` |
|
|
| `/crm/sales/dashboard/pipeline` | `PipelineDashboard` |
|
|
| `/crm/sales/dashboard/leads` | `LeadDashboard` |
|
|
| `/crm/sales/dashboard/activities` | `ActivityDashboard` |
|
|
| `/crm/sales/dashboard/calendar` | `CalendarDashboard` |
|
|
| `/crm/sales/customers` | `features/sales/customers` |
|
|
| `/crm/sales/companies` | `features/sales/companies` |
|
|
| `/crm/sales/contacts` | `features/sales/contacts` |
|
|
| `/crm/sales/leads` | `features/sales/leads` |
|
|
| `/crm/sales/deals` | `features/sales/deals` |
|
|
| `/crm/sales/kanban` | `features/sales/kanban` |
|
|
| `/crm/sales/pipelines` | `features/sales/pipelines` |
|
|
| `/crm/sales/quotes` | `features/sales/quotes` |
|
|
| `/crm/sales/activities` | `features/sales/activities` |
|
|
| `/crm/sales/tasks` | `features/sales/tasks` |
|
|
| `/crm/sales/meetings` | `features/sales/meetings` |
|
|
| `/crm/sales/calls` | `features/sales/calls` |
|
|
| `/crm/sales/emails` | `features/sales/emails` |
|
|
| `/crm/sales/notes` | `features/sales/notes` |
|
|
| `/crm/sales/timeline` | `features/sales/timeline` |
|
|
| `/crm/sales/documents` | `features/sales/documents` |
|
|
| `/crm/sales/campaigns` | `features/sales/scoped` → `CampaignsPage` |
|
|
| `/crm/sales/segments` | `SegmentsPage` |
|
|
| `/crm/sales/tags` | `features/sales/tags` |
|
|
| `/crm/sales/custom-fields` | `features/sales/custom-fields` |
|
|
| `/crm/sales/import` | `ImportPage` |
|
|
| `/crm/sales/export` | `features/sales/export` |
|
|
| `/crm/sales/reports` | `features/sales/reports` |
|
|
| `/crm/sales/analytics` | `features/sales/analytics` |
|
|
| `/crm/sales/automation` | `AutomationPage` |
|
|
| `/crm/sales/notifications` | `features/sales/admin` → `NotificationsPage` |
|
|
| `/crm/sales/roles` | `RolesPage` |
|
|
| `/crm/sales/permissions` | `PermissionsPage` |
|
|
| `/crm/sales/integrations` | `IntegrationsPage` |
|
|
| `/crm/sales/api-keys` | `ApiKeysPage` |
|
|
| `/crm/sales/audit-logs` | `AuditLogsPage` |
|
|
| `/crm/sales/settings` | `SettingsPage` |
|
|
| `/crm/sales/health` | `HealthPage` |
|
|
| `/crm/sales/capabilities` | `CapabilitiesPage` |
|
|
|
|
## Segment files (each route)
|
|
|
|
Every route directory includes:
|
|
|
|
- `page.tsx` — re-export only
|
|
- `loading.tsx` — `LoadingState`
|
|
- `error.tsx` — `ErrorState` + reset
|
|
|
|
Root: `app/crm/layout.tsx`, `app/crm/not-found.tsx`
|
|
|
|
## BFF
|
|
|
|
| Browser path | Upstream |
|
|
|--------------|----------|
|
|
| `/api/crm/*` | `CRM_SERVICE_URL` / `localhost:8003` |
|
|
|
|
## Generator
|
|
|
|
Regenerate routes: `node scripts/generate-crm-routes.mjs`
|