Verb

Writing

What an AI assistant is actually worth inside a booking product

The short answer

In a booking product the expensive requests are not questions, they are procedures: move this, cancel that, add someone, block Friday. Each is a handful of screens the person has to find and get right. An assistant earns its place by finishing those, not by explaining them. The two things it must get right are acting as the person who asked rather than as an admin, and stopping at a confirmation that names the real booking before it changes anything.

Watch what people actually do in a booking product and the same shape repeats. Move my Thursday call to next week. Cancel the 3pm, something came up. Add my colleague to tomorrow's demo. I'm away Friday, block it. Very little of it is a question. It is work, and doing it means finding the booking, finding the right screen, and being sure they pressed the right thing.

That distinction decides what kind of AI is worth adding. An assistant that explains where the cancel button lives has handed the work back. The value is in finishing the request.

The requests that cost the most are the smallest ones

A reschedule is not a hard problem. It is a two minute problem, done forty times a week, four screens deep. The cost is not difficulty, it is friction: each one is a trip through menus to change a single record, and no link to the documentation helps, because the answer is not information, it is a change to a record.

These also happen to be the requests an assistant handles best, because they are specific. “Move my Thursday review to next week” names a thing that exists and an outcome that can be checked. Compare that with the kind of request people fear giving to an agent, which is vague, far-reaching and irreversible. Scheduling is mostly the first kind.

Two properties before you let it touch anything

It acts as the person who asked. Not as an admin key, not as a service account with access to every calendar. If the assistant runs with the signed-in person's own credential, then the permission rules already written into the product decide what it can reach, and there is no second system to keep in step. A booking assistant that can see every customer's calendar is one prompt away from an incident; one that can only ever see the current person's is not.

Every change stops at a confirmation that names the real thing. Generated by your code from the actual call, showing the specific booking, the specific new time, the specific guest being added. Not a sentence the model composed that reads like a confirmation and has no button under it. The difference matters most in the case that looks harmless: a cancellation the user did agree to, on a booking they did not mean.

The failure to test for is the near miss

Two calls in the same week, a review and a review follow-up, and the request says “move the review”. The behaviour you want is a question back. The behaviour you do not want is a confident guess, and a confident guess is what you get from a tool description that does not distinguish the two.

This is worth building a fixed set of cases for and rerunning whenever the model or the tool descriptions change: an ambiguous target, a declined confirmation, a request that should not call a tool at all, and a tool that fails so you can check the assistant says so rather than summarising a success. The obvious path always works. The edges are where behaviour moves between model versions.

How many actions it needs

More than a demo shows and fewer than the API has. A live integration into an open source scheduling application settled at twenty eight: listing and inspecting bookings, confirming, declining, cancelling, requesting a reschedule, adding a guest, changing the location, then event types, availability schedules, out of office and profile settings.

The rule that produced that list is simple enough to reuse. Include what somebody would ask for by name. Skip anything that exists only because the route table has it. What costs accuracy is two tools the model cannot tell apart, not a long list of distinct ones.

See it rather than take this on trust

There is a live one to try, with three demo people and one-click sign-in, at cal.askverb.com. Ask it to add a guest to a booking and watch the confirmation card name the real booking before anything happens. The notes on that install cover what it can do and what it deliberately cannot.

If you are weighing this against a documentation chatbot or building your own, the comparison of those three routes is the honest version, including when an assistant that takes actions is the wrong answer.

Common questions

What do people actually ask a scheduling assistant to do?

Move a specific meeting, cancel one, add a colleague to it, change where it happens, shorten a call, hide an event type, and block a day off. Almost none of it is a question. It is work the person would otherwise do across several screens, which is exactly why asking is faster.

Is it safe to let an assistant cancel a customer's booking?

Only with two properties. It has to run as the signed-in person, so your own permission rules decide what it can touch, and the cancellation has to stop at a confirmation your code generated naming that specific booking and time. A model asked to confirm in prose produces a sentence, not a gate.

Will it get the wrong meeting?

That is the failure worth testing for, and it is testable. Put two similar bookings in the same week and ask it to move 'the review'. The behaviour you want is a question back, not a confident guess at an id. Test the near misses rather than the obvious case; the obvious case always works.

How many actions does a scheduling assistant need?

Fewer than the API has, more than a demo shows. A live integration against an open source scheduling app settled at twenty eight: bookings, event types, availability schedules, time off and profile settings. The rule is to cover what somebody would ask for by name and skip anything that only mirrors a route table.

Keep reading

Verb is this, built. An AI assistant you embed in your SaaS with one script tag: it calls your own API as the signed-in user, confirms before it changes anything, and logs every action. Free to build and test.