You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Compass is a multi-tenant SaaS CRM for Indian real estate vendors. It is a sales-led platform: vendors are provisioned by the platform team after KYC and payment, and then run their full lead-management workflow from a single tenant-scoped admin app.
Self-signup is retired. New vendors enter as Prospects, are guided through KYC document upload → invoice → payment → activation, and only then receive a magic-link activation email. State machine:
All features — workflows + SLA, custom roles, audit logs, integrations, API access
Plan limits (max users / leads / projects) live on Plan; per-tenant overrides on Subscription.extra_users / Subscription.extra_leads. See Plans & Feature Flags.
Lead Lifecycle
NEW → INTERESTED → SITE_VISIT_SCHEDULED → SITE_VISIT_DONE → NEGOTIATION → QUALIFIED
→ LOST
→ JUNK
Authorization
Server-side dynamic RBAC: TenantRole × Permission (resource:action) × UserRole (with scope: TENANT | COMPANY | PROJECT | TEAM) + UserPermission overrides. Tenants have a policy_version that the admin client polls to detect permission changes. Plan-feature gates use DevCycle (@RequireFeature(...) server, usePlanFeature(...) client).
Multi-Step Workflows + SLA
WorkflowDefinition → WorkflowSteps execute via the workflow.execute queue on lead triggers. SlaPolicy defines target response times; the workflow.sla watcher escalates on breach. Gated by the multi_step_workflows and sla_configuration features.
Running Locally
# 1. Configure env files in server/, admin/, super-admin/# 2. Bring up the stack
docker compose up -d
# 3. Run migrations
docker compose exec server npx prisma migrate deploy
# 4. Seed plan catalog + super-admin
docker compose exec server npx ts-node src/scripts/seed-super-admin.ts