CallePilot

Inspiration

Business communication still has a surprisingly manual bottleneck: someone has to pick up the phone, explain what they need, ask the right questions, listen to the answers, take notes, and turn the conversation into something useful.

We wanted to explore a different idea: what if a business task could become an actual phone conversation instead of simply becoming another AI-generated response on a screen?

That idea led to CallePilot.

CallePilot is an AI business call assistant designed around a simple workflow: choose a contact, define what you need to accomplish, review the call, and let an AI agent handle the conversation and return structured business information.

The CALL-E hackathon made this particularly interesting because CALL-E provides the execution layer that allows software to initiate AI-powered phone conversations rather than simply generating text or simulating a call.


What it does

CallePilot helps users turn business objectives into phone-call workflows.

The current implementation focuses on lead qualification.

A user can:

  1. Sign in securely.
  2. Create and manage business contacts.
  3. Select a contact.
  4. Define the objective and instructions for the call.
  5. Review the call details before anything happens.
  6. Explicitly confirm a live call.
  7. Have CallePilot send the confirmed request to its backend.
  8. Have the backend dispatch the call through CALL-E.
  9. Track the asynchronous call lifecycle.
  10. Receive structured business information from the completed workflow.

The application is designed so that the mobile client never communicates directly with CALL-E. CALL-E credentials remain on the server, while Supabase handles authentication and persistent application data.

The goal is not to create another chatbot that tells a user what they could say on a call.

The goal is to turn a business objective into an executable communication workflow and bring useful information back into the user's workflow.


How we built it

CallePilot is built as a mobile application with a separate backend responsible for secure call execution.

Mobile

The mobile application uses:

  • Expo
  • React Native
  • TypeScript
  • Expo Router

The mobile app handles:

  • Authentication
  • Contact management
  • Call configuration
  • Call review and confirmation
  • Call status tracking
  • Structured result presentation
  • Demo Mode

Backend

The backend uses:

  • Node.js
  • Express
  • TypeScript

The backend acts as the trusted layer between the mobile application, Supabase, and CALL-E.

It handles:

  • Authentication and authorization
  • Request validation
  • Contact ownership
  • Call records
  • Idempotency
  • CALL-E requests
  • CALL-E status synchronization
  • Structured call results
  • Error handling

Data and authentication

We use Supabase for authentication and persistent application data.

Contacts and calls are associated with the authenticated user, and backend queries are scoped to that user's ID.

Row Level Security is used on the database side to prevent users from accessing another user's records.


CALL-E integration

CALL-E is integrated exclusively on the backend.

CallePilot uses the official CALL-E TypeScript SDK to create and track calls. The mobile application never receives the CALL-E API key.

The call architecture uses an asynchronous, non-blocking flow rather than keeping an HTTP request open while a phone conversation is taking place.

The flow is:

Mobile App
    ↓
POST /api/calls
    ↓
Authenticated CallePilot Backend
    ↓
CALL-E SDK
    ↓
CALL-E call creation
    ↓
Phone conversation
    ↓
GET /api/calls/:id
    ↓
CALL-E status/result synchronization
    ↓
CallePilot Result

Built With

Share this project:

Updates

Submission history