NexCRM
Who it's forPricing
Log inStart free trialStart Your 30-Day Free Trial

Documentation

v2026.07

NexCRM Documentation

Product reference, architecture, and developer guide. Updated July 6, 2026.

Start free trialLog in to app

On this page

Executive SummaryProblem StatementUsers & PersonasSolution OverviewPlans & Feature GatesArchitectureAuth & SecurityDatabaseAI FeaturesDeveloper GuideSuccess MetricsRoadmap & Out of Scope

Executive Summary

What NexCRM is and who it serves.

Product overview

NexCRM is a workspace-first CRM SaaS for sales and operations teams who need structured follow-up, pipeline visibility, and AI-assisted decision support — without enterprise bloat. Leads become follow-ups; follow-ups become revenue.

In one sentence

We are building a multi-tenant CRM with Supabase-backed persistence, plan-tier feature gating, and human-in-the-loop AI drafts so reps spend less time on admin and more time closing.

Primary users
Sales reps, sales managers, and ops coordinators in SMB teams (1–50 people).
Core value
Single workspace for leads, pipeline, contacts, tasks, and revenue workflows with optional AI assistance.
Deployment
Next.js frontend monorepo; Supabase for auth, data, and RLS; MiniMax for AI generation.

Problem Statement

The customer pain NexCRM addresses.

Who has this problem?

Small and mid-size teams running revenue on spreadsheets, email threads, and ad-hoc notes. They lack a shared system of record for leads, deals, and follow-ups — especially when proposals, projects, and campaigns enter the picture.

What is the problem?

  • Leads and deals live in disconnected tools; pipeline truth is unclear.
  • Follow-ups slip because tasks and calendar events are not tied to CRM records.
  • Reps rewrite the same emails, summaries, and proposals from scratch.
  • Managers cannot see workload, risk, or campaign performance in one place.
  • Generic CRMs are either too heavy (Salesforce) or too shallow (spreadsheet + inbox).

Why it is painful

StakeholderImpact
Sales repMissed follow-ups, duplicate data entry, slow proposal turnaround
Sales managerNo reliable pipeline view; hard to coach or forecast
Ops / deliveryProjects and client updates disconnected from sales context
BusinessLower conversion, churn after poor onboarding, support burden

Users & Personas

Who we build for and their jobs-to-be-done.

Primary: Account Executive Alex

Role
Individual contributor closing deals
Goals
Know what to do next, draft follow-ups fast, move deals through stages
Pain points
Context switching, manual note-taking, unclear priorities
JTBD
When a lead responds, I want the next action surfaced so I can reply within minutes, not hours.

Secondary: Sales Manager Maya

Role
Leads a team of 3–15 reps
Goals
Pipeline visibility, campaign oversight, team performance
Pain points
Stale CRM data, no audit trail, fragmented reporting
JTBD
When reviewing the week, I want accurate pipeline and task completion so I can forecast and reassign work.

Tertiary: Workspace Owner Omar

Role
Founder or ops lead who owns the workspace
Goals
Invite team, configure pipeline, control billing and integrations
JTBD
When onboarding a new hire, I want them in the workspace with the right role in under five minutes.

Solution Overview

Modules, flows, and how the product fits together.

Core modules

ModuleRouteMin planDescription
Dashboard/appLiteKPIs, charts, and items needing attention
Leads/app/leadsLitePre-qualification list; convert to contact or deal
Pipeline/app/pipelineLiteKanban deal board with stage management
Contacts/app/contactsLitePeople records with timeline and AI actions
Companies/app/companiesLiteAccount/company records (DB: accounts)
Tasks/app/tasksLiteFollow-ups with priority, due dates, assignments
Calendar/app/calendarBusinessMeetings and deadlines
Proposals/app/proposalsBusinessSales proposal tracking
Projects/app/projectsBusinessInternal company project management
Reports/app/reportsLiteAnalytics and charts
Automation/app/automationEnterpriseWorkflow rules and status toggles
AI Workspace/app/aiBusinessPrivate AI threads, CRM context, and approval-gated operator runs (MiniMax)
NexAgentApp shell widgetBusinessFloating mascot guide — KB retrieval, workspace snapshots, quick AI actions, navigation tools

Typical revenue flow

  1. Capture a lead from inbound or outbound activity.
  2. Qualify and convert to a contact linked to a company account.
  3. Create a deal on the pipeline and move through configured stages.
  4. Schedule follow-ups as tasks and calendar events.
  5. Generate proposals and track project delivery after close.
  6. Run campaigns for nurture or recovery; review reports and automation.

Settings & administration

SettingRouteMin plan
Profile/app/settings/profileLite
Pipeline stages/app/settings/pipelineLite
Billing/app/settings/billingLite
Notifications/app/settings/notificationsLite
Team & invitations/app/settings/teamEnterprise
Integrations/app/settings/integrationsEnterprise
Audit log/app/settings/auditEnterprise

Plans & Feature Gates

Lite, Business, and Enterprise tiers.

Plan tiers

Lite
Core CRM: dashboard, leads, pipeline, contacts, companies, tasks, reports, basic settings.
Business
Adds calendar, proposals, projects, campaigns, and AI assistant.
Enterprise
Adds automation, team management, integrations, and audit log.

In /app, the plan tier always comes from the active workspace (workspaces.plan_tier); changes go through manual payment orders on /billing/plans that an admin verifies and activates.

How gating works

  • Navigation items declare a minimum tier in lib/navigation.ts.
  • FeatureGate hides or upgrade-prompts UI for locked features; AuthenticatedRouteGuard keeps /app behind sign-in.
  • Authenticated workspaces load plan from workspaces.plan_tier; plan changes are ordered on /billing/plans and activated by admin payment verification.
  • Server-side authorization uses RBAC permissions — plan gating reflects the server-resolved workspace plan_tier and is not the security boundary.

Architecture

Monorepo layout, patterns, and data flow.

Tech stack

LayerTechnology
MonorepoTurborepo, npm workspaces
FrameworkNext.js 16 (App Router), React 19
LanguageTypeScript 5.8
StylingTailwind CSS v4, Radix UI, Framer Motion
FormsReact Hook Form + Zod
Database & authSupabase (SSR cookies, RLS)
AIMiniMax M2.5 (Gemini optional); optional n8n webhooks
Shared package@nexcrm/shared — Zod schemas and query keys
TestingVitest, Testing Library, Playwright E2E

Repository structure

nexcrm/
├── apps/web/                 # Next.js frontend (@nexcrm/web)
│   ├── src/app/              # Routes (marketing, auth, /app CRM)
│   ├── src/components/       # UI by domain
│   ├── src/data/schemas/     # Zod domain schemas
│   ├── src/lib/              # auth, ai, supabase, routes, documentation
│   ├── src/modules/          # Feature MVC modules
│   └── content/nexagent/     # NexAgent KB markdown chunks
├── packages/shared/          # @nexcrm/shared
├── supabase/migrations/      # SQL schema + RLS
├── PLAN/                     # PRDs and implementation handoffs
└── deploy/                   # VPS bootstrap, nginx

Module pattern (MVC)

Features follow a scalable MVC layout under apps/web/src/modules/. Today most persistence is centralized in modules/crm/ with thin per-feature barrels re-exporting server actions.

modules/<feature>/
  model/           # Zod + view types
  application/     # Use cases (planned)
  infrastructure/  # Repositories + Supabase mappers
  interface/       # Server actions + queries
  presentation/    # Optional presenters

Request & mutation flow

  1. UI or CrmStoreProvider calls a server action.
  2. Action calls requireWorkspaceScope() for tenant context.
  3. Supabase client (lib/supabase/server) executes the query.
  4. Result returns as RepositoryResult<T> ({ ok, data } | { ok: false, error }).
  5. TanStack Query cache invalidation refreshes reads after mutations.

Auth & Security

Identity, tenancy, roles, and enforcement layers.

Identity & tenancy

  • Supabase Auth with SSR cookie sessions; profiles auto-created on signup.
  • Workspace-first: every CRM row has workspace_id.
  • Signup bootstraps a workspace and owner membership.
  • Additional users join via email invitation (workspace_invitations) and accept at /invite.

Roles (RBAC)

RoleScope
ownerFull workspace control — billing, team, audit, all CRM writes
sales_managerCRM read/write, campaigns, automation, reports; no member management
salespersonAssigned CRM work, limited reports, pipeline read
opsOperational entities: companies, contacts, tasks, projects

Enforcement layers

  1. Middleware (proxy.ts) — session required for /app/**
  2. Server actions — workspace scope + permission checks (can, requirePermission)
  3. Supabase RLS — is_active_workspace_member() on all CRM tables
  4. UI — nav and plan gating (presentation only, not authorization)

Database

Supabase tables, entities, and RLS.

Auth & tenancy tables

TablePurpose
profilesUser display data
workspacesCRM tenant boundary; plan_tier (lite | business | enterprise)
workspace_membershipsRole + status per user/workspace
workspace_invitationsEmail invites with token hash
audit_logsSecurity and admin audit trail
workspace_data_exportsOwner GDPR snapshots (JSON; expires after 7 days)

CRM core tables

TablePurpose
accountsCompanies
contactsPeople linked to accounts
leadsPre-qualification leads
pipeline_stagesDeal stages (seeded per workspace)
dealsPipeline opportunities
tasksFollow-ups and to-dos
calendar_eventsMeetings and deadlines
timeline_eventsContact activity notes
projectsDelivery projects with milestones JSON
proposalsSales proposals
campaign_workflowsEmail campaigns: versioned workflows, runs and messages (legacy `campaigns` table is historical)
automation_definitionsWorkflow automation rules
integrationsThird-party connections
notificationsPer-user in-app notifications

AI tables

TablePurpose
ai_jobsAI generation job tracking
ai_draftsHuman-reviewable AI outputs
ai_usage_eventsToken, cost, and latency tracking

Migration 20260704_004_ai_decision_support.sql is marked as not auto-applied. Apply manually when enabling live AI persistence.

AI Features

Decision support, drafts, and human-in-the-loop workflow.

Philosophy

AI in NexCRM is decision support, not autopilot. Every generation produces a draft that a human must approve, dismiss, or execute. The assistant and operator paths use MiniMax only; when it is not configured, requests fail with a clear error instead of falling back to another provider or mock content.

Eight AI capabilities

FeatureSourceOutput
lead_summaryLeadSummary, signals, score
follow_up_draftLead / contactEmail or message draft
next_best_actionLead / dealRecommended action + task title
proposal_draftDeal / contactStructured proposal sections
project_task_generatorProjectSuggested task list
meeting_notes_summaryCalendar eventKey points, decisions, action items
client_update_draftProject / contactClient update text
delay_risk_alertProjectRisk items with mitigation

Configuration

# apps/web/.env.local
AI_FEATURES_ENABLED=true
AI_PROVIDER=minimax       # minimax (default) | gemini | auto
MINIMAX_API_KEY=...
MINIMAX_MODEL=MiniMax-M2.5

# Optional async workflows
N8N_WEBHOOK_BASE_URL=...
N8N_WEBHOOK_SECRET=...

Draft lifecycle

  1. User triggers generateAiDraftAction from an AI action surface.
  2. Provider (MiniMax) returns structured content; job recorded in ai_jobs.
  3. Draft stored in ai_drafts with status draft.
  4. User approves (approveAiDraftAction), dismisses, or executes tied CRM mutation.
  5. Usage tracked in ai_usage_events for cost controls.

NexAgent floating guide

NexAgent is a Business-tier floating widget in the app shell (not a separate route). It answers product how-to questions via markdown KB retrieval (apps/web/content/nexagent/), summarizes workspace CRM data, suggests navigation, and can trigger existing AI draft tools — always with human approval for writes.

  • Widget: components/nexagent/ — mascot, chat panel, quick actions, draft cards.
  • Agent loop: lib/nexagent/agent.ts — KB search, workspace snapshot, tool calls (navigate, search entities, run AI draft).
  • Server actions: modules/nexagent/interface/nexagent.actions.ts.
  • Tier-gated via isFeatureEnabled("assistant", plan); snooze and panel state persist in localStorage.

vs. the AI Workspace

/app/ai is the full-page AI Workspace: private threads, CRM context, and approval-gated operator runs. NexAgent is the same assistant surfaced as an in-context guide; see PLAN/ai-workspace for scope.

Developer Guide

Setup, commands, and key file map.

Local setup

# From repo root
npm install
cp apps/web/.env.example apps/web/.env.local
# Fill in NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY
npm run dev    # http://localhost:3000

Without Supabase env vars, authenticated CRM flows will not load. Configure NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY before signing in.

Commands

CommandDescription
npm run devStart apps/web dev server
npm run buildProduction build
npm run testVitest unit tests
npm run test:e2ePlaywright E2E (from apps/web)

Key files

ConcernPath
Routes registryapps/web/src/lib/routes.ts
Navigation + tiersapps/web/src/lib/navigation.ts
Feature gatingapps/web/src/lib/feature-gates.ts
CRM server actionsapps/web/src/modules/crm/interface/crm.actions.ts
AI server actionsapps/web/src/modules/ai/interface/ai.actions.ts
NexAgent moduleapps/web/src/modules/nexagent/
NexAgent KB chunksapps/web/content/nexagent/
Product docs sourceapps/web/src/lib/documentation/content.ts
CRM shell provider (realtime + cache invalidation only)apps/web/src/components/app-shell/crm-store-provider.tsx
CRM query hooksapps/web/src/lib/crm-query-hooks.ts
Auth permissionsapps/web/src/lib/auth/permissions.ts
DB typesapps/web/src/lib/supabase/database.types.ts
Migrationssupabase/migrations/
Planning packagesPLAN/README.md

API routes

RoutePurpose
/api/auth/bootstrapWorkspace bootstrap on signup
/api/auth/bootstrap-adminAdmin bootstrap
/api/auth/inviteTeam invitations
/api/auth/invite/previewInvitation preview for /invite
/api/auth/invite/acceptAccept invitation and join workspace
/api/auth/membersMember management
/api/auth/update-profileProfile updates
/api/ai/n8n-callbackn8n async AI workflow callback

Success Metrics

How we measure product success.

Primary metrics

MetricDefinitionTarget direction
Activation rate% of new workspaces with first CRM action within 24hIncrease
Follow-up completion% of tasks completed by due dateIncrease
Pipeline velocityAverage days in stage before won/lostDecrease
AI draft approval rate% of AI drafts approved vs dismissedMonitor quality

Guardrail metrics

  • Sign-up conversion — do not add friction to auth flows.
  • Page load and interaction latency — keep dashboard snappy.
  • AI cost per workspace — stay within cost-controls budgets.

Roadmap & Out of Scope

What is planned, partial, and explicitly excluded.

Implemented

  • Full CRM UI shell with 20+ app pages
  • Supabase schema, RLS, and central CRM server actions
  • Auth middleware, workspace context, RBAC permission map
  • AI draft pipeline (MiniMax, no fallback)
  • NexAgent floating guide (KB retrieval, workspace tools, quick AI actions)
  • Workspace plan_tier persistence and owner plan switcher
  • Invitation accept flow at /invite
  • Marketing documentation page at /documentation
  • Plan-tier gating and Playwright smoke suite

In progress / partial

  • NexAgent v2 — expanded KB, richer tool orchestration (PLAN/nexagent-floating-guide)
  • /app/assistant — redirects to the AI Workspace at /app/ai
  • Projects — list and AI actions; create/edit/delete and milestone mutations planned
  • Feature modules — barrels today; full per-feature MVC layers planned
  • AI migration 004 — manual apply for persistence tables
  • HeroUI v3 styling migration and UI/UX refresh

Out of scope (current release)

  • apps/api backend service (BullMQ, Redis) — planned separately
  • Real billing and payment integration — demo UI only
  • Mobile-native apps — responsive web first
  • SMS and WhatsApp campaign steps (not product channels)
  • Custom per-tenant AI model fine-tuning

Planning packages (PLAN/)

PackageStatus
System Completion RoadmapReady for execution orchestration
NexAgent Floating Guidev1 shipped; v2 in review
Sir-Ali AI Decision SupportReady for review
Supabase Data MigrationReady for execution (largely done)
Supabase Auth & RBACReady for execution (largely done)
App UI/UX RefreshReady for execution
Scalable MVC Clean ArchitectureReady for execution
HeroUI v3 Styling MigrationReady for execution
Vite to Next.js MigrationComplete

Need implementation detail?

Feature-specific PRDs, ERDs, acceptance criteria, and Cursor handoff prompts live in the repository under PLAN/. Start with PLAN/README.md for the full package index.

View pricingUse cases
Nexvision Innovations

NexCRM AI is built by Nexvision Innovations.

Level 24, Philippine Stock Exchange Tower, Taguig, 1634 Metro Manila, Philippines

(02)85384937

NexCRM

  • Pricing
  • Use cases
  • Product guide
  • Book a Demo
  • Start free trial

Our Company

  • Home
  • About Us
  • Blogs
  • Portfolio
  • Contact Us

Products

  • NexHRIS
  • NexCRM
  • NexLogistics

©2026 Nexvision Innovations.