Skip to content

โ† Blog

I put a voice agent on the phone for a Pilates studio

A few weeks ago I shipped a voice agent that handles the phone for two Pilates studios โ€” so the owners never had to hire a receptionist at all.

I put a voice agent on the phone for a Pilates studio

A few weeks ago I shipped a voice agent that handles the phone for two Pilates studios โ€” so the owners never had to hire a receptionist at all.

Here's the stack, unglamorous as it is:

- Vapi handles the voice layer: text-to-speech, speech-to-text, call orchestration.
- Vonage provides the Portuguese phone number and SIP trunking.
- An AWS Lambda webhook takes the live conversation context and calls OpenAI with a small tool set: check class availability, book, reschedule, escalate to human.
- Bookings flow into the same PostgreSQL backend (medallion: raw โ†’ core โ†’ mart) that powers our Metabase dashboards.
- Pulumi provisions all of it in Python โ€” no click-ops.

Cost to run: a rounding error for the business.
Value: no receptionist overhead, no missed calls, and hours per week the owners get back to spend on teaching and growing the studio.

Over the next two posts I'll share three non-obvious things I learned shipping this โ€” starting with the one that surprised me the most: the model is the easiest part.

Have you shipped any Gen-AI in production yet? What was the unexpected complexity?

P.S. New tech post every Wednesday.

#GenAI #AppliedAI #Serverless