← Back to Daily Builds

Daily build note · May 19, 2026

Missed Call Rescue Desk

A productized, compliance-aware AI intake and follow-up system for local home service businesses that catches unanswered calls and cold web leads within seconds, triages urgency, captures...

Local Business Automations Runnable local MVP built Public demo coming soon

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.json so 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.js for 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

  1. Add adapter interfaces for Twilio inbound call/SMS webhooks and outbound SMS sends.
  2. Add a notification adapter for owner email/SMS alerts.
  3. Move persistence to SQLite or Postgres and add basic auth for a real pilot.
  4. Add Twilio signature validation and replay-safe event IDs.
  5. Add an OpenAI-compatible summarization adapter behind a feature flag while keeping deterministic fallback mode.
  6. Add Google Sheets export and a daily digest email job.
  7. Test the workflow with one Nashville HVAC/plumbing owner using real missed-call examples.