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:
- verifies and normalizes the webhook;
- classifies missed, busy, no-answer, and unanswered dispositions;
- invokes a Strands agent with a purpose-built
classify_rescue_eventtool; - prepares a bounded recovery decision;
- records machine-readable evidence; and
- 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
- agentphone
- call-e
- github-actions
- hmac-sha256
- javascript
- node.js
- render
- strands-agents-sdk

Log in or sign up for Devpost to join the conversation.