Self-Booking

An agentic AI chat where customers of El Cuatro TV, a TV & internet provider, book, reschedule or cancel technical visits in plain conversation. One reusable core, configured per client with a JSON profile.

Role
AI development lead at OfficeTrack. I designed the architecture and directed the implementation end to end.
Stack
LangGraph · SQLite · systemd · nginx · SOAP API
Status
Live against real production data

El Cuatro TV runs 3,500+ technical service visits a month. Every reschedule or cancellation went through a call center: in May 2026 alone, 125+ measured calls (58 cancellations, 67 reschedules) for those two operations. Customers had no way to manage a visit that didn't involve installing an app or waiting on the phone.

The provider needed customers to manage their own visits in plain language, in whatever language they speak, without the company giving up control over what the system is allowed to do.

The design principle is bounded agency: the language model only translates what the customer says into a bounded set of actions and slots, as structured output. A deterministic layer owns what's actually possible. The model can't invent an action, pick a slot that wasn't offered, or write anything to the backend without the customer confirming first.

The whole product is one reusable core driven by a per-client JSON profile: branding, data fields, allowed actions, status mapping. Onboarding the next client is a config file, not a code fork.

  • Four languages: Spanish, English, Portuguese, and Hebrew for the platform's home market. Relative dates like "next week" are resolved deterministically, never left to the model to guess.
  • Demoed live to OfficeTrack's own leadership, commercial and R&D directors included, against real production data.

A LangGraph state machine drives the conversation. The only path that writes to OfficeTrack's SOAP API is gated behind the customer's explicit confirmation.

  • Self-hosted on my own VPS: systemd services, nginx, SQLite-backed session persistence.
  • Integrated live against OfficeTrack's SOAP API: real slots, real bookings, real audit trail. Not a mockup.
screenshots coming soon
Engine
LangGraph state machine. The model emits structured output only, never free-form actions.
Action layer
Bounded set defined per client. Every backend write is gated behind the customer's explicit confirmation.
Languages
Spanish, English, Portuguese and Hebrew. Relative dates like "next week" are resolved deterministically, not guessed by the model.
Integration
OfficeTrack's SOAP API, live: real slots, real bookings, full audit trail.
Onboarding
One JSON profile per client: branding, data fields, allowed actions, status mapping.
Hosting
Self-managed VPS: systemd services behind nginx, SQLite-backed session persistence.
3,500+service visits a month at the client this system serves
125+call-center calls in one measured month (May 2026) that the chat turns into self-service
4languages, with deterministic date parsing in all of them
1config file to onboard the next client, no code fork