Skip to content

Sales CRM-lite

The salesperson role is the underserved persona today. These items make the rep self-sufficient and the manager actually managing.

Related code: app/graphql/quotes/, app/graphql/orders/, app/graphql/salespersons/, app/graphql/clients/.

Items

  • Pipeline view — open quotes by stage, won/lost, no-touch in N days.
  • Acceptance: kanban + list view, per-rep filter, weighted-amount totals.
  • Quote follow-up automation — "no response in N days → reminder via configured channel".
  • Acceptance: cadence per-tenant; respects per-client default channel; rep can pause.
  • Visit planning — nearest clients on a map (uses addresses/).
  • Acceptance: map screen, route by proximity, "check-in" log per visit.
  • Commission preview mid-month so reps don't wait for close.
  • Acceptance: extend getCommissionPerSalespersonReport with as-of-today projection.
  • Mobile-first rep app.
  • Acceptance: PWA optimised for one-thumb: search client, draft quote, signature on screen, send by WhatsApp + email immediately.
  • Lead inbox (incoming inquiries that aren't yet clients).
  • Acceptance: lightweight Lead model; convert-to-client mutation; tracks source.
  • Quote acceptance link for clients (no login).
  • Acceptance: tokenised public URL; client can view, sign on screen, accept; backend creates the order.
  • Per-client price book — surface the client-specific discounts you already have.
  • Acceptance: client detail tab shows all items_client_discount_* rows with edit affordance.
  • Salesperson leaderboards & targets.
  • Acceptance: monthly target per rep, vs-actual chart, configurable scope (revenue, gross margin, units).

Shipped

None yet.