Back to casesHealthTech · SaaS · WhatsApp automation

Addison

From zero to a multi-clinic medical platform in 9 months

Client
Addison
Period
July 2026
Services
Digital product · Software architecture · Web development · Mobile app · WhatsApp automation · Payments integration
Addison

Addison is the practice management platform for doctors and clinics in Mexico: scheduling, records, invoicing and a WhatsApp chatbot patients use to book on their own. The doctor uses the dashboard; the patient never does — the patient just opens WhatsApp. That asymmetry is the whole product, and the hardest part to build was the part nobody sees: making the WhatsApp number stop being paperwork.

9Months from prototype to a platform in production
< 2 minFrom "I want a chatbot" to a bot answering
0Meta accounts the doctor has to create
24/7Booking open, with no dependence on front-desk hours
40Conversation states: the bot never invents a slot
3Surfaces on one backend: WhatsApp, web and mobile

The phone nobody answers

Addison is the practice management platform for doctors and clinics in Mexico: scheduling, patient records, invoicing, and a WhatsApp chatbot patients use to book, reschedule and get reminders. Doctors use the dashboard. Patients never do. Patients just open WhatsApp.

That asymmetry is the whole product. It comes from three pressures that show up together in any Mexican practice:

  • Patients don't call, they type. WhatsApp isn't one channel among several — it's the channel. Asking a patient to install an app or learn a portal is asking them not to book.
  • The front desk is a human bottleneck. One person, one shift, one conversation at a time. Everything that arrives outside those hours — or while they're busy — is a lost appointment nobody logs.
  • Existing medical software is still desktop-era. It solves the doctor's records, not the patient's conversation. The gap between "the patient wants an appointment" and "the appointment is on the calendar" stayed manual.

Two surfaces, two audiences: the patient in WhatsApp, the doctor in the dashboard

How we approached it

1 · We started with the channel, not the dashboard. The first piece that worked end to end was the WhatsApp bot, not the doctor's interface. If the patient can't book on their own, everything else is just another CRM.

2 · We chose determinism over AI — on purpose. The bot is a finite state machine, with no language model. A model that hallucinates an available slot in healthcare isn't a bad experience — it's a phantom appointment. A state machine is predictable, testable, and costs effectively nothing per conversation.

3 · Multi-tenant from the first migration. All security lives in the database, not in the application layer. One clinic cannot see another's data even if the interface fails.

4 · We built against the real system, not the ideal one. CFDI 4.0 with RFC validation, insurance data, per-clinic time zones, services with distinct durations and prices, and the "one mother booking for three patients" case. Mexican administrative reality can't be abstracted away — it has to be implemented.

5 · We attacked connection friction until it was gone. WhatsApp Business onboarding was where doctors dropped off. We redesigned it entirely.

What we built

AreaWhat it solves for the practice
WhatsApp chatbotThe patient registers, books, reschedules, cancels, checks hours and requests an invoice without anyone answering. One contact can manage several patients — the mother booking for her kids — types menú to start over, and the bot goes quiet on its own when a human takes over
Team dashboardCalendar-view scheduling, patient records, a real-time WhatsApp inbox with human takeover, invoices, templates, team and invitations, plus availability and service settings
Scheduling & calendarTwo-way Google Calendar sync, so the bot never offers a slot the doctor already has taken. Weekly availability, vacations and blocks, and per-service appointment duration
Login-free bookingA public page per doctor, aware of service duration and their calendar, which the bot offers when the patient wants to see more options
CFDI invoicingCFDI 4.0-compliant fiscal data capture with RFC validation, triggered from WhatsApp against already-completed appointments
WhatsApp setupTwo paths to a working number: Addison's managed number, with no Meta account, or the clinic's own. After setup, everything behaves identically
AutomationsA reminder 24 hours before each appointment, automatic closing of past appointments with no-show marking, and patient notification when the clinic reschedules or cancels
Subscription billingPlans by doctor and seat count, a 14-day trial with no card, and a billing portal. The bot silences itself if a clinic stops paying — messages are still stored and the team can reply by hand
Mobile appA dashboard companion against the same backend: auth, KPIs, scheduling, patients and team

All on a single backend, with automatic deploys to production and living documentation covering architecture, the conversation flow, pricing and operations.

The number that appears on its own

Here's the work we're proudest of, and it isn't visible on any screen.

For a practice to have a WhatsApp chatbot, Meta requires the long road: create a Meta Business account, verify the business, own a number that isn't already on WhatsApp, complete Embedded Signup. Every one of those steps is a place where a 58-year-old doctor with a full waiting room abandons the process. Fairly so — none of it is their job.

So we removed it.

Meta's long road versus one click

Addison offers an automatic number. The doctor clicks once, the system buys the number, registers it into a WhatsApp Business account Addison owns, and when Meta calls with the verification code a webhook captures and consumes it automatically — the doctor never sees or types it. The maximum programmed wait is 90 seconds. In practice, a doctor goes from "I want a chatbot" to "my chatbot is answering" in under two minutes, without leaving the settings screen.

What's interesting is what this forced us to redesign underneath: a shared account hosts many clinics, so routing stopped identifying the customer by account and started identifying them by number. And because managed numbers have no credential of their own, the entire messaging layer resolves credentials through a single shared function: to the rest of the system, a managed number and the clinic's own are indistinguishable. If the subscription is canceled, the number releases itself.

It's an infrastructure decision that exists for exactly one product reason: so the doctor never has to learn anything about Meta.

The results

From October 2025 to July 2026 — nine months — Addison came in as a mobile prototype on an inherited backend and came out as a multi-clinic platform in production.

What stayed:

  • A front desk with no office hours. The patient books at eleven at night and the appointment is on the doctor's calendar when they open. What used to be lost after hours now comes in on its own.
  • A bot that doesn't improvise. With no language model, the bot cannot offer a slot that doesn't exist. In medical scheduling that isn't a limitation — it's the requirement.
  • Zero Meta friction for the doctor. The step where practices dropped off no longer exists. One click, under two minutes, no Meta account.
  • One clinic cannot see another. Isolation lives in the database, where the interface can't bypass it.
  • One backend for three surfaces. WhatsApp, web dashboard and mobile app share data and rules; there aren't three versions of the truth to reconcile.
  • The operation got documented. Architecture, conversation flow, feature catalog, pricing and deployment procedures live written next to the code.

The proof of the method isn't how much code you write. It's how much friction you remove from the end user before asking them for a peso.

What we won't claim

We won't claim Addison is already collecting subscriptions. The billing infrastructure is built, tested and ready — plans, a 14-day no-card trial, billing portal, bot lockout on non-payment — but it is deliberately not switched on. It goes live when the business picks the moment, not when the code is ready. Confusing "built" with "billing" is exactly the kind of overstatement that makes these pages worthless.

We also won't claim the bot is artificial intelligence. It isn't, and that's deliberate. The original vision called for a conversational bot that learned the doctor's tone; we built a deterministic state machine because in medical scheduling, predictability beats naturalness. That has a real cost: the bot doesn't understand open questions, it understands menus. It's the trade-off we chose with our eyes open, and it's reversible the day volume justifies it.

And some things are genuinely half-built, so we'd rather name them: per-plan doctor and seat limits are recorded but not yet enforced everywhere; reminder quotas are marketing copy with no meter behind them; the mobile app is deprioritized and read-mostly next to the dashboard; patients still can't pay from WhatsApp. They're documented, not hidden.

And the number that would carry the most weight is still missing: how many active clinics, how many appointments the bot booked, how many conversations resolved without a person stepping in. That number goes up when it exists and can be defended, not before.

What this means for your brand

Addison is a medical practice, but the pattern isn't medical. It's any appointment business in Mexico where your customer already lives in WhatsApp and your front desk is human.

Dentists, vets, salons, physiotherapy, law firms, workshops, gyms. The shape repeats: the customer messages a number, a deterministic bot carries them from "I want" to "booked" without anyone answering, the appointment lands on the team's calendar, the reminder goes out on its own, and your staff only steps in when a real human is actually needed.

What changes between industries is vocabulary and paperwork — CFDI and insurers here, something else in yours. What doesn't change is the expensive part: multi-clinic architecture, WhatsApp routing, calendar sync, frictionless setup and recurring billing. We've built that once already.

Ready for a diagnosis?

Tell us what you need in two minutes. We review your setup and send a diagnosis with scope and cost within 48 business hours. No call required.

Get your free diagnosis