From 6eac65cbe9fe71f3e175f4655675bc35e54e0e93 Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Mon, 24 Nov 2025 16:35:50 -0500 Subject: [PATCH] feat: Adds initial note --- 20251124165555.Service_CRM_Plan.md | 148 +++++++++++++++++++++++++++++ justfile | 16 ++++ 2 files changed, 164 insertions(+) create mode 100644 20251124165555.Service_CRM_Plan.md create mode 100644 justfile diff --git a/20251124165555.Service_CRM_Plan.md b/20251124165555.Service_CRM_Plan.md new file mode 100644 index 0000000..a525bcc --- /dev/null +++ b/20251124165555.Service_CRM_Plan.md @@ -0,0 +1,148 @@ +# Service CRM Plan + +My thoughts / planning around building a custom CRM software specific to HVAC. One of the problems I +have with many of the CRM's is they try to shoehorn themselves into too many industries, which makes +it a subpar experience for everyone. + +This document is me starting list out and explore ideas surrounding what _I_ need in a CRM. While it +should hopefully be general enough to work for most size companies. Ultimately I would like to +explore how services / protocols that already exist could be utilized or married together, to +prevent from reinventing the wheel where it is not needed. + +## General + +1. Ideally there would be self-hosting options. +1. An API, so I can do things from the terminal. +1. **_Keyboard Shortcuts_** +1. Dark mode + +## Calendar + +1. Integrate with [CalDAV standard protocols](https://datatracker.ietf.org/doc/html/rfc4791), so + that native calendar applications could be used. + 1. Office staff /roles would need to subscribe to all calendars + 1. Field staff would only need to subscribe to their calendar, but then there would need to be + some sort of note / link that allowed them to navigate to job details. +1. Be able to toggle calendars on / off from dispatch display. +1. Would need an unassigned job calendar for times that it doesn't make sense to assign a job right + away to a specific user. +1. Generated events for maintenance customers. + +[See also: Scheduling](#scheduling) + +## Customers + +1. Integrate with [CardDAV standard protocols](https://datatracker.ietf.org/doc/html/rfc6352), so + that native contacts applications could be used. + 1. This may present challenge of being able to download all customer contact information. For + example, if an employee is terminated how would you ensure that they could not still subscribe + to the CardDAV server. This could potentially be mitigated with only allowing certain company + owned MAC addresses (devices)?? +1. Need "do not service" option, to mark customers who fail to pay or are a PITA. + +### Property + +1. Store notes attached to property profile +1. Store documents attached to property profile +1. Equipment attached to property + 1. Ability to retire equipment when replaced. + 1. Ability to link manuals to equipment profile. +1. Parent billing / commercial +1. Map / travel integration + +> **NOTE:** Really the property should be separate from contact, for if customer move / property +> changes hands. You don't want to loose history. So need to think about how the contact relates to +> the property a little bit more. + +### Customer communications + +1. Would need the ability to send emails / text messages for job reminders, etc. +1. Have the communications flow into a unified inbox. +1. Bulk campaigns, maintenance membership reminders, etc. +1. Post job review requests +1. VOIP integration / transcript + 1. Would potentially be nice + +## Maintenance Memberships + +1. Support yearly and monthly options + 1. Current HCP implementation kinda sucks for us. It works well with monthly, but yearly does not + "auto-renew", so we have to set everyone up as monthly then hope we remember what visit they + owe us money for the renewal. +1. Support multiple levels of memberships +1. Support multiple discounts based on membership and service type +1. Support multiple systems per property + +## Scheduling + +1. Need to filter the customer list / choose customer + 1. Need option to also create a new customer from the scheduling workflow. +1. Ideally this would be a streamlined easy process as it get's used a lot. +1. Need the ability to have "template" items that pre-populate services / materials. +1. Ability to have default schedule window / duration. +1. On-call schedules. +1. I think some natural language scheduling would be awesome, like how adding events to Apple + Calendar works... + 1. "Schedule heating diagnostic for Joe Customer next Tuesday between 11am and 1pm on Adam + Employee's schedule." + 1. "Schedule cooling diagnostic for Jane Customer on 11/25/2025 starting at 10am" (use default + scheduling window duration). + +## Pricing + +1. Need general labor rate and profit margin settings, company wide +1. Separate materials from services +1. Need to easily be able to update via an API, csv, etc. +1. Discounts based on maintenance membership / service agreements + +### Estimates + +1. Need templates for system quotes +1. Image support for templates +1. Need the ability for estimate to be associated with a job, for service estimates or equipment + quotes, for tracking purposes. +1. Need to look nice / professional, with web view and pdf generation. +1. Need to expire +1. Need to be able to select multiple options +1. Choice / company setup of how multiple options get tracked in financial reports. + 1. I say this because currently HCP (last I checked) has always been jacked up for reporting + closing ratios because even if you "win" a job, the other options get counted against you. + +## Jobs / Service Pricing + +1. Needs to be easy in the field +1. Needs to be easy to search for the correct service +1. Presentation modes +1. Customer approvals / workflow + 1. Side by side comparisons of proposed items, including with and without maintenance discounts. +1. Need to be able to associate which equipment was serviced during a job +1. Checklists +1. Post job sign-off +1. Payment processing +1. Post job recommendations / workflow automation + 1. My thoughts here are that it would be nice to automate sending service agreement / maintenance + plan estimates easily. + 1. Also workflow for communicating items are in-complete / need follow up from office. + +> **NOTE:** Jobs should be attached / associated to property ID. + +### Purchase Orders + +1. I already have purchase orders web-site built out that could be integrated. + +## Home Performance Assessments + +1. Ability to have workflows for home performance tests +1. Ability for report generation + +## MeasureQuick Integration + +1. Nice to have, but also fine with just attaching to the job. +1. The ability for shared customer address, contact, and equipment list is nice. + 1. Currently in HCP items do not flow back into what they call the "property profile", meaning it + would be nice to only have to enter equipment information in one place. + +## Inventory / Tools + +1. Ability to track items (low priority for me, but probably higher priority for larger companies) +1. Tool check-out / assignment diff --git a/justfile b/justfile new file mode 100644 index 0000000..d5847b7 --- /dev/null +++ b/justfile @@ -0,0 +1,16 @@ + +[private] +default: + @just --list + +# Create a new note. +new *name: + @fname=$(echo {{name}} | tr " " "_") && \ + doc="$(isosec).$fname.md" && \ + echo "# {{name}}" > "$doc" && \ + echo "$doc" + +# Get the last note created. +last: + @/bin/ls -t *.md | head -1 +