The Problem That Wouldnt Let Go
I spent time in restaurants. Not as a consultant, not as a tech person observing from the corner. I worked in them. I saw how the phone rang during the lunch rush and nobody could pick it up because everyone was running food, seating guests, handling complaints.
Big chains have the same problem as family owned spots. The person who answers the phone is also managing the floor. When they are taking a reservation, they are not helping the customer standing in front of them. When they are helping that customer, the phone rings and a potential booking walks away.
I wanted to fix that one thing. Not build another POS system, not another reservation platform. Just let the restaurant answer every call without needing a dedicated receptionist.
The Integration Nightmare
The hard part was never the AI itself. It was making everything talk to each other.
A phone call comes in through Twilio. That needs to connect to Vapi for the voice agent. The voice agent needs to call my backend to check availability and book reservations. Tool calling needs to happen inside the call in real time without noticeable delay. The backend needs to update the database and send confirmation messages.
Getting all of that to work together took longer than anything else. Webhooks from Twilio needed to reach Vapi at the right moment. Vapi needed to trigger tool calls on my FastAPI server while the caller was still talking. The timing had to be tight enough that the caller never noticed they were talking to a chain of APIs.
I hit a point where I questioned whether it was worth it. Every platform has its own quirks, its own timeout limits, its own idea of how a webhook should look. Getting them to agree took weeks of trial and error.
The Moment It Clicked
Then it worked. A real call came in. The AI answered, asked the right questions, used tool calling to check available times, and wrote the reservation into the database. No human involved.
Watching that first successful end to end flow changed something. It was not just that the technology worked. It was that the restaurant could have answered that call while short staffed during a lunch rush. The caller got their reservation. The staff stayed focused on the floor.
That moment made all the integration headaches worth it.
Where It Is Now
Vozko is still in beta. It has been tested in short one day operations to validate the flow. The AI handles reservations, menu questions, and hours of operation. When it cannot handle something, it escalates to a human through SMS.
The next step is getting it into a restaurant for a full week of real operations. Let it take the pressure of the lunch rush and see how many calls it can handle before needing to escalate.
What I Used
FastAPI for the backend that handles Twilio webhooks and orchestrates Vapi. Twilio for the phone system itself. Vapi for the voice AI agent that talks to callers. PostgreSQL for reservations and call logs. Next.js for the management dashboard where restaurants can see call history and reservation data.
Top comments (0)