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 для работы, то бот очень легко впишется в ваш флоу, без регистрации и смс )

66
14 комментариев

А не является ли необходимость в подобном боте симптомом серьезных проблем в организации?

Ответить

Скорее это особенность работы. Но, если вы раскроете свою мысль, то отвечу точнее.

Ответить

промахнулся

Ответить

/

Ответить

А в этой задаче вы не сталкиваетесь с np-трудной задачей составления оптимального расписания, которую невозможно на данный момент решить за полиномиальное время? У вас немного другая постановка задачи? Или вы обходите както этот момент? Интересно послушать

Ответить

Бот ещё работает? Кто знает?

Ответить

Нет, выключен

Ответить