I build custom CRMs - pipelines, roles, client portals, quoting, and automations - so HVAC, tax, and ops teams stop running the business from shared sheets and inboxes.
When the CRM is a Google Sheet, nobody owns data quality and every new hire invents a new column. Custom CRM work means contacts, deals, tasks, and permissions that match how your office actually sells and serves.
For Lehigh HVAC the CRM was the system of record for inbound and outbound: customer management, job/service tracking, follow-ups, campaign lists, and call outcomes from Retell agents. For Badie Alliance Tax Service I replaced Wix and spreadsheets with client and EFIN portals, smart quoting, refund tracking, and staff Kanban across 50 states.
I default to Next.js with a Python or Node API, or I extend GHL when a no-code CRM is enough. The decision is what your team will maintain - not what looks clever in a demo.
Who it is for
- Home-service and tax businesses stuck in spreadsheets
- Teams that outgrew GHL or need a vertical CRM
- Operators who need portals for clients or partner EFIns
What you get
Core CRM objects
Contacts, jobs/deals, tasks, notes, and role-based views your staff can trust.
Portals when needed
Client or partner logins, document upload, and status without emailing PDFs all day.
Automation hooks
Webhooks, Make/Zapier, or Retell so calls and forms update the same records.
How I work
Map the sheet
What columns exist today, who edits them, and what breaks when two people type at once.
Ship a slice
Login, one pipeline, import, then expand modules.
Handover
Training notes, admin roles, and the next three features worth building.
What this looked like for Lehigh HVAC
CRM modules for customers, jobs, follow-ups, and campaign lists - plus stored call outcomes from Retell. Inbound front desk and outbound duct-cleaning campaigns both read and write the same records. Make.com syncs voice events when native hooks are not enough.
Proof
- Lehigh HVAC internal CRM + Retell voice agents
- Badie Alliance Tax CRM: Next.js/Django, client + EFIN portals, 97% success across 50 states
- Role-scoped history and dashboards on insurance and ops tools
Case studies
- Hire brief: CRM + AI agents
- From spreadsheets to a production CRM
- Lehigh HVAC CRM + Retell
- Badie Alliance Tax CRM
Stack and docs
Related
Common questions
Should I use GoHighLevel or a custom CRM?
GHL when marketing and simple pipelines are enough. Custom when you need vertical logic, portals, or reporting GHL fights you on. I build both paths.
Can you migrate our spreadsheet?
Yes - import, clean duplicates, and map columns to real objects so day one is not empty.
Do CRMs include voice agents?
Often. Front-desk and outbound Retell agents write outcomes back into the CRM. See voice AI and automation services when phone is in scope.