CRM & Memberships
The CRM module is the customer-side counterpart to the Jobs Engine. Every customer record, every loyalty plan, every appointment — wired together so the front desk always has the right context.
Customers
CRM → Customers is your customer database.
Each customer carries:
- Identity — name, phone, email.
- Status — active / deactivated.
- Vehicles — one-to-many to your customer-vehicle records.
- Membership — current plan + expiry, with assignment history.
- Outstanding balance — live from the customer ledger.
- Loyalty / points (if enabled).
- Notes — free-text per customer.
- Atlas sync — opt-in to share vendor / vehicle data into the network intelligence layer.
Customer detail
The customer detail page is a single pane of glass:
- Identity + contact.
- Active vehicles with quick-jump to history.
- Open jobs with status.
- Recent invoices + balance due.
- Purchase history (full ledger).
- Membership status.
- Declined work — DVI recommendations the customer chose not to approve, with follow-up status (great for re-engagement campaigns).
- Appointments — past and upcoming.
Customer ledger
CRM → Customers → Ledger is a double-entry-backed statement of
every charge and payment. Entries are aggregated from invoices,
payments, and credit notes — and reference numbers (not just IDs) are
shown across tables.
Use the ledger for collections, credit decisions, or any time you need a trustworthy "how much has this customer spent / owes."
Purchase history
A chronological view of every job, vehicle, service performed, and linked invoice status — in one place.
Memberships
CRM → Memberships manages your loyalty program.
Plans
Each plan has:
- Name (gold / silver / bronze — your choice).
- Discount % — applied automatically to quotes and invoices.
- Included services (optional — specific service IDs the plan covers free or at reduced cost).
- Priority label — for sorting and segmentation.
- Duration — auto-calculated expiry (
now + duration_days).
Assigning to a customer
From the customer detail page, assign a plan. The system records:
- Plan ID + start date + auto-expiry.
- Assignee (which staff member added the plan).
- History of previous memberships (renewals, upgrades, downgrades).
How discounts flow
When a customer with an active membership is on a quote or invoice:
- The plan's discount % is automatically applied.
- Included services are priced at zero (or the plan-defined price).
- The line shows the membership-discount breakdown for transparency.
No manual application. No "did the advisor remember to apply it?"
Appointments
CRM → Appointments is standalone booking — independent of jobs.
A small shop can run on appointments alone and graduate to full
job-tracking later (a product-tiering lever).
Each appointment has:
- Customer + vehicle (required).
- Service advisor + bay.
- Date / time + requested services.
- Status —
draft→confirmed→completed→cancelled/no-show.
Calendar view
A calendar view shows appointments per day, per advisor, or per bay. Double-booking is rejected at the API — if a bay is taken, the slot isn't offered.
Appointment → Job
A confirmed appointment can be converted to a job in one click.
The conversion creates the job (with customer, vehicle, concern, and
requested services pre-filled) and updates the appointment to
completed.
Atlas (optional, opt-in)
If a customer opts in, their vendor, customer, and vehicle data contributes to the cross-tenant Atlas intelligence layer — a shared knowledge base that improves vehicle specs, vendor intelligence, and market data over time.
Opt-in is per-customer and revocable.
Tips
- Single pane of glass: the customer detail page is designed so the front desk can answer any question (balance, last visit, membership, upcoming appointment) without switching tabs.
- Declined work pipeline: declined DVI recommendations persist on the customer record across visits — a built-in upsell pipeline (who's overdue for what).
- Atlas opt-in is granular — share only what you choose.
Next: Staff & Payroll, or the user journey.