CRM platform

Pulse CRM for Settle Law Firm

A legal-operations CRM that connects matters, tasks, time, correspondence, documents, billing, registries, and reporting inside one daily workspace.

The problem

Deadlines, client records, matters, correspondence, time, billing and specialist registries needed one operating system, without flattening the differences between them.

Built with

Client
Settle Law Firm
Year
2025
Role
Product architecture, backend, frontend workflows, and UI system
Status
Live, private client data protected

Screens

  • The Pulse CRM daily workspace shown on desktop and mobile
  • The top of the Pulse dashboard with active matter counts above a four-column task board
  • The matters table listing each matter with client, status and dates
  • The clients table with contact details, addresses and type badges
  • The billing register showing invoices in four currencies with filtered totals
  • The trademark registry listing applications with next actions and days remaining
  • The power of attorney register with signing dates, legalisation and validity
  • The activities view listing time entries with durations, rates and amounts

Desktop and mobile

The legal-operations CRM on desktop and mobile, on a seeded demo firm: matters, tasks, time and billing in one daily workspace.

Daily workspace

Active matters and today's load, then tasks split across overdue, today, tomorrow and the next seven days.

Matters

Every matter with its client, status and dates, filterable by state.

Clients

The client register, with contact, address and a working note on each row.

Billing

One NNN-STL sequence across four currencies, with paid, pending and overdue in view.

Trademark registry

Applications by number and class, each with its next action and the days left to take it.

Powers of attorney

Each power of attorney with its dates, legalisation state and days remaining.

Time tracking

Time entries against matters, with rate, amount and billing state.

1 / 8

System

Client Matter Tasks and activities Documents and correspondence Legal registries Billing and reporting time and completion billing context Connected legal-operations model Client Matter Tasks and activities Documents and correspondence Legal registries Billing and reporting time and completion billing context Connected legal-operations model

Features

Billing restricted to directors

Every billing route returns 403 to anyone but a director.

Sequential invoice numbers across deletions

One NNN-STL sequence. Deleting an invoice renumbers the rest, transactionally.

Currency determines document language

USD and EUR issue in English, RUB and UZS in Russian.

Bank details frozen per invoice

Each invoice keeps the bank snapshot it was generated with.

Bulk marking invoices as paid

Mark many invoices paid at once, one shared date or one each.

DOCX as the authoritative artifact

The DOCX carries signature and stamp. The HTML preview never does.

Decisions and tradeoffs

Problems we hit

Invoice renumbering on delete and restore

Problem

Deleting an invoice from the middle of a sequence requires shifting all higher numbers down immediately. Restoring it requires shifting them back up.

Our solution

Transactional, per-row renumbering

Both operations are transactional, fingerprint-confirmed, and preserve external file references, making the renumbering a precise per-row operation rather than a bulk recalculation.

Runtime image injection causing layout drift

Problem

An earlier approach injected signature and stamp images into the DOCX at generation time, adjusting geometry at runtime. This caused layout drift.

Our solution

Geometry lives in the template

The geometry is now embedded in the DOCX templates, and runtime injection, rotation, or floating-anchor manipulation is prohibited.

Floating-point rounding in invoice amounts

Problem

Invoice amounts were stored as floating-point REAL columns, which introduces rounding errors in currency arithmetic.

Our solution

Integer minor units as canonical

The canonical representation is now integer minor units. Application arithmetic uses Decimal with explicit half-up conversion, while the legacy REAL columns remain as temporary dual-write shadows during migration.

Deleted bank settings hiding invoice rows

Problem

If a bank setting referenced by invoices is permanently deleted, those invoice rows must remain visible to directors and retain their frozen snapshot.

Our solution

Unlink, never remove

The operation unlinks the setting from the invoice rows but does not remove them, so no financial record disappears with its reference.

Decisions we made

Operational density over a sparse interface

Decision

The main product decision was to prioritize operational density over a sparse marketing-style interface.

Why we made it

Staff need to scan lists, compare states, and move between linked records quickly. The navigation therefore remains visible and predictable, while filters and creation actions sit close to the data they affect.

Domain registries, not generic notes

Decision

The second decision was to extend a common CRM core with domain-specific registries instead of forcing legal work into generic notes.

Why we made it

Trademarks, watch notices, powers of attorney, leads, and correspondence have their own entry points but remain part of the same product model.

Responsive access, not a reduced product

Decision

Responsive behavior was treated as useful access, not a separate reduced product.

Why we made it

The mobile surface preserves dashboard and task visibility, while the fuller desktop layout remains the main environment for record-heavy work.

Next

Contact

Let's talk.

For professional opportunities, collaborations, or selected freelance work.

Open to conversations Frankfurt, Germany Europe/Berlin