Skip to content
All work
Professional services2025Built at AI Alpha Tech

Inquiry to final payment, with nothing falling between systems

Agency CRM tracking the full pipeline — lead, client, estimate, contract, project, task, invoice, payment — plus team, attendance and profit.

Pipeline
8-stage
Invoice status
Derived
Audit trail
Locked
Client
Proceed Digital
Type
Agency CRM
Industry
Professional services
Delivered as
Engineer at AI Alpha Tech
Stack
Next.js, TypeScript, Node.js, Prisma, PostgreSQL

The problem

Agencies lose money in the seams: a lead nobody followed up, an accepted estimate that never became an invoice, a project whose real cost nobody tracked. Each stage typically lives in a different tool, so the pipeline is only visible to whoever last updated a spreadsheet.

What I built

One CRM covering the whole journey. Leads and clients share a table with an `isLead` flag, so converting a lead keeps its entire history. Estimates, proposals and contracts share a status machine where acceptance is terminal and locks the document — an audit trail rather than an editable draft. Invoice status is derived live from payments rather than stored, so fully-paid, partially-paid and overdue can never drift out of sync with reality.

What it does

  • Lead kanban with sources, statuses and one-action conversion
  • Estimates, proposals and contracts with a locking status machine
  • Projects with members, milestones and task-computed progress
  • Invoices with server-computed totals and derived payment status
  • Client portal accounts scoped to their own tickets only
  • Team, attendance, leaves, expenses and profit reporting

The outcome

The pipeline is visible end to end, financial documents are auditable because accepted ones cannot be quietly edited, and project progress is computed from completed tasks rather than someone's estimate of how it is going.

Written about this work

Stop storing what you can derive

Read the article

Running the same problem?

Tell me what the process looks like today. I'll tell you honestly whether software fixes it.

Discuss a Project