Боты Slack очень полезны: они отвечают на сообщения, оповещают об изменениях, их можно настроить так, чтобы они выполняли команду через косую черту. Кое-какие фичи встроены в мессенджер по умолчанию, а для остального есть интеграция с Zapier — no-code-инструментом для настройки взаимодействия разных платформ.

Zapier — незаменимый помощник зерокодеров и программистов. Он автоматизирует то, что раньше приходилось делать вручную: например, вносит в Google Contacts новую почту из рассылки MailChimp, или передает данные из Excel в Google Spreadsheet. Он станет отличным посредником и для создания кастомных ботов в Slack.

💡 Zapier — важный инструмент зерокодинга, разработки без кода. Мы рассказываем о нем на двухдневных марафонах по созданию веб-приложений и мобильных приложений. Бесплатно!

Виды слак-ботов

Slack-боты делятся на три типа:

🤖 для ответов на вопросы — их триггерит слово, словосочетание или фраза. Создание такого бота заложено в функционале мессенджера. Например, в команду приходит новый человек и интересуется, как тегнуть кого-нибудь. Систему можно научить отвечать на вопрос автоматически скинув инструкцию по пользованию Slack;

🤖 для оповещения — здесь нужна интеграция мессенджера с другой платформой, например, с Trello или Notion через Zapier. Как только создается новая задача, Zapier оповещает о ней сотрудника в личных сообщениях Slack;

🤖 для команд с косой чертой — это те боты, которые работают через слэш («/»). Скажем, кому-то нужно найти GIF-анимацию, в таком случае команда будет выглядеть как «/giphy». Кое-какие команды уже встроены в функционал, полный их список есть в разделе с документацией платформы.

Как сделать слак-бота для ответов на вопросы

В систему встроены простые решения, работающие внутри мессенджера. Следующие инструкции — о том, как делать более сложного бота в Slack. Для этого мы используем Zapier.

Для начала нужно создать аккаунт на Zapier. У инструмента есть бесплатный план, а платные начинаются с $19,99 в месяц для стартер-пака. Попробовать интеграции, в том числе со Slack, можно и без оплаты.

После регистрации запустите новый проект New Zap и выберите в качестве интегрируемого приложения Slack. В Event поставьте New Public Message Posted Anywhere, если хотите, чтобы слак-бот работал во всех каналах, или New Message Posted to Channel для какого-то одного канала.

Затем выберите + Connect a new account для того, чтобы связать Zapier со Slack. Система предложит выпадающее меню, кликните по нужному пункту и нажмите Continue. После этого платформа спросит, должен ли ваш бот реагировать на сообщения от других ботов. Это может вызвать неразбериху, поэтому просто ответьте нет — No.

Платформа предложит протестировать триггер, чтобы понять, корректно ли он работает.

Теперь нужно установить, на какие фразы система должна реагировать, в противном случае действие будет запускаться всякий раз, когда в канале появляется сообщение. Пришло время спуститься ниже и нажать на вкладку Action. Выберите Filter — появится окошко if… only. Действие будет запущено только в ситуации, если осуществится условие.

Добавьте фразы и слова, на которые робот должен реагировать. (Text) Contains будет искать слова во всех сообщениях, (Text) Exactly matches — только в той ситуации, если фраза в сообщении точно совпадает с той, на которую должен триггериться бот.

Остается написать сообщение, которое платформа пошлет в ответ на триггеры. Для этого создайте еще одно связанное со Slack действие, выберите канал и напишите сообщение.

Можно тегнуть пользователя, чтобы он точно заметил ответ, можно даже отправить сообщение от своего имени. Но в целом это все — слак-бот готов! Его создание займет от силы десять минут.

Как сделать слак-бота для оповещений

Допустим, у вас задачник в Trello, и вы хотите, чтобы в Slack приходило оповещение всякий раз, когда там создается новая карточка. Выберите Trello в списке интеграций, а в поле Event кликните New Card.

Нажмите Continue, после чего вам предложат выбрать доску. Потом можно создавать действие Action. Zapier способен оповещать как весь канал, так и одного человека, отправив сообщение ему лично. В поле Message размещается ссылка на карточку с описанием задачи — в сообщение можно добавить любую информацию, включая приветствие или пожелание хорошего дня.

Готово! Слак-боты для оповещений создаются даже быстрее, чем для ответов.

Как сделать слак-бота для команд с косой чертой

Из всех видов слак-ботов командные считаются самыми сложными в реализации. Для них потребуются вебхуки — это инструмент для оповещения клиентов о событии через обратные вызовы HTTP. От API они отличаются тем, что не требуют отправления запросов на сервер. Если что-то происходит, вебхук сам оповещает пользователя.

Знать об этом полезно, но необязательно. Zapier — no-code-платформа и с вебхуками разбирается сам.

Запуск слак-бота для команд с косой чертой начинается с регистрации нового приложения со стороны Slack вот тут. Нужно нажать Create an App, придумать название и выбрать аккаунт. Дальше система предложит вам перечень опций. Вам нужны Slash Commands и Create New Command.

Откроется такое окно:

Команды могут быть любыми — в примере слак-бот ищет контакты. Можно заставить его показывать погоду, искать что-то или открывать документ в Google Docs.

Поле Request URL — то, для чего потребуются вебхуки. Их делает Zapier. Для этого нужно вернуться на платформу и выбрать следующее:

Как только ссылка сгенерируется, ее нужно вставить в поле Request URL. Есть и минус. Вебхуки — премиум-услуга платформы, то есть, с триал-версией создать их не получится.

Команда /contact, как показано в примере, ищет запись в Google Contacts. Чтобы запустить реакцию, нужно открыть Zapier, выбрать Google Contacts в качестве интеграции, а в качестве действия — Find Contact.

Остался последний шаг — отправить оповещение о найденном контакте в Slack в виде ответа на команду с косой чертой. Для этого нужно создать еще одно действие в Zapier и выбрать Send Channel Message, потом перейти на вкладку Custom. Останется только набрать сообщение в Message Text: это будет текст, идущий вместе с найденной информацией.

Готово! Осталось протестировать слак-бота, набрав /contact и имя пользователя из Google Contacts.

Ни строчки кода для нашего проекта не понадобилось. В Slack создание командных ботов требует программирования, но с Zapier этот процесс полностью переходит в зерокодинг.