Every service business has a dormant list nobody works
Service businesses accumulate dormant customers — people serviced once or twice years ago who never called back. The list is in the CRM. Office staff knows it's there. Nobody has time to work it. Every dormant customer is potential lost revenue (annual tune-ups, maintenance plans, callbacks, referrals, lifetime value).
Generic email-blast tools don't work because they're, well, generic. Mass-blast a dormant list with a templated reactivation email and you'll get 1-3% response, opt-outs, and complaints. The customers who haven't heard from you in two years need to feel remembered, not marketed to.
Systematically reactivate the list, hands-off
The right outcome: every dormant customer gets a personalized outreach that references their actual service history, equipment age, seasonal context, and relationship. The outreach happens automatically on a smart cadence. Replies route into the booking flow. Office staff doesn't manage a list — they manage replies and bookings as they come in.
Components of a reactivation engine
Every Preisser Solutions reactivation engine includes the same architectural components:
- Direct CRM integration — pulls real customer records, service history, equipment data, last-visit dates
- Dormancy logic — rules to define 'dormant' for the specific business (>12 months since service, expired maintenance plan, missed annual tune-up, equipment past 80% expected lifespan)
- AI-driven personalization — every message generated by an LLM (Claude or GPT-4) using the customer's real service record, not template + mail-merge
- Multi-channel outreach — SMS for response rate, email for context, optional voice escalation for high-value accounts
- Reply handling — inbound responses parsed by AI, intent classified, booking links auto-sent or human handoff escalated
- Booking integration — confirmed appointments flow into dispatch system; no manual data entry
- Compliance — TCPA-aware SMS (consent, opt-out, quiet hours), CAN-SPAM-compliant email, audit logs
- Live dashboards — reactivation rate, response rate, conversion to booking, revenue recovered, remaining dormant pipeline value
What changes when the engine goes live
Before: office staff knows the dormant list exists but never has time to work it; sporadic seasonal email blasts produce 1-3% response; revenue from dormant customers is essentially zero.
After: dormant customers receive personalized outreach automatically on a smart cadence; office staff handles inbound replies and bookings rather than managing outbound lists; reactivation rate typically lands 20-60% depending on industry, list age, and customer relationship quality.
What we build it on
Next.js + React + TypeScript front-end (dashboards), custom Node.js back-end, PostgreSQL database, Cloudflare Workers for the outreach engine. AI generation via Claude (Anthropic) or GPT-4 (OpenAI) per use case. SMS via Twilio. Email via Resend or SendGrid. CRM integration via API where available, custom adapters where it isn't.
Outcomes from the reference engagement
Cassidy HVAC, the reference engagement (full case study at /case-studies/cassidy-hvac):
- Over 60% reactivation of dormant patients within 6 weeks
- 100% automation of reactivation reminders
- 10+ hours per week saved across office staff
- 45%+ increase in booking conversion rate
- Hyper-personalized outreach using AI — every message engineered for the specific customer's situation
- Direct CRM integration — no manual list management
Screens (placeholder — to be added)
Dashboard and outreach-engine screenshots are being prepared. Available on request during scoping.
Lessons from the playbook
Customer reactivation is one of the clearest cases for custom AI builds at SMB scale. The economics break for generic SaaS (templated outreach gets 1-3% response) and break for VAs (the volume is too high and the personalization too unique). Custom AI is the only approach that delivers per-customer personalization at scale, and it pays back within 2-6 months for most service businesses with healthy customer LTV.
