What shipped
Built a runnable local MVP for Missed Call Rescue Desk in the build directory. It is a dependency-light Node web app with a native browser dashboard for rescuing missed HVAC/plumbing calls and web leads.
Core capabilities:
- Seeded demo account for
Cumberland Comfort HVAC & Plumbing. - Lead inbox with source, received time, customer, phone, address, trade, issue, urgency, status, SMS consent, confidence, after-hours state, and follow-up timer.
- Lead detail view with transcript, structured intake fields, rescue summary, owner alert preview, customer confirmation preview, event log, and status updates.
- Scenario runner for after-hours AC emergency, active leak, quote request, missing address, and spam pitch.
- Simulated webhook endpoints for missed calls, web leads, and SMS replies.
- Deterministic triage for urgency, human handoff, missing fields, confidence, recommended action, and follow-up priority.
- Business and compliance settings for disclosure copy, SMS consent copy, recording notice, retention, no-cold-outbound policy, and escalation rules.
- Daily digest view and CSV export.
- Smoke test covering seed data, emergency triage, handoff rendering, digest metrics, and CSV export.
Architecture
- Used a single Node HTTP server with no runtime dependencies to keep the sandbox easy to inspect and run offline.
- Used local JSON persistence in
data/state.jsonso demo interactions survive server restarts. - Kept the UI as browser-native HTML/CSS/JavaScript to avoid package install or build tooling.
- Centralized triage, message rendering, seed data, API routes, and export in
server.jsfor a small MVP surface. - Kept webhook payloads JSON-compatible with Twilio-style/event-adapter inputs but did not require Twilio credentials.
- Used deterministic keyword rules instead of LLM calls so demos are repeatable and require no secrets.
Trimmed scope
To keep the MVP focused and runnable, this build intentionally excluded:
- Live phone forwarding, SMS sending, and Twilio signature validation.
- Real email delivery or owner push notifications.
- Auth, teams, billing, multi-tenant account management, and role permissions.
- Deep CRM integrations such as Jobber, Housecall Pro, ServiceTitan, Google Business Profile, or Google Sheets.
- Autonomous booking or legal/compliance claims.
- LLM-generated summaries; the current summaries and previews are deterministic.
Limitations
- Local JSON persistence is suitable for demos only and does not handle concurrent writes at production scale.
- Triage uses simple keyword matching and can misclassify ambiguous language.
- Timezone handling uses the local Node process timezone for after-hours checks.
- SMS consent is tracked as a workflow state, but no live messages are sent.
- The UI is a single-user operator console without authentication.
- Compliance copy is configurable but has not been legally reviewed.
Suggested next steps
- Add adapter interfaces for Twilio inbound call/SMS webhooks and outbound SMS sends.
- Add a notification adapter for owner email/SMS alerts.
- Move persistence to SQLite or Postgres and add basic auth for a real pilot.
- Add Twilio signature validation and replay-safe event IDs.
- Add an OpenAI-compatible summarization adapter behind a feature flag while keeping deterministic fallback mode.
- Add Google Sheets export and a daily digest email job.
- Test the workflow with one Nashville HVAC/plumbing owner using real missed-call examples.