Skip to content

AI appointment assistant: how we prevent errors

The question everyone asks us, before any other, is always the same: what if it gets it wrong?

It is the right question. An assistant that answers well nine times out of ten and on the tenth books an appointment in a slot where you are already busy has not saved you any time. It has cost you time, and it has embarrassed you in front of a client.

That is why the most important part of Wably is not how well the assistant writes. It is how the layer underneath is built.

The rule that governs everything: the model talks, the system decides

There is one architectural choice that explains almost everything else, and we say it openly because it is the heart of the product.

The language model does not work out times and does not decide anything about your calendar. It handles the conversation: understanding what the person wants, asking for what is missing, replying naturally.

When real information is needed, such as the free slots on Thursday, the model does not produce it. It asks the system, which works it out by reading the actual calendar. When it comes to confirmation, the model is not the one writing the appointment: the system does, after checking again that the slot is still available.

It is a difference that looks subtle and changes everything. A generic chatbot talking about your calendar can invent a time, because to it that is text like any other. An assistant built this way cannot, because it is not the one producing that number.

How a proposed slot comes about

When a client asks "do you have anything Thursday afternoon?", this is what happens:

  1. the system reads your working hours, shift by shift, day by day
  2. it reads the real calendar, including the commitments you added by hand
  3. it applies the duration of the requested service, which is not the same for every treatment
  4. it applies the buffer between one appointment and the next that you configured
  5. it returns only the slots that survive all four steps

Then the assistant offers them, in natural language.

The delicate point is the third one. A first appointment and a follow-up do not take the same time, and a calendar managed as if they did falls apart within two weeks. The slots on offer account for the real duration of what the person is asking for.

What happens at the moment of confirmation

Between the moment the assistant proposes a slot and the moment the person replies "yes, that works", minutes or hours can pass. Something may have happened in between: you took a call and booked someone into that slot yourself, or another person just took it in chat.

That is why availability is checked again before writing. If the slot has been taken in the meantime, the assistant says so and offers alternatives, instead of overwriting.

The appointment lands on your calendar, which remains the single source of truth. There is no parallel calendar inside the app to keep in sync by hand.

Why a specialist beats a generalist

The Wably assistant knows how to do a few things: offer slots, book, reschedule, cancel, remind the person of what they have coming up and answer questions about your practice.

It does fewer things than a general purpose chatbot, and it does them better precisely for that reason. A narrow scope means every request falls into a path someone planned, with checks someone thought about. Requests outside that scope are not improvised: they are passed to you.

On top of this scope sit your practice details: the services you offer with their durations, your shift hours, the location, the way you want the assistant to speak. Formal for a clinical practice, informal for a place with a more direct relationship with its clients.

It is not a generic assistant you explained your job to. It is built around the way appointment-based practices actually work.

Staying in context

A real conversation is not made of isolated requests. People write "an hour later would be better", "move the Thursday one", "cancel everything then", and they assume the other side is following the thread.

The assistant keeps track of the conversation, so it understands which appointment you mean without the person having to repeat the date, time and treatment in every message. It also recognizes people who have written before, and does not start from scratch as if it were the first time.

That is the difference between a form disguised as a chat and a conversation. And you feel it immediately, because it is exactly where badly built chatbots break.

When the calendar changes outside WhatsApp

Most errors in booking systems do not start inside the system. They start outside, when the practitioner takes an appointment over the phone or moves something directly in the calendar.

Wably accounts for that. The calendar is periodically re-synced, so the changes you make by hand come back into the picture and do not produce wrong proposals.

There is also the opposite case, the one nobody usually handles: if someone cancels an appointment coming up soon, a gap is left in your day that you might not notice in time. Wably alerts you, so you can try to fill it instead of discovering it once the day is over.

What we promise and what we do not

No serious provider can tell you their system will never make a mistake, and anyone who writes that is selling something they cannot deliver. We do not say it.

What we can tell you is more useful, because it is about where the errors end up.

An assistant can misread an ambiguous sentence. When that happens, the expected behavior is to ask, not to guess: which treatment, which day, what time. A misunderstanding stays one extra question in the conversation.

What it cannot do is turn into an error in your calendar, because it does not invent the times and availability is checked by the system before writing. And if the request falls outside its scope, the conversation reaches you.

The difference between the two kinds of error is all there: one costs a message, the other costs a client.

The model, your data and where it really ends up

On the AI side there is a question practitioners ask more and more often, and it is a fair one: where does what my clients write end up?

We answer in a way you can verify, because on this subject generic reassurance is worth nothing.

The model runs on Oracle Cloud Infrastructure, in Europe. The assistant uses a language model hosted on Oracle's Generative AI service, in the European region of Frankfurt. It is not a call forwarded to an outside service: processing happens inside the cloud infrastructure, in the chosen region. That is a substantial difference from other models available on the same platform, which are instead forwarded to the infrastructure of the provider that created them.

The provider does not retain messages. In its public documentation Oracle states that customer inputs used for inference are not retained, and that inputs and outputs are not stored inside the service. It also states that it does not share prompts and responses with the third-party model providers. This is not a commercial promise of ours: it is documentation you can consult, and you will find the page at the end of this article.

The model is open-weight. It is not a subscription service that can change behavior or terms overnight. It is a fixed version, one that does not learn and does not change based on who uses it. The practical benefit for you is continuity: the assistant behaves tomorrow the way it behaves today, and if the provider's terms ever changed, that model stays portable elsewhere.

We do not train anything. We do not carry out training or fine-tuning on customer data. Your practice's conversations exist to answer your clients, and that is where they stop: they do not feed any model, ours or anyone else's.

Data is encrypted and separated. Communications with the AI service travel encrypted. In our system each practice's data is kept separate from everyone else's, and the credentials connecting to external services are encrypted with AES-256.

The assistant does not handle clinical content. It is there to organize the calendar, not to collect health information. If someone starts writing clinical details, the correct response is to bring the conversation back to the appointment and leave the rest to the visit. WhatsApp appointments and privacy

The three questions to ask anyone offering you an AI assistant

They apply to us as much as to anyone else, and in thirty seconds they tell you who you are dealing with.

  1. In which country is my client's message processed? If the answer is "in the cloud", that is not an answer.
  2. Does the model provider retain prompts and responses? There has to be public documentation you can read, not a verbal reassurance.
  3. Are my conversations used to train models? On many general purpose services the answer depends on the plan and the settings, and almost nobody checks them.

If the answers are vague, it almost always means the conversations pass through a general purpose API with the default settings. It is not malice on the provider's part: often they do not know either.

Why it matters even if you do not handle health data

An appointment is not a medical record, but a name, a phone number and the fact that a particular person comes to your practice are personal data in every sense. The GDPR applies all the same.

Knowing where it is processed, who retains it and for how long is not a detail for technicians. It is the answer you need to be able to give if a client asks you, and sooner or later somebody does.

Frequently asked questions

Can the assistant invent a slot I do not actually have free?

The times are not produced by the language model. They are worked out by the system reading the real calendar, applying the configured working shifts, the duration of the requested service and the buffer between one appointment and the next. The assistant only offers what the system returns, and availability is checked again at the moment of confirmation.

What happens if two people ask for the same slot?

Availability is re-checked before the appointment is written. If the slot has been taken in the meantime, either by another conversation or by you directly in the calendar, the assistant says so and offers the closest alternatives.

If I take an appointment over the phone, does the system know?

Yes. The calendar is the single source of truth and is periodically re-synced, so appointments you enter by hand are included in the availability calculation and are not offered to anyone else.

Are my clients' conversations used to train the AI?

No. We do not use conversations to train or fine-tune models. Processing happens on enterprise cloud infrastructure in the European Union and your practice's data stays separate from everyone else's.

What happens if the assistant does not understand a request?

It asks. The expected behavior in front of an ambiguous request is to ask for the missing detail, not to decide on the person's behalf. Requests that fall outside its scope, such as a clinical question or an unusual situation, are passed to you.

Where is the message my client writes processed?

On Oracle Cloud Infrastructure, in the European region of Frankfurt. The model runs inside the cloud infrastructure and is not forwarded to an external provider. Oracle states in its own public documentation that it does not retain the inputs used for inference and does not share prompts and responses with third-party model providers.

What does it mean that the model is open-weight?

It means the model's parameters are public and the version in use is fixed and verifiable, instead of being a closed service that can change behavior without notice. For you it translates into continuity of operation and the fact that we are not tied to a single provider.

The point

An assistant that writes well is easy to build today. An assistant you can trust with your calendar is not, and the difference is not in the model: it is in what the model is allowed to decide.

We chose to leave it the conversation and to keep the numbers under the system's control. That is why you can let it answer while you are with a client.

Source on data handling cited in this article: Oracle documentation on data handling in OCI Generative AI.

If you want the full picture of how an assistant on WhatsApp works, start here: WhatsApp chatbot, how it works and what it costs. And if you are wondering whether you need to change your number, the answer is no: how Coexistence works.