AWS-based appointment scheduling system with bilingual voice interaction
Try Live Demo
This is a healthcare appointment scheduling voice agent built on AWS. It lets patients book, cancel, and check medical appointments via voice — either by phone (Amazon Connect) or through a web browser (React app).
The system supports bilingual interaction in English and Spanish, making healthcare scheduling accessible to a wider patient population. AI-powered conversations handle the full appointment lifecycle without human intervention.
Full English and Spanish voice interaction for inclusive patient access
Amazon Transcribe for speech recognition, Amazon Polly for natural voice synthesis
Powered by Amazon Bedrock with Claude 3.5 Sonnet for natural, context-aware dialogue
Check availability, book, cancel, and lookup appointments through voice commands
WebSocket-based streaming for low-latency voice interaction in the browser
DynamoDB for session management (24h TTL) and appointment records (GSI)
Via phone (PSTN through Amazon Connect) or web browser (React app with Web Speech API)
Amazon Transcribe converts speech to text with bilingual EN/ES support
Lambda orchestrator sends text to Amazon Bedrock (Claude 3.5 Sonnet) for intent recognition and response generation
The AI triggers appointment tools: availability check, booking, cancellation, or lookup against DynamoDB
Amazon Polly converts the AI response to natural speech and streams it back to the patient
| Service | Purpose | Configuration |
|---|---|---|
| Amazon Bedrock | LLM for conversation AI | Claude 3.5 Sonnet, Converse API with Tool Use |
| AWS Lambda | Serverless compute | Node.js 20.x, 512MB RAM, 30s timeout |
| API Gateway | WebSocket API | Routes: $connect, $disconnect, transcript, command |
| DynamoDB | NoSQL database | On-demand capacity, TTL enabled (24h sessions) |
| S3 | Static hosting & recordings | React SPA hosting, Glacier transition at 90 days |
| CloudFront | CDN & SSL termination | Custom domain, TLS 1.2+ |
| Cognito | Authentication | User pool with email verification, self-service sign-up |
| CloudWatch | Logging & monitoring | 30-day log retention, error tracking |
All traffic via HTTPS/WSS. CloudFront with TLS 1.2+. DynamoDB encryption at rest
Cognito User Pool for web client auth. WebSocket connections authenticated via query parameters
Lambda role scoped to specific DynamoDB tables, Bedrock model, S3 bucket, and API Gateway connections
20 messages/min per session, 100 messages max per session
10 API calls/min, 100K tokens/day per session with exponential backoff retry
50-100 req/sec sustained rate with burst capacity up to 200 requests