MeetingBossBot — Telegram-бот, который организует митинги для вашей команды
Проблема: у нас распределенная команда, и часто приходится созваниваться, чтобы обcудить внезапно возникший вопрос/проблему. Но вот незадача: зачастую собрать всех в одно время, удобное каждому — это тот еще челендж.
А с учетом различных временных зон это еще веселей.
Как мы это делали раньше
Примерный диалог для организации встречи:
- Миша, есть вопрос, нужно обсудить, ты в какое время доступен сегодня и завтра?
- Сегодня после 16.00 и до 18.30, завтра с 9.30 и до 14.00
- Напомни, это по какому времени?
- Новосибирск
Далее идет мыслительный процесс приведения этих интервалов к локальному времени. В зависимости от количества участников, эта итерация повторяется нужное количество раз, а затем...самое интересное, необходимо найти пересечения интервалов доступности среди всех участников с учетом их временных зон, чтобы в итоге запланировать встречу на определенное время.
Не сложновато ли? Подумали мы и сделали бота, который всяко быстрее нас считает и не занят другими делами, то есть по сути автосекретаря, который спросит, напомнит и сохранит все что нужно. Попробовать его в действии можно тут:
История создания MBB - MeetingBossBot
Изначально идея автоматизации организации митингов выглядела очень привлекательной, а главное, простой в реализации. Ну чего там, собрать данные о доступности каждого участника, создать запрос на митинг, получить подтверждение от каждого и назначить время. Но как обычно бывает, это оказалось лишь вершиной айсберга. Для того, чтобы вся эта идея сработала, необходимо брать в расчет следующие факторы:
- Интервалы доступности каждого участника, то есть в какой день в какие часы он потенциально доступен. Причем, нужно иметь возможность указать как регулярную доступность по дням недели, так и исключения на сегодня/завтра
- Занятость в уже запланированных встречах. Потому, что участник не может присутствовать сразу на 2-х митингах, хотя некоторые акробаты умудряются и такое
- Часовой пояс каждого участника
- Дополнительное подтверждение от каждого участника, даже если бот нашел свободные слоты и пересечения по времени. Потому что, мало ли что, планы и внезапные изменения в расписании возможны у каждого.
Дальше в процессе обсуждения в работу были приняты и другие наболевшие хотелки нашей команды:
- Возможность создания списка тем для обсуждения
- Голосование за наиболее актуальные темы
- Возможность оставить комментарий или план действий как итог митинга
- Возможность пингануть участника
- Регулярные встречи
- Кнопки "Я опаздываю" и "Я готов начать раньше"
- Напоминалки
В итоге был сформирован нерасширяемый до MVP список функций бота.
И пошло-поехало, одно за другим вскрывало новые задачи, даже в рамках жестко определенного списка желаемых фич, однако отступать было уже некуда. Сейчас бот стал нашим главным инструментом в организации митингов.
Как это работает
Лучше всего работу бота показывает это небольшое видео:
В целом работа по шагам:
- Подключение к боту через /start
- Задание своей временной зоны и времени доступности
- Создание команды
- Приглашение в команду участников
- Создание тем для обсуждения с указанием длительности обсуждения
- Создание митинга, состоящего из одной или нескольких тем
- Выбор участников для митинга
- Выбор дней
- Выбор подходящих временных интервалов в выбранные дни с учетом доступности участников
- Указание адреса проведения
- Отправка запроса участникам
- Ожидание подтверждения от них
Чтобы повысить шансы согласования времени митинга за 1 проход, инициатору рекомендуется при его создании выбирать как можно больше временных интервалов, желательно даже в разные дни. Все они придут как возможные доступные каждому участнику. В свою очередь участнику рекомендуется оставить в доступе как можно больше этих интервалов, что повышает шансы согласовать митинг. Конечно, бот не всемогущ и случаются ситуации, когда он по итогу опроса не может найти пересечений по времени среди участников, и тогда инициатору приходит уведомление о невозможности создания встречи в выбранные интервалы, особенно если было предложено 2-3 варианта близких к друг другу. С учетом этой информации необходимо снова попробовать.
Когда митинг согласован, у каждого из участников он появляется в разделе Предстоящие встречи, где присутствуют также такие кнопки:
- Я опаздываю - это частый случай, и чтобы не писать в чат, можно просто нажать кнопку и бот в формальной форме донесет это участникам
- Не приду - аналогично первому, такие случае тоже бывают
- Готов начать сейчас - это возможность начать чуть раньше назначенного времени, если все участники нажали эту кнопку. Действительно, если все готовы без пяти минут до начала, зачем сидеть и выжидать. Раньше сядешь - раньше слезешь.
За 10 минут до начала встречи каждому участнику приходит напоминание.
Также в момент согласования и отмены встречи бот посылает ICS событие в календарь, если участник указал свой email в настройках.
В процессе обсуждения (и после него) участники могут оставлять комментарии к определенной теме и, как результат встречи, можно оставить план действий. Это частая проблема, когда поговорили и забыли, а бот сохранит для вас все итоги вашей встречи.
Единственное исключение из общего флоу - это регулярные митинги. Они создаются в боте без подтверждения со стороны участников, что в целом оправдано, поскольку они регулярные и в команде все знают о них.
Планы
Мы только начинаем представлять бота миру, поэтому во многом планы развития будут формироваться на основании полученного фидбека. Все таки флоу и свои особенности есть в каждой команде и это потребует разных доработок.
Что касается монетизации, то пока мы видим ее так: основной функционал будет бесплатным, а дополнительный доступен за подписку. К дополнительному мы относим такие вещи как интеграция с zoom, meet, и прочими. Но этого пока нет.
Если ваша команда использует Telegram для работы, то бот очень легко впишется в ваш флоу, без регистрации и смс )