Inspiration

My experience working on healthcare applications showed me how much coordination happens around appointments. When someone cancels, a clinic has an empty slot while another person may still be waiting for an earlier visit. I wanted to explore a small, practical use for an AI phone agent: ask about that specific opening, capture a clear answer, and give staff the information they need to decide what happens next.

Clinic Slot Assistant was built from scratch for this hackathon. My healthcare workflow experience informed the idea; existing employer application code was not copied.

What it does

Staff select an open appointment and a fictional waitlist person whose contact consent is recorded. They preview the conversation and explicitly approve it. The response, evidence and transcript then appear for review. A clear acceptance enables a separate booking-confirmation action. Refusal, uncertainty and no answer leave the appointment open for follow-up.

The public website is an interactive simulation. Anyone can try four scripted outcomes without signing in, providing credentials or dialing a phone. All people and appointments are fictional, and each visitor's progress stays in their own browser. The public site cannot place real calls or update a real clinic calendar.

The source also includes a local CALL-E integration. During an authorized test with a consenting volunteer, an initial attempt reached screening. A second attempt, explicitly requested by the volunteer, connected and returned an accepted response. I reviewed the result in the app and confirmed a fictional booking. These real tests are separate from the scripted public demo.

How it is built

The application uses Next.js, React, TypeScript, Node.js and CSS, with the official CALL-E TypeScript SDK. In the local integration, a server-side request supplies one approved recipient, the exact fictional appointment time and a structured yes/no/unknown response schema. Credentials stay in a private local environment file.

The workflow saves its call reference and idempotency key before contacting CALL-E. Status checks retrieve the existing call rather than creating another one. Unresolved invitations block another invitation for the same appointment or person, and staff confirmation is required before a booking is recorded.

For the public Vercel deployment, I added a browser-stored journal of fictional actions. It preserves progress across refreshes without a shared database. The public build blocks server workspace requests and the CALL-E adapter, even if live credentials are accidentally configured.

Challenges and what I learned

The hardest part was handling uncertainty correctly. An unclear answer should not become a booking, and a network timeout while starting a call should not lead to automatic redialing. The app preserves uncertain call references and asks staff to reconcile them in CALL-E before taking further action.

Live testing also revealed that a task could still be marked queued while its recipient's call was already in progress. The adapter now reflects the recipient's active state, and a regression test covers that case.

This work reinforced the value of separating an agent's response from a human decision. Showing evidence and making incomplete states visible are as important to this workflow as starting the conversation.

Accomplishments

  • A working appointment-to-call-to-review flow, with explicit contact consent and staff approval.
  • Four labelled simulation outcomes, evidence and transcript review, and an activity log.
  • An authorized local CALL-E test followed by a staff-confirmed fictional booking.
  • A public Vercel demo with separate browser progress and no live calling.
  • 21 passing automated tests, successful production builds, and browser checks of booking and refresh persistence.
  • An open contribution PR to CALL-E's awesome-phone-call-agents repository.

What's next

I would improve conversational delivery and explore a clinic-calendar integration with appropriate access controls. This is a hackathon prototype; it does not claim clinical deployment or measured real-world time savings.

Try the public simulation: https://clinic-slot-assistant.vercel.app/

Source code: https://github.com/Madhuri-4596/clinic-slot-assistant

Organizer contribution: https://github.com/CALLE-AI/awesome-phone-call-agents/pull/505

Built With

Share this project:

Updates

Submission history