Чат-бот для бронирования переговорных
в офисе Интаро

26 апреля 2019

1 офис
100 сотрудников
3 переговорные комнаты
Неудержимое желание планировать
и контролировать занятость переговорных
symfony 4
postgresql
php 7
Дано:
Стек технологий
Когда в офисе 100 сотрудников, активно трудящихся над сложными проектами, собрания, мозговые штурмы и skype-коллы идут чередой. Загруженность переговорных комнат велика и отслеживать их занятость через корпоративный чат становилось невозможно. Встречи накладывались друг на друга, а поиск переговорной отнимал драгоценное время. Назрела необходимость введения нового удобного и современного инструмента.

Одним из основных каналов коммуникации в Интаро является Telegram: все сотрудники имеют его аккаунт и регулярно им пользуются. Поэтому чат-бот Telegram стал наиболее подходящим вариантом для решения нашей задачи.

В процессе его разработки мы столкнулись с ситуациями, которые требовали креативных решений. К их числу можно отнести местами непредсказуемое поведения самого бота и неожиданные ограничения со сторонних сервисов, которые были в него интегрированы.
Ангелина Волкова
PR-менеджер Intaro
Возможности бота
До регистрации доступна лишь одна кнопка
После успешной регистрации и аутентификации в наше распоряжение выводится навигационное меню, которое состоит из следующих пунктов:
После нажатия бот запросит остальные данные:
Выбрать дату в интерактивном календаре
Указать время
Указать название события
Составить список участников (необязательно)
Подтвердить данные
Список событий, которые выводятся для организаторов и участников. Организаторы могут управлять событиями, а гости отказаться от участия. Каждый сотрудник может быть как участником, так и организатором.
Список событий всех переговорок за определенный день. Имеет навигационное меню, где можно удобно листать и просматривать все грядущие события с шагом в один день.
Уведомления
Персональные данные
Помощь
Настройки Telegram-уведомлений
Настройки Email-уведомлений
Сбросить настройки
Подробная информация об обрабатываемых персональных данных
Возможность удалить свои данные на стороне сервера (команда /stop)
Чтобы оградить систему от внешних нежелательных посетителей для работы с чат-ботом нужно пройти простую регистрацию. Достаточно через штатный функционал отправить свой номер телефона, привязанный к аккаунту Telegram, боту. На стороне сервера по этому запросу получаем ID аккаунта и высланный номер. Далее идет сравнение полученного номера с номерами сотрудников в Битрикс24, и в случае успешной верификации данные записываются в БД сервиса, а сотрудник получает доступ к функционалу бота.

При этом чтобы не хранить личные данные сотрудников в БД бота на постоянной основе и не тратить время и ресурсы на регулярную синхронизацию, было решено записывать только ID сервисов и телефонный номер, который был передан во время регистрации, а все полученные данные из API сразу же сохранить в кэш.
Для начала бронирования переговорки необходимо нажать на соответствующую кнопку в навигационном меню, выбрать комнату и дату предстоящей встречи в интерактивном календаре. Бот вернет список уже запланированных событий по этим параметрам и доступные промежутки времени. Выбираем подходящее время начала и окончания встречи, вводим название мероприятия. Также можно указать список участников встречи. Для этого был реализован функционал гибкого поиска сотрудников в Битрикс24, который учитывает имена, фамилии, номера телефонов и mail и уже с нескольких букв выводит список вероятных сотрудников.
При бронировании переговорки, редактировании или удалении события информация о встречи фиксируется в Google Calendar и отправляется всем указанным сотрудникам на почту и в Telegram.

А за полчаса до начала бот заботливо напомнит о предстоящем событий. Настройки уведомлений гибко регулируются в приложении или по ссылке в письме, если пользователь не зарегистрирован.
В итоге мы создали безопасный, удобный и функциональный инструмент для бронирования переговорных комнат. А благодаря хорошо продуманной системы кэширования значительно сократили ресурсопотребление, сделав этот сервис быстрым и легким.
Читать также
Подпишитесь на рассылку
Мы будем присылать лучшие статьи и кейсы
о ecommerce не чаще 2 раз в месяц.
Нажимая на кнопку, Вы соглашаетесь с политикой обработки данных