Inspiration

Service businesses lose real opportunities when a customer calls and nobody answers. The missed ring is only the start: someone still has to recognize the event, decide whether follow-up is appropriate, preserve context, and route the opportunity back to a human before the caller moves on.

What it does

FlowLink Missed Call Rescue turns a phone-provider event into a reviewable recovery opportunity. It:

  1. verifies and normalizes the webhook;
  2. classifies missed, busy, no-answer, and unanswered dispositions;
  3. invokes a Strands agent with a purpose-built classify_rescue_event tool;
  4. prepares a bounded recovery decision;
  5. records machine-readable evidence; and
  6. keeps external contact behind an explicit authorization boundary.

Working implementation

  • Node.js service deployed on Render
  • Provider-neutral call-event contract
  • AgentPhone-style webhook adapter
  • HMAC-SHA256 verification with timing-safe comparison
  • Strands Agents SDK agent and tool
  • Controlled dry-run with externalSendPerformed: false
  • Automated tests and GitHub Actions evidence
  • Separate guarded CALL-E adapter using @call-e/calle

Live demo: https://flowlink-missed-call-rescue.onrender.com

How it works

A provider sends the call outcome to the Render service. The adapter validates the signature and maps the payload into a stable internal contract. The Strands agent receives that normalized evidence and uses the classification tool to decide whether the event qualifies for rescue. The workflow then prepares the next action without inventing a delivery, customer outcome, or payment.

Human control and evidence

The agent handles repetitive triage, while customer contact remains controlled. Dry-runs cannot send messages or initiate calls. A provider action is not represented as completed until its returned identifier and outcome are retained.

Verified: event normalization, rescue classification, signature validation, Strands agent/tool implementation, automated tests, controlled dry-run evidence, and the live Render boundary.

Not claimed: paid customer revenue, production SMS delivery, conversion rate, a completed CALL-E call, or a reference customer.

Why it matters

A small service-business owner should not need to watch a phone constantly to protect every lead. Missed Call Rescue handles the repetitive, judgment-heavy intake step while preserving the evidence and human control needed to trust the automation.

Built With

Share this project:

Updates