Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

Всем привет! На связи ITentika. Хотим поделиться своей историей перевода корпоративных коммуникаций на Discord.

Предыстория

Идея сделать Discord корпоративным средством координации и общения появилась давно. Для кого-то Discord был инструментом, с помощью которого успешно велись проекты, кто-то использовал Discord для развлекательных целей — как правило, для общения в онлайн-играх.

Почему Discord?

Он функционален. Discord можно кастомизировать таким образом, что люди в компании будут комфортно пользоваться им как для развлекательных целей, так и для работы. Есть возможность шарить файлы (но ни в коем случае не внутренние!), есть голосовые чаты, видеочаты, возможность подключать разнообразных ботов, кроссплатформенные удобные клиенты для всех мобильных и десктопных ОС и полнофункциональная браузерная версия.

Кстати, мотиватором к поиску нового мессенджера стал Skype. Стоит ли говорить, как сильно мы его не любим? Другой удобный инструмент — Slack — покинул рынок, так что решение было очевидным.

Первый этап: настраиваем и создаем ботов

Итак, мы решили использовать Discord как корпоративный мессенджер.

Значит, на нашем сервере нам нужны коллеги и только коллеги, никого извне не пускаем.

Кастомизированные боты

Как закрыть сервер для посторонних пользователей? Конечно же, с помощью ботов. On-premise ботов.

Быстрый поиск выдал нам три-четыре бота-верификатора, и мы выбрали того, который максимально подходил для нашей задачи — верификации через корпоративную почту. Выдали боту канал #холл и назначили главным. Дальше пошла кастомизация. После верификации пользователю задается в никнейм имя и фамилия из почты, что позволяет понять, кто вообще появился на сервере. Менять ники на нашем сервере пользователям не разрешено, ники всегда выставляются этим ботом.

Дальше — больше. Мы доделали функционал, который позволяет боту постоянно проверять аккаунты пользователей и валидировать, является ли человек действующим сотрудником или же уволился. Бот снимает роли и удаляет пользователя с сервера, если обнаруживает, что он с нами больше не работает.

Еще мы запустили бота роль-селектора. Изначально мы его увидели на сервере одной игры, где был создан селектор под классы игровых персонажей. Под наши задачи подошла библиотека discordjs-reaction-role. На ее основе мы написали простого бота с возможностью редактирования исходного информационного сообщения в случаях, когда нам надо добавить роль-эмоджи.

У нас бот приобрел нужные нам функции: селектор локаций, селектор сообществ, которые интересны (хобби, спорт, видеоигры и т. д.).

Роль выдается или забирается при нажатии на определенную реакцию, и таким образом можно выбрать себе необходимые роли и самостоятельно посмотреть, что выбрано у каждого пользователя.

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

Если вы спросите, где же мы искали ботов, то ответ достаточно прост: в гугле. Буквально искали «гитхаб+релевантный бот» и все успешно находили. Потом всех собранных ботов внимательно изучали, забирали самых оптимальных и уже их кастомизировали. А еще смотрели на top.gg. Отлично подходит, чтобы почерпнуть новые идеи или проверить существующего бота, но там мало тех, что можно использовать on-premise. Там есть теги, и с их помощью тоже можно найти все, что нужно, но гугл оказался полезнее.

Самописные боты

Но не гитхабом единым, некоторых ботов мы написали сами.

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

Раньше нужно было сначала добавлять себя в эдиторы, потом удалять роли и только потом все настраивать. Теперь же все эти задачи выполняет фоном бот при создании канала. Он выдает создателю привилегированные права, удаляет лишние, потом делает канал приватным.

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

В дальнейшем канал можно кастомизировать не через Discord, а через сообщения.

Подробнее о ботах

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

Verify Bot

Чтобы на нашем сервере были только коллеги, мы первым делом настроили верификатор. Обрабатывать все в ручном режиме не вариант, поэтому в качестве решения мы выбрали верификацию через почтовый адрес с нашего домена. Выглядит это так: когда бот получает сообщение с почтой в формате firstname.lastname@itentika.ru, он отправляет на указанную почту код верификации.

Если же домен не соответствует или вместо полной почты будет указан алиас, то верификацию пройти не получится.

Через этого же бота мы решили проблему с поиском коллег, которую встречали ранее в том же Telegram: вместо ников бот автоматически подтягивает настоящие имя и фамилию, что сильно упрощает поиск и коммуникацию внутри компании.

Sync Bot

Сразу же после написания прошлого бота встал закономерный вопрос: что делать, если сотрудник увольняется из компании? Обрабатывать все вручную вновь не вариант, поэтому мы решили прибегнуть к небольшой хитрости. Синхронизационный бот обращается к базе данных бота для верификаций, а следом сравнивает ее с выгрузкой наших активных пользователей в Active Directory.

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

Если совпадение не найдено, то пользователь лишается прав и исключается из сервера.

Roles Bot

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

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

Результатом мы остались довольны.

Channels Bot

Для создания пользовательских каналов у нас была выделена отдельная категория, чтобы коллеги могли создавать свои локальные группы без обращения к администраторам. Но вот незадача — созданный канал был виден вообще всем людям на сервере, а для настроек его приватности необходимо было вручную выдать себе права администрирования, а после удалить права на просмотр для всех верифицированных пользователей. Многие коллеги путались, так что и эту задачу мы доверили боту. Теперь при создании канала в пользовательской категории достаточно указать его название, а дальше бот в фоновом режиме делаем все сам.

Backup bot

Ну и куда же без бэкапов? Последний на данный момент бот создает полный бэкап всех настроек, ролей, а также определенного количества последних сообщений во всех каналах, чтобы в критической ситуации мы могли в несколько кликов создать полную реплику нашего готового сервера.

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

Интеграции

Discord очень порадовал своей гибкостью для простеньких интеграций. К примеру, на данный момент мы получаем регулярные уведомления от систем мониторинга Prometheus и Zabbix.

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

А также уведомления о действиях в проектах GitLab и обновлениях задач в таск-трекере Taiga.

Как мы сделали Discord корпоративным мессенджером — делимся полезными советами

Что в итоге получилось?

  • Единый внутренний сервер.
  • Мессенджер с верификацией через корпоративную почту — все легко ищутся по фамилии и имени, в отличие от Skype и Telegram.
  • Альтернатива внутреннего портала с новостной лентой, календарем событий (планируем синхронизировать его с «Яндекс-календарем»), возможностью обсуждений в тредах.
  • Чаты компетенций и чаты локаций (подписка через чат-бота).
  • Общие голосовые комнаты — проведение конференций и видеовстреч (но без записи).
  • Открытый неформальный чат с автоматическим добавлением новых коллег/удалением бывших коллег.
  • Открытые хобби-чаты и постоянные голосовые комнаты для них.
  • Приватные групповые чаты (рабочие и по интересам).

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

Что будем делать дальше?

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

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

А еще мы хотим довести до ума пользовательские каналы и дать коллегам возможность полного редактирования, в идеале расширения функционала до того, что пользователю не нужно будет самостоятельно что-либо настраивать и все можно будет делать через простые и понятные команды.

Еще подумываем о геймификации: Discord позволяет проводить викторины и выдавать некие награды, можно еще подключать разных развлекательных ботов, например музыкальных.

88
13 комментариев

А что там с конфиденциальностью?)))

1

Если действовать секьюрно и не шарить важные файлы — то все хорошо.

Исходниками ботов, конечно же, делиться вы не планируете?(

1

Да, было б интересно. :) Хоть чем-нибудь простым.

Мне дискорд по функционалу нравится, но пользуюсь им только для связи в играх) работать бы там наверное не хотелось бы, хотя, если отдельно личный акк и рабочий, то норм

При наличии Discord Nitro есть возможность сделать отдельный рабочий профиль для рабочего сервера)

На VC объявлена неделя мессенджеров?