← All products

Sales & Customer Operations

CRM

A CRM that grows with your suite — not against it.

CRM

Overview

Sales and front-office teams need more than a contact list. They need a pipeline that converts leads into customers, quotes into orders, and campaigns into revenue — while staying connected to phone calls and checkout events in sibling suite products. CRM is a NestJS + Next.js product rebuilt as an independently entitleable module with its own API, portal, contracts, billing SKU, and Postgres tables prefixed crm_. It is the most feature-rich sales domain in the suite, with forms, funnels, reputation, channels, and workflows alongside classic B2B entities — customers, contacts, leads, opportunities, quotes, and sales orders.

Ideal for

Sales reps running daily pipeline and quotes, sales managers reviewing forecast and territories, support agents handling tickets tied to customer records, and suite operators entitling CRM alongside AI Receptionist and POS.

Problems it solves

  • ▸Leads from ads, walk-ins, and referrals sit in inboxes and spreadsheets — nobody sees the full pipeline
  • ▸Receptionist books an appointment or POS completes a sale, but CRM never hears about it and context is lost
  • ▸Monolithic CRM forces an all-or-nothing buy when you want pipeline and quotes today, not a full ERP rewrite
  • ▸Approved quotes get re-keyed into orders — line items drift and margin visibility disappears
  • ▸Campaigns, tickets, and conversations live outside CRM, so customer history is fragmented

Features

  • ▸Core sales entities — customers, contacts, leads, opportunities, quotes, orders, activities, campaigns
  • ▸Extended modules — tickets, tags, segments, workflows, forms, funnels, reputation, channels
  • ▸Sales pipeline — lead to customer or opportunity to quote to sales order with line items
  • ▸Inbound webhooks — Receptionist and POS events feed CRM without shared databases
  • ▸Enterprise forms — sectioned FormSchema for complex B2B customer and contact profiles
  • ▸Migration helpers — import and cutover from legacy stores or external CRMs

Modules

Core sales entities

Customers, contacts (import/export/merge/duplicates), leads (convert to customer or opportunity), opportunities (pipeline/forecast), quotes with line items, sales orders (approve/ship/invoice), activities, and campaigns (launch/pause/complete).

Extended CRM modules

Tickets, tags, segments, custom fields, conversations, workflows, calendars and bookings, forms (including public token submit), funnels, reputation reviews, channels, webhooks, API keys, and GDPR erase.

Sales pipeline

Lead → Customer / Opportunity → Quote (+ lines) → Sales Order (+ lines). Extended entities include customer groups, price lists, sales territories, and return orders.

Inbound integrations

Receptionist and POS inbound webhooks notify CRM of calls, bookings, and completed sales. Service links register sibling product URLs for federation through Suite Platform.

Enterprise forms

Customer and Contact use the sectioned FormSchema pattern for structured data capture across complex B2B profiles.

Migration and cutover

Helpers for importing and transitioning from legacy stores or external CRMs without losing pipeline history.

Benefits

  • ▸Full lead-to-order pipeline in one product — not spreadsheets and disconnected tools
  • ▸15+ entity types and modules including GHL-style forms, funnels, and campaigns
  • ▸Zero shared database tables with Receptionist, POS, or Finance — webhooks and service links only
  • ▸Live Receptionist and POS event ingestion via inbound webhooks
  • ▸Standalone runnable product — entitle and use CRM without other suite modules
  • ▸Weighted forecast and territory views for sales leadership

Use cases

  • ▸Lead from a Receptionist call: inbound webhook creates or updates the contact and places them in the pipeline stage your rules define
  • ▸Rep converts a hot lead: convert to opportunity, attach activities, and move through forecast stages after two site visits
  • ▸Quote approved, order shipped: send a quote with line items, convert to sales order on approval, track approve/ship/invoice statuses
  • ▸Campaign launch Monday: email/SMS campaign from CRM with responses attached to contact records and tickets for follow-up
  • ▸Manager reviews forecast: weighted opportunities by stage, rep, and territory with quotes aging past SLA surfaced for action

Implementation

1. Entitle CRM

Suite Platform operator enables the crm SKU and registers the CRM service link for handoff and federation.

2. Configure pipeline

Set stages, territories, price lists, and custom fields for your sales motion and forecast model.

3. Connect siblings

Register Receptionist and POS webhooks so calls and sales flow into CRM automatically.

4. Run the cycle

Capture leads, convert, quote, order, and campaign — all from the CRM portal with zero shared DB tables with siblings.

Technologies

NestJS APINext.js portalTypeScript contractsPostgreSQL / Supabase (crm_* schema)JSON file store (local dev)Inbound webhooks (REC/POS)

FAQ

Is this a GoHighLevel replacement?

It covers core GHL-style modules (forms, funnels, campaigns, conversations, reputation) plus classic B2B quote-to-order. Depth varies by module — contact us for current coverage on your required workflows.

Does CRM share a database with Receptionist?

No. Products link via Suite Platform service links and webhooks. Each owns prefixed tables (crm_*, etc.).

Can I run CRM without Receptionist?

Yes. CRM is fully standalone. Webhooks add value when Receptionist or POS are linked.

What is the sales pipeline flow?

Lead → Customer or Opportunity → Quote (+ lines) → Sales Order (+ lines), with activities and campaigns throughout.

How does Finance integration work?

Sales order invoice intent can post to Finance when that module is entitled and linked. Cross-module posting depends on Finance being configured — inventory reservation from sales orders is not documented as complete.

How does local dev work?

CRM runs locally with a dev API key, demo tenant, and JSON file store by default. Point CRM_STORE and CRM_DATABASE_URL at Postgres when you need production-like persistence.

Give your sales team a connected pipeline

Entitle CRM today and link AI Receptionist and POS when you are ready — phone calls and checkout events flow into customer records without another silo.

Contact me →