Inspiration
I run Dishari Coaching Centre and have personally experienced how small businesses lose potential customers simply because enquiries are not followed up quickly enough. A parent may enquire about a course and move to another coaching centre within minutes if nobody responds.
That made me think: what if every small business could have its own AI phone agent to follow up with new enquiries?
I built CallFlow around that idea, starting with coaching centres and extending the same workflow to clinics, salons, real estate, and restaurants.
What it does
CallFlow is a universal AI phone-agent platform designed for small businesses.
A business provides its basic information and gets a customized enquiry workflow. When a potential customer submits an enquiry form, CallFlow creates a lead, generates a business-specific conversation prompt, initiates the phone-agent workflow, and tracks the outcome through a dashboard.
The core workflow is:
Business setup → Enquiry form → Lead captured → AI phone workflow → Conversation outcome → Dashboard
CallFlow supports five business types:
- Coaching centres
- Clinics
- Salons
- Real estate
- Restaurants
It also includes automatic retry handling for unanswered calls.
The submitted demo includes a mock-success CALL-E path so the complete lead-to-dashboard workflow remains demonstrable when the external CALL-E service is unavailable. The CALL-E integration is isolated behind a dedicated service layer.
How we built it
- Frontend: Next.js 14, TypeScript, Tailwind CSS, shadcn/ui
- Backend: Python, FastAPI, asynchronous architecture
- Database: Supabase PostgreSQL with Row Level Security
- Authentication: Supabase Auth
- Phone-agent integration: CALL-E REST API
- Scheduling: APScheduler
- AI workflow: Dynamic prompt generation based on business type and business context
The architecture separates the phone-agent integration from the rest of the application, allowing the external phone service to be configured without redesigning the core application.
Challenges we ran into
CALL-E availability
CALL-E was unavailable for part of development. Instead of allowing that external dependency to block development, I isolated the phone integration and created a mock-success path so that the complete application workflow could still be developed and demonstrated.
API integration
Understanding the correct authentication and request structure for the CALL-E REST API required careful testing and debugging.
Dynamic conversations
Different businesses need completely different conversations. A coaching centre should not sound like a restaurant or clinic, so I built a dynamic prompt-generation system that adapts the conversation to the business context.
End-to-end workflow
Connecting enquiry forms, database persistence, phone-agent workflows, webhooks, retry scheduling, and dashboard updates required designing the application as an event-driven workflow rather than simply a frontend application.
Accomplishments that we're proud of
- Built a complete full-stack AI phone-agent SaaS prototype.
- Designed a multi-tenant architecture for different small-business categories.
- Created dynamic business-specific conversation prompts.
- Built the lead-to-dashboard workflow with webhook support.
- Added automatic retry handling for unanswered calls.
- Isolated the CALL-E integration behind a dedicated service layer.
- Contributed CallFlow to the public CALL-E ecosystem through a reviewed and merged pull request.
What we learned
This project taught us that building an AI phone application is more than connecting an AI API.
We learned how to integrate a phone-agent API with a Python backend, design multi-tenant SaaS architecture, generate contextual prompts dynamically, handle asynchronous workflows and webhooks, and design retry and failure-handling logic.
Most importantly, we learned how to isolate external-service dependencies so that development can continue even when an external API becomes temporarily unavailable.
What's next for CallFlow
- Validate and enable the production CALL-E integration.
- Deploy the platform using Vercel and Render.
- Add WhatsApp-based lead capture.
- Support additional small-business categories.
- Add analytics for lead conversion and call outcomes.
- Add call recordings and transcripts where supported.
- Improve business-specific conversation customization.
- Add production monitoring and stronger reliability controls.
Built With
- api
- apscheduler
- call-e
- css
- fastapi
- next.js
- postgresql
- python
- react
- rest
- saas
- shadcn/ui
- supabase
- tailwind
- typescript
- webhooks
Log in or sign up for Devpost to join the conversation.