Home · Templates · Appointment requests

Popular

Chatbot for client appointments: a slot request and a reminder

The client picks a service with a button, writes a convenient time in their own words and leaves a phone number. This isn't a booking calendar: the time isn't reserved in a schedule automatically. To book straight into the YCLIENTS schedule, there's a separate “YCLIENTS booking” block.

Suitable for: Salons, Clinics, Consultants, Training, Services

How it works

Step 1Service
Step 2Time as text
Step 3Phone
Step 4Confirmation

What you can customize

  • Message texts and buttons
  • Fields of the “Data collection” block and format checking
  • Tags, notifications and transmission to the operator
  • Channels: Telegram, MAX, VKontakte, chat on the website
Telegram
MAX
VK
Chat on the site

Sample dialog

Bot
We'll sign you up. Select a service.
Customer
Haircut
Bot
Which day and time suit you?
Customer
Tomorrow 3 pm

What the template does and what it is not

There are two triggers: the /start command and the keyword “appointment” / “book” in “contains” mode — a person writes “I'd like to book a manicure”, and the flow starts without any commands. Then come five blocks: a “Message” with service buttons (the bot creation wizard has a “Services” field, and its value is inserted into the text via {{services}}) → “Data collection” for a preferred time as text → “Data collection” for a phone number with format validation → “Action”: the appointment tag and a “New appointment” notification to operators → a “Message” confirming that an administrator will be in touch.

The request immediately shows up in three places: in “Conversations” (the conversation itself), in “Contacts” (a card with the phone number and the time field) and in the owner's email — the new-request email is sent when the first phone number is saved.

What the template is not: it's not an online calendar. The template doesn't show free slots, doesn't know staff schedules and doesn't reserve time in the schedule. The client writes a convenient time in words, and an administrator confirms it or suggests another. For a salon with one or two staff members or a clinic with an administrator on the phone, that's enough; if bookings go to ten specialists across two shifts, the bot will only be an intake form, and the schedule stays separate. The exception is a YCLIENTS schedule: the “YCLIENTS booking” block shows services, staff members and free time from the salon's online booking and creates the appointment right in the schedule (how to connect); other online booking systems can't be connected. The flow works the same in Telegram, MAX, VK and the website widget; there's a separate page about the Telegram setup: “Appointment requests in Telegram”.

Booking without losses: service, time, phone

Three settings that distinguish a working booking from a form people abandon halfway.

  • Service — by buttons, and each button sets a tag. “Haircut”, “Colouring”, “Manicure” → in each branch “Action → add tag” svc:haircut, svc:color, svc:nails. A month later these are ready-made segments for a broadcast like “free slots with the colourist on Thursday”. An “Other” button leads to a text “Data collection”.
  • Time — as text, but with a format hint. The question in “Data collection”: “Write a convenient day and time, for example: Friday, 3 pm or any weekday after 6”. The field is “Custom field” slot; turn on “to variable” to insert it into the confirmation and the reminder. Do not add format validation for time — people write “tomorrow afternoon”, and that is fine.
  • Phone — with validation and two attempts. Validation “phone”, error text: “We need a number with the country code, for example +7 900 000-00-00”. Attempts — 2. Ask for the name before the phone, not after: by the time of a personal question the person has already invested in the conversation.

The confirmation uses variables: “{{name}}, we’ve recorded a request for {{slot}}. The administrator will confirm the time in this chat within an hour.” Do not write “you are booked” — the booking is not confirmed yet, and the client will remember it.

Confirmation by the administrator

The operator notification is already in the template, but with the short text “New booking” — replace it with “Booking: {{name}}, {{slot}}, {{phone}}”, and after the confirmation message add an “Operator” block. The conversation gets the “operator” status and lands in the “Conversations” queue; the administrator gets a Web Push (it works even when the account tab is closed) and a sound. They reply from the same window: “Friday 3 pm is free, see you” — the client sees it in their messenger.

To avoid typing the same thing, create quick reply templates in “Conversations”: “Confirmed, see you”, “That time is taken, we have 2 pm or 5:30 pm — which suits you?”, “We’ll remind you a day before”. Once the time is agreed, the administrator sets the booked tag on the contact card and closes the conversation — this tag is what you later use to count real bookings versus requests.

The account installs on a phone as an app (PWA), so the administrator doesn’t need a computer at the front desk. One operator is included in the free plan; if two or three people confirm bookings, that is Basic. After replying, the administrator closes the conversation, and the client’s next message is handled by the bot again.

How to reduce no-shows: a reminder a day before via “Pause”

No-shows are the main leak in messenger bookings: booking in chat is easy, and forgetting is even easier. The reminder is built from flow blocks without broadcasts.

  1. After the confirmation — a “Pause”. An important caveat: the pause counts from the moment of booking, not from the visit time. The bot can’t parse “Friday, 3 pm” as a date. If most clients book 1–3 days ahead, set a 1-day pause — the reminder arrives the day before or on the day of the visit. For bookings “two weeks from now” this won’t work.
  2. A “Condition” on the time of day: if it’s between 9 pm and 9 am — another “Pause” for a few hours. Otherwise the reminder goes out at night.
  3. A “Message”: “Reminder: {{slot}}, {{services}}. Still on?” with the buttons “Yes, I’ll come” and “Reschedule”. “Yes” → “Action → add tag” confirmed. “Reschedule” → “Operator” — the administrator will find another time.

For bookings further ahead there are two manual tools. First, the administrator writes the reminder from “Conversations” using a quick reply template — that takes 10 seconds. Second, “Broadcasts” (Basic and above): the day before, pick the audience by the booked tag and send one message to everyone. The general mechanics of pauses and conditions are covered in the article on trigger chains.

A limit people forget: the bot writes only to those who have already written to it. You can’t remind a client who booked by phone and never opened the bot — neither in Telegram nor in MAX. Why, and how to work around it — in the breakdown of the “bot can’t message first” error. The practical takeaway: move phone bookings into the bot, at least with a phrase like “please send the word BOOK to our bot — we’ll send you a reminder”.

After the visit: review, repeat booking, segments

The same flow closes the next cycle. With a 1–2-day “Pause” after the visit — the question “How did it go?” with a 1–5 rating by buttons: a low one goes to an operator, a high one gets a request to leave a review on maps. A ready-made branch for this is in the “Review collection” template; you can connect it as a “Subflow”. Another 3–4 weeks later (a natural interval for haircuts and manicures) — “Time for a refresh? Book the same time?” with a button that returns to the start of the booking flow.

The svc:* and booked tags turn the base into segments: in “Contacts” you filter everyone who had colouring and send a hair-care offer; the CSV export is for reconciling with your appointment book. Across channels: on a website the same flow works via the widget with a pre-chat form that collects the phone before the chat starts; for beauty salons there is a separate page — chatbot for a salon.

Plans: Free — 30 conversations a month, i.e. roughly 30 booking requests, 1 operator, “Steps” mode. Basic — 650 ₽/month per bot, no conversation limit, unlimited operators, broadcasts by tags. Open the “Appointment booking” template — the texts and service buttons can be edited right after installation.

Frequently asked questions about the template

Does the bot show free slots and a calendar?

Not in the template: CHBT has no calendar or staff schedules of its own; the client types a convenient time, and an administrator confirms it or suggests another from “Conversations”. If the salon takes bookings in YCLIENTS, the “YCLIENTS booking” block shows free days and times from the salon's online booking and creates the appointment right in the schedule. The bot isn't linked to other online booking systems: with them it works as an intake for requests, and the schedule remains a separate service.

Can the bot send a reminder the day before the visit?

Yes, with a “Pause” block after the confirmation — but the countdown starts from the moment of booking, not from the visit time. For bookings 1–3 days ahead this works; for later ones, the administrator sends the reminder from “Conversations” or by a broadcast by tag on the Basic plan.

How will the bot know a client did not show up?

It doesn't — the bot gets no information from the schedule about whether the client showed up. An administrator adds the “no-show” tag manually in the contact card. You can then use this tag for conditions in the flow or for a segment in a separate broadcast.

Does booking work in MAX and VK?

Yes, one flow for all connected channels. Service buttons and phone collection work everywhere; VK has a limit of 10 buttons per message.

How many bookings can the free plan handle?

The limit is 30 conversations a month per bot and one operator. That is often enough for a single specialist or a small studio; a busy salon needs Basic — 650 ₽/month per bot with no conversation limit.

Similar templates

Ready to launch “Appointment requests»?

Use template