DOS_AI/ Документация
ОтзывыДля когоАгентствамВозможностиЦенаFAQОбучениеДокиВойтиСтарт
← Руководство
Старт
  • Что такое DOS AI
  • Как бот думает
  • Быстрый старт: первый бот за 30 минут
  • Карта кабинета (навигация)
  • Глоссарий
Проект и бот
  • Создание проекта
  • Системный промпт (характер бота)
  • JSON-ответ бота (статусы, стадии, флаги)
  • Выбор AI-модели
  • Тестовый чат
  • Продвинутые настройки бота
  • Загрузить знания о бизнесе в бота (что куда)
Каналы
  • Обзор каналов
  • Подключить WhatsApp (по QR)
  • Подключить Telegram-бота
  • Гигиена и антибан (WhatsApp)
Инструменты бота
  • Функции (инструменты бота)
  • База знаний (RAG)
  • Медиа-библиотека
  • Дожимы (follow-up)
  • Теги и сегментация
  • Уведомления владельцу (Telegram и почта)
  • Запись на время (Calendar и движок окошек)
  • Бот выставляет счёт (Kaspi)
  • Письмо клиенту
  • Рассылки по базе контактов
  • Исходящие диалоги (бот пишет первым)
Работа с клиентами
  • Диалоги, лента, перехват, «AI на паузе»
  • Лиды и их статусы
  • Стадии диалога (воронка)
  • Аналитика
  • Логи событий
  • Авто-отчёты владельцу (Telegram и почта)
Интеграции
  • Обзор интеграций + сервисный аккаунт Google
  • Google Sheets
  • Google Calendar
  • Gmail
  • CRM, Bitrix24 / amoCRM / AlphaCRM
  • Вебхуки и безопасность (SSRF)
  • МойСклад: наличие и цены в ответах бота
Деньги
  • Биллинг проекта: токены, подписка, пополнение
  • Сколько стоит сообщение
  • Приём оплат от клиентов (Kaspi)
  • Промокоды и партнёрская программа
Команда и аккаунт
  • Роли и права (viewer / tester / editor / admin / owner)
  • Участники и приглашения
  • Профиль, пароль, безопасность
  • Уведомления и личные настройки
  • Удаление, передача, дублирование проекта
Для разработчиков
  • Публичный API и ключи dos_sk_live_…
  • Кастомные вебхуки (продвинутый режим)
  • Язык выражений (expressions)
  • Формат данных и интеграция фронта
  • Подключить ИИ-агента: Claude Code, Codex, Cursor (MCP)
Решение проблем
  • Бот не отвечает, диагностика
  • Функция не вызывается / падает
  • Канал отвалился / WhatsApp забанили
  • Платёж не прошёл
  • Частые вопросы (FAQ)
  • Лиды из рекламы приходят с задержкой
Справочники
  • Каталог встроенных функций
  • Справочник настроек (agent_config)
  • Коды ошибок и состояния
  • Стадии, статусы лида, типы клиента
  • Лимиты и квоты
  • Переменные и хелперы выражений
  • Типы уведомлений

Документация › Инструменты бота › Запись на время

Запись на время

Бот сам показывает свободное время и записывает клиента: простым способом через Google Calendar или «движком окошек» для нескольких специалистов.

⏱ 12 мин · 👤 для владельца · 🟢 live

За 30 секунд:
  • Три способа записи: выберите под свой бизнес (ниже шпаргалка).
  • Google Calendar: один специалист, простой график.
  • Движок окошек: несколько мастеров, график в таблице, обеды/отпуска/ограничения.
  • Google Таблицы, если вы уже ведёте слоты строками в таблице.
Каталог функций: шаблон записи на свободные окошки (Google Календарь / движок слотов)
Каталог функций: шаблон записи на свободные окошки (Google Календарь / движок слотов)

Как выбрать способ

Ваша ситуацияСпособ
Один мастер/кабинет, простой графикGoogle Calendar: бот смотрит занятость календаря и записывает
Несколько специалистов, график в таблице, есть обеды, отпуска, ограничения по дням/возрастуДвижок окошек: сервер сам считает свободные слоты, бот не ошибается
Вы уже ведёте слоты строками в таблицеGoogle Таблицы (см. статью про Таблицы)

Способ A. Google Calendar (один специалист)

Что понадобится

  • ☐ Google-календарь
  • ☐ Доступ для сервис-аккаунта (одна кнопка в настройках функции)

Шаги

  1. Проект → Функции → Создать → Из готового шаблона → Запись на время → группа «Google Calendar». Здесь 5 готовых действий: проверить свободное время, записать, перенести, показать записи, отменить.
  2. В настройках укажите Календарь это ID вашего календаря, для основного его ID = ваш email в Google (например ivan@gmail.com), для отдельного: адрес вида ...@group.calendar.google.com. Затем нажмите «Проверить подключение». ⚠️ Слово primary не подойдёт, так бот попадёт в свой технический календарь, вам не видимый, и записи «пропадут»; кнопка проверки в этом случае покажет красную ошибку.
  3. Откройте сервис-аккаунту доступ к календарю: на панели функции есть email сервис-аккаунта, добавьте его в доступ календаря с правами «Редактор».
  4. Настройте расписание работы: рабочие дни, часы, обед, длительность слота, минимальный запас до записи. Это настройки самой функции: бот будет предлагать только время внутри них.

⚠️ Важно. Расписание работы задаётся прямо в настройках функции «Проверить свободное время». Бот предлагает слоты строго в этих рамках.

📌 Пример (стоматология). Функция «Записать клиента» с длительностью слота 60 минут, рабочие дни Пн-Сб 9:00-19:00, запас 60 минут. Бот не запишет на ближайший час и не предложит воскресенье.

Способ B. Движок окошек (несколько специалистов)

Одна функция вместо цепочки «прочитай график → возьми занятость → посчитай сам». Сервер сам учитывает часы по дням, обеды, отпуска, ограничения дней и возраст, и отдаёт боту готовый список свободных слотов с именами специалистов.

Что понадобится

  • ☐ Google-таблица с графиком специалистов
  • ☐ Список услуг (заполняется в конструкторе: без JSON руками)
  • ☐ (если берёте занятость из CRM) подключённая Education CRM

Формат листа-графика

Лист должен содержать колонки: специалист, услуга (предмет), минимальный возраст, семь колонок дней (пн…вс) с часами работы, обеды, комментарии. Имена колонок по умолчанию: «Преподаватель», «Предмет», «Минимальный возраст», «Обеды», «Комментарии». Если у вас они называются иначе в настройках функции есть раздел «Колонки в листе называются иначе?».

В ячейках дней пишутся часы работы; комментарии понимают ограничения вроде «пробные только вт/чт/сб», маркеры «(без ПЗ)/(день ПЗ)». Непонятное ограничение → специалист скрывается с пометкой менеджеру (лучше не показать, чем показать недоступного).

Шаги

  1. Создать → Запись на время → Свободные окошки для записи.
  2. Укажите ID Google-таблицы с графиком и нажмите проверку подключения.
  3. Услуги заполняются в конструкторе, для каждой услуги: название (как в колонке «Предмет»), синонимы через запятую, минимальный возраст, и (если занятость из CRM) branch_id / subject_id из вашей Education CRM.
  4. Источник занятости: «Education CRM» (берёт занятые уроки из CRM) или «Только график» (без CRM).
  5. Параметры окна: длительность слота, за сколько дней минимум можно записаться, горизонт показа (максимум 14 дней), окно работы бизнеса, таймзона.

💡 Совет. Не вводите JSON руками: конструктор услуг и колонок соберёт его за вас. Кнопка «Редактировать как JSON» оставлена на случай тонкой правки.

Проверь, что работает

Откройте функцию → «Проверить» → передайте услугу (и возраст, если нужен) → бот вернёт список свободных слотов. Для Calendar: проверьте, что слоты попадают в ваши рабочие часы.

Частые ошибки

СимптомПричинаЧто нажать
Бот предлагает время вне рабочих часовРасписание не настроено или взяты дефолтыОткройте функцию «Проверить свободное время», задайте часы/дни
«нет специалистов по услуге»Название услуги не совпадает с колонкой «Предмет»Сверьте название/синонимы в конструкторе услуг
Не считается занятостьНе подключена Education CRM или нет branch_idПодключите CRM, заполните branch_id/subject_id

Вопросы, которые обычно возникают

Можно показывать запись на сегодня?
Да: поставьте «Запись минимум за» = 0.

Сколько дней вперёд показывает движок окошек?
До 14 дней (горизонт настраивается).


Под капотом

  • Движок окошек: builtin_booking (find_free_slots), пересечение графика из Sheets ∩ RU-ограничений из комментариев ∩ занятости из edu-CRM. Модель не делает табличную математику: получает готовый ответ.
  • Google Calendar: builtin_calendar; расписание читается из настроек функции (builtin_config): рабочие дни/часы/слот/запас/таймзона.
  • Услуги хранятся в services_json, имена колонок: в columns_json; конструктор сериализует их за вас.

Простыми словами

Представьте администратора, который наизусть знает график всех мастеров: кто когда работает, у кого обед, кто в отпуске, кого нельзя ставить детям. Клиент говорит «хочу на гитару»: администратор мгновенно называет реальные свободные окошки. Движок окошек это и есть такой администратор внутри бота. А если мастер один, хватит простого календаря.


Дальше: → Бот выставляет счёт
Связано: Google Таблицы · Google Calendar
Не получилось? → Функция не срабатывает