Google Calendar: запись клиентов к менеджерам нескольких клубов

AI-агент находит свободное время в календарях менеджеров и записывает клиента к свободному. Компания подключает один Google-аккаунт, собирает менеджеров каждого клуба в отдельный «календарь» и назначает его своим ботам. Один календарь можно назначить нескольким ботам, например чат-боту и голосовому боту одного клуба.

Как это работает

Google-аккаунт компании ──┬── календарь Василия ─┐
                          ├── календарь Петра    ├── «Фитнес клуб 1» ──▶ чат-бот клуба 1
                          ├── календарь Марии   ─┘                    └▶ голосовой бот клуба 1
                          ├── календарь Николая ─┐
                          └── календарь Даниила ─┴── «Фитнес клуб 2» ──▶ чат-бот клуба 2

В диалоге бот делает две вещи:

  1. Ищет свободные слоты. Одним запросом к Google получает занятость всех менеджеров своего календаря. Слот свободен, если в это время свободен хотя бы один из них. Бот предлагает клиенту только проверенное время.
  2. Записывает. Когда клиент согласился, бот ещё раз проверяет занятость, выбирает свободного менеджера и создаёт событие в его личном календаре со ссылкой на Google Meet. Если свободны несколько менеджеров, записи распределяются между ними по очереди.

Клиенту бот называет только дату и время. Ссылку на встречу он не показывает: её менеджер отправляет сам.

Что нужно от клуба

Один Google-аккаунт компании

Любой Google-аккаунт, к которому есть доступ у администратора. Его личный календарь используется только как запасной, пока «календари» не созданы. Хорошая практика: отдельный аккаунт вида booking@…, а не личная почта директора.

Менеджеры открывают свои календари

Каждый менеджер в своём Google Calendar: Настройки → Мои календари → Открыть доступ отдельным пользователям → Добавить, указывает почту аккаунта компании и выбирает право «Внесение изменений в мероприятия».

Настройки календаря менеджера в Google Calendar: аккаунту компании выдано право «Внесение изменений в мероприятия»
Менеджер открывает календарь аккаунту компании. Нужно именно право «Внесение изменений в мероприятия».

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

Рабочее время задаётся событиями

Бот считает свободным любое время, не занятое событием. Нерабочие часы, обед, выходные и отпуск менеджер закрывает повторяющимися событиями в своём календаре. Отдельного графика в кабинете нет: календарь и есть источник истины.

Настройка в кабинете

Шаг 1. Подключите Google

Настройки → Интеграции → Google Calendar → Подключить. Войдите в аккаунт компании и разрешите доступ к календарю. Карточка переходит в состояние «Подключено», под ней появляется блок «Календари для записи».

Шаг 2. Создайте «календарь» на клуб

Нажмите «+ Добавить календарь», дайте название и отметьте галочками менеджеров этого клуба. В списке показаны все календари, которые менеджеры открыли аккаунту компании, плюс собственный календарь аккаунта.

Форма календаря в Sales Workshop: название «Фитнес клуб 2 · Мира» и галочки на календарях менеджеров
Форма календаря: название и галочки менеджеров. Серый календарь открыт без права записи.

Повторите для каждого клуба. В результате карточка выглядит так:

Карточка Google Calendar в настройках Sales Workshop с двумя календарями: «Фитнес клуб 1 · Ленинский» и «Фитнес клуб 2 · Мира»
Два календаря по клубам, в каждом свои менеджеры.

Календарь можно изменить или удалить в любой момент. Новый менеджер клуба добавляется одной галочкой в существующий календарь, боты перенастраивать не нужно.

Шаг 3. Назначьте календарь боту

Откройте бота, вкладка «Инструменты». Под инструментом «Поиск свободных слотов в календаре» есть выбор «Календарь для записи».

Вкладка «Инструменты» бота: под поиском свободных слотов выбран календарь «Фитнес клуб 1 · Ленинский»
Выбор календаря у бота. Чат-бот и голосовой бот одного клуба выбирают один и тот же календарь.

Одинаковый выбор делается у каждого бота клуба. Чат-бот и голосовой бот одного клуба выбирают один и тот же календарь и записывают к одним и тем же менеджерам.

Что происходит без выбора

СитуацияКуда бот записывает
Календарь выбранК менеджерам этого календаря
Не выбран, у компании ровно один календарьВ него
Не выбран, календарей несколько или ни одногоВ личный календарь аккаунта компании
Выбранный календарь удалилиПо двум строкам выше

При нескольких клубах календарь у каждого бота стоит выбрать явно.

Как это выглядит в диалоге

Слева диалог клиента с ботом в WhatsApp с предложением слотов и подтверждением записи, справа таймлайн лида и событие в Google Calendar менеджера
Диалог с клиентом, таймлайн лида в кабинете и событие в календаре менеджера.

Слева диалог с клиентом. Справа таймлайн лида в кабинете: строка проверки календаря, строка записи с именем менеджера и ссылкой на Meet, и событие, как его видит менеджер у себя в Google Calendar. В описание события бот кладёт имя и телефон клиента и ссылку на лид в кабинете, чтобы менеджер открыл диалог одним кликом.

Частые вопросы

Можно записать клиента к конкретному менеджеру по имени?
Нет. Бот выбирает любого свободного менеджера календаря. Если клубу нужен выбор по имени или по услуге, напишите вашему менеджеру Sales Workshop.
У клубов разные Google-аккаунты. Подойдёт?
Подключается один аккаунт на компанию. Менеджеры всех клубов открывают календари именно ему. Отдельное подключение на каждый клуб не поддерживается.
Менеджер уволился.
Снимите галочку в календаре клуба. Уже созданные события останутся в его Google Calendar.
Клиент пишет в WhatsApp и звонит. Это одна запись?
Это два разных диалога, у каждого своя запись, если клиент согласился на слот дважды. Бот перед записью проверяет занятость, поэтому одного и того же менеджера на одно время он не займёт.
Переподключили Google. Календари пропали?
Нет. При переподключении того же аккаунта список календарей и их состав сохраняются. Если подключён другой аккаунт, менеджерам нужно открыть календари ему заново.