How nejim2001/bud-dial works
BudDial is a mobile appointment-booking assistant. Users enter a request and business details, submit them to start an AI phone call, then receive a structured success or failure result after the conversation is analyzed. The documented workflow uses ElevenLabs for voice calls and Gemini for transcript extraction; the sampled source confirms the call and analysis endpoints. Map selection, call-status handling, and calendar tools are represented as capabilities from the README and file tree, but their implementation and wiring were not sampled.
Main entry points: analyze.ts Analyze conversation · ongoing-call.jsx Call progress · call.ts Start call API · appointment-details.jsx Appointment form
Components 20
Mobile app
- Welcome and auth
frontend/app/index.jsx - Business selection
frontend/app/home.jsx - Appointment form
frontend/app/appointment-details.jsx - Call progress
frontend/app/ongoing-call.jsx - Success result
frontend/app/success-call.jsx - Failure result
frontend/app/failed-call.jsx
Call orchestration
- Start call API
backend/api/call.ts - Conversation status
backend/api/conversation-status.ts - End call API
backend/api/end-call.ts - Conversation listing
backend/api/fetch-all-conversations.ts - Check calendar
backend/api/tools/check-calendar.ts - Update calendar
backend/api/tools/update-calendar.ts
Result analysis
- Analyze conversation
backend/api/analyze.ts - Extraction schemas
backend/lib/schemas.ts - Transcript extraction
backend/lib/gemini.ts
External services
- ElevenLabs voice
- Gemini service
- Business phone
- Calendar service
Other components
- User
Connections 19
- User → Welcome and auth: opens app
- Welcome and auth → Business selection: continues
- Business selection → Appointment form: selects business
- User → Appointment form: enters request
- Appointment form → Start call API: posts call request
- Start call API → ElevenLabs voice: requests outbound call
- ElevenLabs voice → Business phone: places call
- Start call API → Call progress: returns call details
- Call progress → Conversation status: checks status
- Conversation status → ElevenLabs voice: fetches status
- Call progress → Analyze conversation: requests analysis
- Analyze conversation → ElevenLabs voice: fetches conversation
- Analyze conversation → Extraction schemas: selects schema
- Analyze conversation → Transcript extraction: submits transcript
- Transcript extraction → Gemini service: extracts fields
- Analyze conversation → Success result: returns result
- Analyze conversation → Failure result: returns result
- Check calendar → Calendar service: checks availability
- Update calendar → Calendar service: updates booking