Урок 18. Запись на время (booking)
Одна из самых полезных функций: бот сам показывает свободные окошки и записывает клиента, не отвлекая тебя. Разберём два способа: простой и для нескольких специалистов.
Цель урока
После урока ты понимаешь два способа записи и знаешь, какой выбрать: Google Календарь для простого случая (один специалист) или движок слотов для нескольких специалистов с разными правилами. И понимаешь, как движок считает свободное окошко, как пересечение графика, ограничений и занятости.
Простыми словами
Бот умеет смотреть свободное время и записывать клиента прямо в переписке. Есть два пути:
- Google Календарь, для простого случая (один мастер / один кабинет).
- Движок слотов, для нескольких специалистов (образовательные центры, студии, автошколы), где расписание сложнее.
Оба подключаются как функция из готового каталога.
Слайды урока
Непонятные слова: на пальцах
- Слот (окошко): свободный промежуток, на который можно записать клиента. Как свободное место в кинозале: показывает только то, что не занято.
- Запись (booking): бронь времени за клиентом. Как забронировать столик: время закрепляется, другой уже не займёт.
- Google Календарь: обычный онлайн-календарь, где бот видит занятое/свободное и ставит записи. Как ежедневник, в который бот сам вписывает клиентов.
- Движок слотов: «калькулятор свободного времени» для нескольких специалистов. Он берёт график, правила и занятость и выдаёт готовый список окошек. Как расписание автобусов: учитывает всё и показывает, когда реально можно.
- Пересечение (∩): «одновременно выполнено всё». Пример: окошко подходит, если специалист работает и услуга разрешена в это время и оно ещё не занято. Как найти время, удобное сразу всем.
- Источник занятости, откуда движок узнаёт, что уже занято: Education CRM (занятые уроки центра) или «только график» (без CRM). На скрине выше это выпадающий список «Источник занятости».
- Горизонт показа: на сколько дней вперёд бот предлагает записи (по умолчанию 7, максимум 14). Как «бронь доступна на пару недель вперёд».
Зачем это нужно
Запись это то, ради чего клиент часто и пишет. Без бота: клиент ждёт ответа менеджера, менеджер сверяется с журналом. С ботом: клиент получает свободное время за секунды и записывается сам, 24/7.
Способ 1: Google Календарь (просто)
Подключаешь Google Календарь (через сервисный аккаунт: без паролей). Бот умеет: проверить свободные слоты, создать / перенести / отменить запись. Подходит, когда «один мастер, один календарь».
Способ 2: Движок слотов (для нескольких специалистов)
Для образовательных центров/студий/автошкол. Бот считает свободные окошки как пересечение:
- график в Google Таблице (кто когда работает) ∩
- ограничения (услуга, минимальный возраст, часы работы, обеды, отпуска, даты «не работает», ограничения дней вроде «пробные только вт/чт/сб», маркеры в ячейках) ∩
- занятость (занятые уроки, из Education CRM проекта, либо «только график» без CRM)
→ и отдаёт клиенту готовый список свободных слотов. В настройках шаблона задаёшь: таблицу-график, услуги (с branch_id/subject_id из CRM), источник занятости, горизонт показа (по умолчанию 7, максимум 14 дней).
💡 Если у специалиста в графике непонятное ограничение, движок его не покажет и оставит пометку менеджеру, чтобы не записать клиента на того, кого нельзя. А условие, которое выполняет человек («по договорённости», «после согласования с мастером»), специалиста не прячет: бот покажет его время и честно предупредит, что запись подтвердит менеджер, но бронировать сам не станет.
График можно вести двумя способами
Сервер сам понимает, как устроен ваш лист, по заголовкам колонок:
- Неделя: семь колонок
пн вт ср чт пт сб вс, одна и та же неделя повторяется. Удобно, когда график стабильный. - Календарь: по колонке на каждую дату (
22.06.2026,23.06.2026, …). Удобно, когда часы плавают, а отпуска и подмены видно прямо в ячейке дня.
В календарном режиме держи заполненными 2-3 недели вперёд: дата без колонки означает «расписание не заведено», и бот в неё не запишет. Если весь запрошенный период оказался за последней заполненной колонкой, функция так и скажет, а не отдаст пустой список, который читается как «все заняты».
Экран «Проверка графика»
Главный ответ на вопрос «почему бот не предлагает этого мастера». Открываешь функцию → «Проверить график» и видишь, что сервер понял из таблицы: кого он видит, что вычитал из каждого комментария, кто скрыт и по какой причине, до какой даты заполнено расписание. Раньше это было видно только тому, кто лезет в базу руками, и специалисты пропадали из выдачи неделями.
Туда же не надо ходить каждый день: когда график мешает записи (лист переименовали, комментарий не разобрался, колонки с датами кончились), владельцу приходит уведомление, не чаще раза в сутки.
💡 При настройке жми «Найти лист автоматически»: сервер сам выберет лист с графиком и определит, как названы колонки, тебе останется подтвердить.
Пример (образовательный центр «Профи»)
Клиент пишет «хочу на пробный по математике завтра после обеда». Бот считает свободные окна преподавателя математики на завтра после 12:00 (учитывая занятые уроки из Education CRM) → предлагает «14:00 или 16:30» → клиент выбирает → бот записывает.
Когда какой способ / когда не нужно
- Один специалист, простое расписание → Google Календарь.
- Несколько специалистов, услуги с разными правилами → движок слотов.
- У тебя нет записи как таковой (магазин, доставка) → эта функция не нужна.
Частые ошибки
- Не расшарили календарь/таблицу на служебный аккаунт → бот не видит расписание (Урок 27).
- Кривой график в таблице → бот предлагает неверные слоты. Проверь формат по подсказкам шаблона.
- Не подключили Education CRM, а источник занятости выбран «edu_crm» → бот не видит занятые уроки. Переключи на «только график» или подключи CRM.
Вопросы новичка
- У меня один мастер, что выбрать? Google Календарь: проще всего, бот видит занятость и ставит записи.
- Несколько мастеров и разные услуги? Движок слотов: он учитывает график каждого, правила услуг и занятость, и не предложит занятое время.
- Бот предлагает время, когда мастер не работает. Скорее всего кривой график в Google Таблице или календарь не расшарен на служебный аккаунт (Урок 27).
- Мастер работает, а бот его не предлагает. Открой «Проверить график»: там написано, что сервер понял про этого специалиста и почему скрыл. Чаще всего дело в формулировке комментария или в том, что имя в графике не совпадает с именем в CRM.
- Клиент записался, я об этом узнаю? Да, если подключишь уведомления владельцу, тебе придёт сообщение о каждой записи.
- У меня магазин без записи, это нужно? Нет, пропускай. Функция для тех, у кого есть приём по времени.
Проверь себя
- Один специалист или несколько: какой способ записи выбираешь в каждом случае?
- Из чего движок слотов собирает «свободное окошко» (три условия)?
- На сколько дней вперёд бот показывает записи по умолчанию и какой максимум?
Что дальше
Дальше, Урок 19: уведомления владельцу (чтобы знать о каждой записи).
