Case Studies / CRM operations desk

Reference implementation

A CRM the finance team
can close against

This write-up describes the operations desk we ship for sales and finance teams that have outgrown a spreadsheet and a vendor default. The live interface below is a deterministic simulator — not a named client account. Every number you see is a simulation parameter.

Six sections

What this case actually covers

Named client write-ups wait for approval. This page is the reference implementation: the same six sections, written against a desk you can click through.

Context and constraints

An eight-seat sales team running pipeline in a spreadsheet, invoices in a separate ledger, and no shared account identifier. The constraint is not “more fields” — it is one model that sales and finance can both close against, with RBAC so a shared login is not the access model.

What was actually built

An operations desk with four working surfaces: overview KPIs and activity, a five-stage pipeline board, a deal register, and invoice aging. Opening a deal shows owner, source, probability and the next agreed action. Won deals stay on the same account as their invoices.

Architecture decisions

One account entity for company, deal and invoice — not a CRM sync job into an ERP. Stage changes are events, not overwritten columns, so the audit trail is the product. The public demo is a deterministic simulator so the page can be crawled and clicked without a backend.

Technology stack

React 19, TypeScript and the same design-system primitives as the rest of the site: Card, Table, Tabs, Dialog, Badge, Progress. Production builds add a Node.js integration layer, PostgreSQL and an event log. The demo does not call those services.

Verified outcome

There is no named-client outcome on this page. What you can verify is the interface: pipeline value, win rate, stale follow-ups and receivables move on a 20-minute tick. If a later client write-up reuses this desk, it will say so and only publish numbers they confirm.

What we would change

The demo still hides field-level RBAC and email/telephony adapters behind copy. In a delivery we would surface those as first-class screens — permission matrix and a replayable integration log — instead of leaving them in the architecture section.

Live demo

The desk, running

Simulator parameters: 8 seats, 18 open-deal slots, €420k quarterly target, 20-minute ticks. No client data, no live ledger, no outbound mail.

Interactive demo. Figures are synthetic and do not represent a named client account.
Northwind operations desk8 seats · 18 open deal slots · €420.0k quarterly target
7 stale follow-upsLiveMon 09:00
Open pipeline100%
€460.3kof €420.0k
Win rate
67%€70.1k won this cycle
Open deals
15Active opportunities excluding won and lost
ReceivablesOverdue
€42.6kSent and overdue invoices still open
Closed revenue, last eight weeks

Synthetic weekly bookings used to exercise the chart density, not a live ledger.

W-8W-7W-6W-5W-4W-3W-2W-1
Recent activity

Calls, mail, meetings and stage changes generated by the simulator.

  • Sent a follow-up email
    Helios Grid
    −1h
  • Booked a working session
    Nordic Charge
    −1h
  • Logged a call
    Vistula Media
    −2h
  • Booked a working session
    Rhine Storage
    −3h
  • Sent a follow-up email
    Baltic Ports
    −4h
  • Booked a working session
    Atlas Fleet
    −5h
  • Sent a follow-up email
    Lumen Labs
    −6h
  • Booked a working session
    Silesia Steel
    −7h
FAQ

Reading this case

No. It is a reference implementation of the CRM operations desk. Named write-ups go live only after the client confirms every sentence.
No. They are simulation parameters: eight seats, a €420k quarterly target and a 20-minute tick. The purpose is to show layout and update behaviour.
An integration layer over email, telephony and the existing ledger, field-level RBAC, an audit log, and a cutover path from the spreadsheet.
Yes. The usual first deliverable is the account model and the four surfaces you see here, wired to your stages rather than a vendor default.

Outgrown the spreadsheet stage?

Describe the pipeline, the ledger it does not talk to, and where hand-offs break. We map that to a concrete account model within 24 hours.