Так как многие, похоже, останутся на удаленке на лето, Slack станет центром пересечения буквально всех процессов и коммуникаций. Хотим поделиться набором мини-приложений, которые помогут решать типовые проблемы разных команд.
![](https://habrastorage.org/r/w780q1/webt/bc/dt/ec/bcdtecpmgombdhio3_6imixchee.jpeg)
Например, вы можете сделать себе бота, которыйбудет будит CTO.
Мы строили исходно распределенную компанию и успели пройти по многим граблям настройки общения и обмена данными почти только через мессенджер. Практика показала, что боты — то, что доктор прописал.
Даже в 2019-м сотрудники компаний все еще массово попадали в почтовые апокалипсисы — это когда одно неосторожное ответить всем в корпоративной рассылке на тысячи человек приводит к хаосу на полдня. Хотя вы всего лишь задали невинный и актуальный, в общем-то, вопрос: «А как получать меньше уведомлений?»
![](https://habrastorage.org/r/w1560/webt/wp/xi/iu/wpxiiuksiq-cgdv3jam9unk6ju0.png)
Все портреты и имена обращающихся сгенерированы, все совпадения — случайны.
В Slack есть своя версия этого греха — зайти в канал #general и спросить что-нибудь почти личное. Плюс — вишенка на торте — тегнуть всех.
Cидите вы спокойно, работаете, слушаете что-нибудь любимое фоном, — а тут вас дергает уведомление. «Наверняка это что-то важное» — думаете вы, ведь вы настроили Slack так, чтобы оно приходило, только когда вас отмечают. Но затем вы видите левое сообщение и… ставите ему раздраженное эмодзи. Эмодзи ничему людей не учат, поверьте. А если не остановить поток сообщений, он лишь возрастет — теория разбитых окон, куда без нее.
Поэтому мы завели каналу ограниченное число модераторов — постить туда прямо могут только они, а для остальных ввели бота-цензора:
Окей, мы отбили #general. Но наверняка в Slack осталось еще под сотню-другую важных источников информации — и у некоторых названия сильно совпадают. Например, у нас по каждому продукту существует целая линейка публичных каналов с единым корнем (название продукта или отдела) и суффиксами (каналы подкоманд, например).
Скажем, вы вбиваете в поиске что-то вроде #mobile, чтобы найти, где поделиться замечанием или предложением по работе одного из приложений. И видите примерно такой список:
![](https://habrastorage.org/webt/hk/vq/fj/hkvqfjc0sx0k0vfondfctielx-i.gif)
С недавних пор завели правило — неактивные в течение 90 дней каналы архивируются.
Если у вас несколько каналов с похожими названиями, поверьте, большинство будет задавать вопросы не в том, в котором стоило бы.
![](https://habrastorage.org/r/w1560/webt/vd/xw/su/vdxwsuenwncpgnis0uaurs9vwtg.png)
Раньше мы указывали типы запросов, которые можем обработать, в закрепленном сообщении. Но (surprise!) его никто не читал.
Теперь у нас есть бот, который присоединяется к каналу и при добавлении любого новичка отправляет ему эфемерное (это которое 'Only you can see this message') сообщение с правилами.
Иногда это работает — по крайней мере, лучше, чем жить просто с закрепом.
На этот счет мы написали целый «взвод» ботов. Каждый помогает в своем кейсе.
Началось все с преподавателей — у них есть довольно подробная и обновляемая wiki, целый сайт. Отдельный раздел на нем посвящен внештатным ситуациям на уроке: «отвалилась» камера или микрофон ученика, «отвалился» сам ученик и т.д. Но, конечно же, у людей есть свои каналы — а дальше вы поняли.
![](https://habrastorage.org/r/w1560/webt/7k/vi/xr/7kvixrfdggnpr9qzf2h1m2nielg.png)
Когда человек немного в панике, он обычно забывает про отдельный «бездушный» FAQ — и пишет просьбы о помощи в привычный канал, где сидят люди.
Мы поступили просто: если кто-то не идет в вики, то она должна прийти к нему. Так как вопросы часто типовые, написали бота, который:
Дальше были боты, которые помогают подготовить и ускорить все для заключения договоров — формирование пакета документов, его согласование и отправка в другие службы тоже решается прямо в мессенджере… И тогда мы замахнулись на Jira.
Общение команд разработки и инфраструктуры идет через канал, в который за день падают по 30-50 сообщений. Ребятам из инфры есть чем заняться, помимо создания тикетов в Jira. Поскольку любое сообщение в канале #infra будет или запросом, или отчетом о проблеме, есть бот, который автоматически создает таски из сообщений вида «привет, вот-что-случилось-или-нужно, помогите, пожалуйста».
![](https://habrastorage.org/r/w780q1/webt/5z/vc/d7/5zvcd7m11tmtuuej5fndyiyuqca.jpeg)
Реакции под сообщениями — это не просто так. Это статусы тикетов в общей системе управления задачами.
Когда по заявке есть движение, инфраструктура ставит новую реакцию под слак-репортом, а бот реагирует и на основе эмодзи автоматически ставит правильные статусы в основной задаче.
Если вы спрашивали себя, кто будетсторожить сторожей следить за ботами, то это тоже бот. Мы зовем его Прокопий. Он считает обращения за день и смотрит на реакции под ними. Утром следующего дня он присылает дайджест: какие таски закрыли, какие нет, а авторы обращений получают просьбу оценить работу команды инфраструктуры.
Целый выводок ботов, наоборот, помогает доставать данные из сторонних систем. Так, у тимлидов в ходу три помощника:
Slack-burndown-bot — берет спринт в Jira и формирует диаграмму сгорания: вот сколько всего задач, вот сколько вы сделали, вот сколько осталось.
![](https://habrastorage.org/r/w780q1/webt/ib/cj/7q/ibcj7qguew8t-jyz97xhrg0abre.jpeg)
А команда может по вечерам вместе любоваться нагорящий закат горящий спринт в своем канале.
Бот Арсений — присылает в канал команды более развернутую статистику: у кого назначены ревью, какие из текущих задач сжирают больше запланированного, кто заполнил ворклоги и т.д.
Jakebot — помогает тимлиду сэкономить полчаса и быстро собрать пул тикетов для следующего спринта, которые он хочет обсудить с командой. Быстро выбираем задачи через интерфейс, бот формирует сообщение с данными о задачах, команда голосует теми же эмодзи.
![](https://habrastorage.org/r/w780q1/webt/lk/ph/lq/lkphlqn35vnxxbft4_nhmkcpwgm.jpeg)
Если хочешь воздержаться — ставишь “кирпич”, чтобы бот потом не тыркал, что ты не проголосовал.
Иногда бывает такое, что что-то легло. Особенно, ночью.
Для критичных падений мы завели отдельный канал и подключили к нему бота, который дублирует дежурного. Мы используем сервис Opsgenie для алертинга: говоришь ему следить за набором серверов и, если какой-то упал, то сервисприсылает дежурному сообщение на пейджер звонит дежурному на мобильный. Если дежурный не реагирует, спустя 20-30 секунд ему звонит робот — и когда трубка поднята, робот сообщает что-то вроде: «Там лежит, ужас, нажмите 1, если вы это услышали — и чините».
![](https://habrastorage.org/webt/wm/nk/su/wmnksuwzrl3uucnchb7tcdbb02i.gif)
Процесс на гифке ускорен, но отражает суть.
Если человек не поднял трубку или не нажал 1, это эскалирует звонок до его тимлида.
А если и тимлид недоступен, звонок может эскалироваться вплоть до технического директора.
У Opsgenie есть кастомный триггер, так что вы можете настроить поведение и список обзвона, исходя из канала, к которому подключен бот — таких каналов может быть несколько.
Когда вы начнете автоматизировать все с помощью ботов, поверьте, к вам постоянно будут приходить с просьбой «А напишите и мне вооот такого». Тогда вам откроется правда: очень часто это будет что-то вроде “бот, который показывает кнопки, а если нажимаешь на одну кнопку, приходит такое сообщение (если на другую — другое)". В общем, бот, реализующий дерево сообщений, популярен и применим во многих кейсах бизнеса.
Мы сделали шаблон для такого случая: заказчик приносит нам сценарий, мы описываем конфиг — какие сообщения и какие куда ведут. И все, оно работает. Не надо даже программировать.
P.S. Недавно победили еще одну проблему, которая бесила многих: сделали бота, который разворачивает ссылки на внешние скриншотилки в полноценные картинки — не надо никуда переходить и отвлекаться на кучу баннеров и поп-апов, которыми часто обвешаны внешние файлохранилища.
![](https://habrastorage.org/webt/bc/dt/ec/bcdtecpmgombdhio3_6imixchee.jpeg)
Например, вы можете сделать себе бота, который
Мы строили исходно распределенную компанию и успели пройти по многим граблям настройки общения и обмена данными почти только через мессенджер. Практика показала, что боты — то, что доктор прописал.
1. Люди спрашивают все подряд и делятся субъективно «важными» вещами в основном канале
Даже в 2019-м сотрудники компаний все еще массово попадали в почтовые апокалипсисы — это когда одно неосторожное ответить всем в корпоративной рассылке на тысячи человек приводит к хаосу на полдня. Хотя вы всего лишь задали невинный и актуальный, в общем-то, вопрос: «А как получать меньше уведомлений?»
![](https://habrastorage.org/webt/wp/xi/iu/wpxiiuksiq-cgdv3jam9unk6ju0.png)
Все портреты и имена обращающихся сгенерированы, все совпадения — случайны.
В Slack есть своя версия этого греха — зайти в канал #general и спросить что-нибудь почти личное. Плюс — вишенка на торте — тегнуть всех.
Cидите вы спокойно, работаете, слушаете что-нибудь любимое фоном, — а тут вас дергает уведомление. «Наверняка это что-то важное» — думаете вы, ведь вы настроили Slack так, чтобы оно приходило, только когда вас отмечают. Но затем вы видите левое сообщение и… ставите ему раздраженное эмодзи. Эмодзи ничему людей не учат, поверьте. А если не остановить поток сообщений, он лишь возрастет — теория разбитых окон, куда без нее.
Поэтому мы завели каналу ограниченное число модераторов — постить туда прямо могут только они, а для остальных ввели бота-цензора:
- При попытке написать в #general бот моментально удаляет пост из канала — но для автора это незаметно: кажется, что тебе просто “не дают” опубликовать сообщение. При этом робот сохраняет текст и данные об авторе.
- Бот напоминает, зачем нужен канал и предлагает подумать, стоит ли писать именно в него.
- Если автор упорствует, бот отправляет текст на проверку модератору.
- Дальше модератор — обычно это кто-то из внутреннего PR — или опубликует текст в канале, указав автора оригинала, или напишет автору в личку, объяснит, почему его сообщение нерелевантно каналу, и где лучше публиковать такие запросы или новости.
Но ведь однотипные вопросы никуда не уйдут?
Да, и люди не очень любят лазать во внешние вики, где часто содержится актуальный и полный ответ на их вопрос — об этом еще поговорим.
А для частых вопросов мы завели канал с говорящим названием #faq — кстати, отвечают в нем уже люди, а не боты.
А для частых вопросов мы завели канал с говорящим названием #faq — кстати, отвечают в нем уже люди, а не боты.
2. Никто не читает закреп перед тем, как написать в канал
Окей, мы отбили #general. Но наверняка в Slack осталось еще под сотню-другую важных источников информации — и у некоторых названия сильно совпадают. Например, у нас по каждому продукту существует целая линейка публичных каналов с единым корнем (название продукта или отдела) и суффиксами (каналы подкоманд, например).
Скажем, вы вбиваете в поиске что-то вроде #mobile, чтобы найти, где поделиться замечанием или предложением по работе одного из приложений. И видите примерно такой список:
![](https://habrastorage.org/webt/hk/vq/fj/hkvqfjc0sx0k0vfondfctielx-i.gif)
С недавних пор завели правило — неактивные в течение 90 дней каналы архивируются.
Если у вас несколько каналов с похожими названиями, поверьте, большинство будет задавать вопросы не в том, в котором стоило бы.
![](https://habrastorage.org/webt/vd/xw/su/vdxwsuenwncpgnis0uaurs9vwtg.png)
Раньше мы указывали типы запросов, которые можем обработать, в закрепленном сообщении. Но (surprise!) его никто не читал.
Теперь у нас есть бот, который присоединяется к каналу и при добавлении любого новичка отправляет ему эфемерное (это которое 'Only you can see this message') сообщение с правилами.
Иногда это работает — по крайней мере, лучше, чем жить просто с закрепом.
3. Задают вопросы, которые есть во внешнем FAQ. И вообще не любят выходить во внешние информационные системы
На этот счет мы написали целый «взвод» ботов. Каждый помогает в своем кейсе.
Началось все с преподавателей — у них есть довольно подробная и обновляемая wiki, целый сайт. Отдельный раздел на нем посвящен внештатным ситуациям на уроке: «отвалилась» камера или микрофон ученика, «отвалился» сам ученик и т.д. Но, конечно же, у людей есть свои каналы — а дальше вы поняли.
![](https://habrastorage.org/webt/7k/vi/xr/7kvixrfdggnpr9qzf2h1m2nielg.png)
Когда человек немного в панике, он обычно забывает про отдельный «бездушный» FAQ — и пишет просьбы о помощи в привычный канал, где сидят люди.
Мы поступили просто: если кто-то не идет в вики, то она должна прийти к нему. Так как вопросы часто типовые, написали бота, который:
- Отправлял запрос из Slack (только ключевые слова, разные «привет», «помогите» легко отсечь) ко внешней вики.
- Приносил топ ответов — а вероятность, что в первых, скажем, пяти строках выдачи будет нужное, велика. И практика это подтвердила.
Дальше были боты, которые помогают подготовить и ускорить все для заключения договоров — формирование пакета документов, его согласование и отправка в другие службы тоже решается прямо в мессенджере… И тогда мы замахнулись на Jira.
4. Никто не любит рутину, да и не всегда можно быстро переносить данные руками во внешние системы
Общение команд разработки и инфраструктуры идет через канал, в который за день падают по 30-50 сообщений. Ребятам из инфры есть чем заняться, помимо создания тикетов в Jira. Поскольку любое сообщение в канале #infra будет или запросом, или отчетом о проблеме, есть бот, который автоматически создает таски из сообщений вида «привет, вот-что-случилось-или-нужно, помогите, пожалуйста».
![](https://habrastorage.org/webt/5z/vc/d7/5zvcd7m11tmtuuej5fndyiyuqca.jpeg)
Реакции под сообщениями — это не просто так. Это статусы тикетов в общей системе управления задачами.
Когда по заявке есть движение, инфраструктура ставит новую реакцию под слак-репортом, а бот реагирует и на основе эмодзи автоматически ставит правильные статусы в основной задаче.
Если вы спрашивали себя, кто будет
5. Тратят время на ручную выгрузку и визуализацию данных из внешних систем
Целый выводок ботов, наоборот, помогает доставать данные из сторонних систем. Так, у тимлидов в ходу три помощника:
Slack-burndown-bot — берет спринт в Jira и формирует диаграмму сгорания: вот сколько всего задач, вот сколько вы сделали, вот сколько осталось.
![](https://habrastorage.org/webt/ib/cj/7q/ibcj7qguew8t-jyz97xhrg0abre.jpeg)
А команда может по вечерам вместе любоваться на
Бот Арсений — присылает в канал команды более развернутую статистику: у кого назначены ревью, какие из текущих задач сжирают больше запланированного, кто заполнил ворклоги и т.д.
Jakebot — помогает тимлиду сэкономить полчаса и быстро собрать пул тикетов для следующего спринта, которые он хочет обсудить с командой. Быстро выбираем задачи через интерфейс, бот формирует сообщение с данными о задачах, команда голосует теми же эмодзи.
![](https://habrastorage.org/webt/lk/ph/lq/lkphlqn35vnxxbft4_nhmkcpwgm.jpeg)
Если хочешь воздержаться — ставишь “кирпич”, чтобы бот потом не тыркал, что ты не проголосовал.
6. Говорят, «ну я же написал вот там...» или Бот, который может разбудить CTO
Иногда бывает такое, что что-то легло. Особенно, ночью.
Для критичных падений мы завели отдельный канал и подключили к нему бота, который дублирует дежурного. Мы используем сервис Opsgenie для алертинга: говоришь ему следить за набором серверов и, если какой-то упал, то сервис
![](https://habrastorage.org/webt/wm/nk/su/wmnksuwzrl3uucnchb7tcdbb02i.gif)
Процесс на гифке ускорен, но отражает суть.
Если человек не поднял трубку или не нажал 1, это эскалирует звонок до его тимлида.
А если и тимлид недоступен, звонок может эскалироваться вплоть до технического директора.
У Opsgenie есть кастомный триггер, так что вы можете настроить поведение и список обзвона, исходя из канала, к которому подключен бот — таких каналов может быть несколько.
7. А еще все хотят своего бота для слэка
Когда вы начнете автоматизировать все с помощью ботов, поверьте, к вам постоянно будут приходить с просьбой «А напишите и мне вооот такого». Тогда вам откроется правда: очень часто это будет что-то вроде “бот, который показывает кнопки, а если нажимаешь на одну кнопку, приходит такое сообщение (если на другую — другое)". В общем, бот, реализующий дерево сообщений, популярен и применим во многих кейсах бизнеса.
Мы сделали шаблон для такого случая: заказчик приносит нам сценарий, мы описываем конфиг — какие сообщения и какие куда ведут. И все, оно работает. Не надо даже программировать.
P.S. Недавно победили еще одну проблему, которая бесила многих: сделали бота, который разворачивает ссылки на внешние скриншотилки в полноценные картинки — не надо никуда переходить и отвлекаться на кучу баннеров и поп-апов, которыми часто обвешаны внешние файлохранилища.