Inspiration

Clinics lose 15-30% of potential revenue every month to no-shows. Staff waste hours manually chasing clients via phone and SMS with low success rates. Existing tools either only remind the original client or only notify the waitlist — never both in a single automated workflow.

What it does

RebookReelay detects appointment no-shows from Google Calendar, then dispatches empathetic voice calls via CALL-E to the original client to reschedule. If declined or no-answer, it automatically cascades the open slot down a prioritized waitlist — calling the next person in line until someone books. It also sends SMS-first recovery, handles patient confirmations via a web link, and syncs everything back to Google Calendar in real time.

How we built it

Backend: Next.js 16 API routes + native MongoDB driver (switched from Prisma after stability issues) Voice AI: CALL-E SDK with custom agent scripts for original client outreach and waitlist slot offers Workflow Engine: Inngest durable state machine — 3-round cascade (original → waitlist #1 → waitlist #2), each round sends SMS first, waits 5 minutes for reply, then escalates to a voice call Calendar: Google Calendar API for real-time no-show detection and automatic event booking on successful recovery SMS: Twilio integration for text-based recovery with reply webhooks (YES/NO handling) Frontend: Next.js + Tailwind CSS dashboard showing live cascade metrics, call transcripts, SMS logs, and waitlist management Deployment: Frontend on Netlify, backend on Render, Inngest Cloud for workflow orchestration

Challenges we ran into

Prisma hung locally and caused build failures — migrated to native MongoDB driver mid-hackathon Inngest v4 API differences from v3 documentation — waitForEvent timeout handling and Jsonify type issues OAuth callback redirect URI mismatch between localhost and production environments Git history contained hardcoded database credentials — had to rewrite history with git filter-branch PR reviewer flagged safety concerns around dry-run defaults, destination approval, and webhook authentication — redesigned the safety model from scratch

Accomplishments that we're proud of

Complete autonomous recovery pipeline: no-show detected → SMS → voice call → waitlist cascade → calendar booked — zero human intervention SMS-first cascade saves call costs by checking for text replies before dialing Per-run destination approval system prevents calls to unverified numbers Voice confirmation calls after every booking with web-based YES/NO confirmation page Real-time slot availability checking before each cascade round to avoid wasted calls Clean webhook authentication with timing-safe comparison Full demo data seeding with realistic transcripts, sentiment scores, and multi-stage recovery cases

What we learned

CALL-E's voice AI handles natural conversation better than expected — clients respond empathetically to the AI's tone Inngest's waitForEvent pattern is powerful for long-running workflows but requires careful timeout handling to avoid unintended cascade progression Dry-run-by-default is critical for safety — the default must be safe when the env var is absent, not when it's explicitly set SMS + voice hybrid approaches are more cost-effective than voice-only cascades MongoDB native driver gives more control and reliability than ORMs for serverless Next.js deployments

What's next for RebookReelay

Machine learning on call transcripts to optimize scripts per client segment Multi-location support with per-clinic cascade rules Integration with dental/medical practice management software (Dentrix, Eaglesoft) WhatsApp and email recovery channels alongside SMS and voice Analytics dashboard with revenue recovery trends and ROI tracking Public API for third-party integrations

Built With

Share this project:

Updates

Submission history