Как подключить Enji.ai Bot для Slack

Этот материал посвящен регистрации и настроке Enji.ai бота в вашей среде Slack. Для выполнения описанных шагов необходимы права администратора пространства в Slack: Space Admin, Space Owner.

Статья предназначена для клиентов Enji.ai.

Регистрация бота

  1. Перейти на страницу https://api.slack.com/apps
  2. Нажать на кнопку Create an App
Как подключить Enji.ai Bot для Slack

3. Выбрать опцию From an app manifest
4. Выбрать воркспейс
5. Во вкладке YAML указать манифест (ниже). В строках, отмеченных жирным, необходимо заменить URL на свой:

  • <slack-bot-url...> – вставляется URL, где развернут бот. Это предоставляется от DevOps из команды Enji.ai, который развернул бота
  • <frontend-domain.com...> – вставляется URL на сайт, через который входите в Enji. К примеру, yourcompany.enji.ai.
display_information:
  name: Enji.ai
  description: Teamlead that never sleeps
  background_color: "#303036"
features:
  bot_user:
    display_name: Enji.ai
    always_online: true
  slash_commands:
    - command: /report
      url: https://<slack-bot-url-where.deployed.com>/slack/commands
      description: Request report on the team’s activity
      should_escape: false
oauth_config:
  redirect_urls:
    - https://<frontend-domain.com>/api/v1/project/set_workspace_token
    - https://<slack-bot-url-where.deployed.com>/slack/set_user_token
    - https://<slack-bot-url-where.deployed.com>/slack/check_reaction_and_notify
  scopes:
    bot:
      - app_mentions:read
      - channels:history
      - channels:read
      - chat:write
      - chat:write.customize
      - chat:write.public
      - commands
      - groups:history
      - groups:read
      - im:history
      - im:read
      - im:write
      - reactions:read
      - reactions:write
      - users.profile:read
      - users:read
      - users:read.email
      - files:read
      - files:write
      - remote_files:write
      - remote_files:read
      - remote_files:share
settings:
  event_subscriptions:
    request_url: https://<slack-bot-url-where.deployed.com>/slack/event
    bot_events:
      - app_home_opened
      - app_mention
      - app_uninstalled
      - message.channels
      - message.groups
      - message.im
      - reaction_added
      - reaction_removed
  interactivity:
    is_enabled: true
    request_url: https://<slack-bot-url-where.deployed.com>/slack/action
  org_deploy_enabled: false
  socket_mode_enabled: false
  token_rotation_enabled: false


6. 📌📌Передать DevOps, который занимается разверткой, сикреты из полей . Необходимо передать:

  • App ID
  • Client ID
  • Client Secret
  • Signing Secret
Как подключить Enji.ai Bot для Slack
Сикреты от вашего Enji.ai Bot приложения

7. В Display Information указать аватарку – https://enji.ai/wp-content/uploads/2023/08/enji-ai-logo.jpg.

8. В разделе OAuth Tokens for Your Workspace (OAuth & Permissions menu) нажмите на Install to Workspace

  • Bot User OAuth Token – 📌📌передать DevOps, который занимается разверткой.
Как подключить Enji.ai Bot для Slack

9. Заполнить следующие env. на стороне backend и slack-bot (выполняется DevOps, который занимается разверткой):

Backend:

SLACK_BOT_CLIENT_ID=
SLACK_BOT_CLIENT_SECRET=

# Slack bot base url
SLACK_BASE_URL=

COLLECTOR_URL= `<frontend-domain.com...>`

Slack-Bot:

# slack
SELF_URL=<slack_bot_base_url>
SLACK_URL=https://slack.com/api
SLACK_OAUTH=oauth.access
SLACK_SIGNING_SECRET=
SLACK_COLLECTOR_BOT_ID=<app_id>
SLACK_COLLECTOR_BOT_TOKEN=<bot_user_oauth_token>
SLACK_COLLECTOR_BOT_CLIENT_ID=
SLACK_COLLECTOR_BOT_CLIENT_SECRET=
SLACK_COLLECTOR_BOT_SCOPE=channels:history,channels:read,chat:write:bot,commands,groups:history,groups:read,im:history,im:read,mpim:history,mpim:read,reactions:write,users.profile:read,chat:write:user

# Enji backend API's
SLACK_COLLECTOR_GET_TRIGGERS_URL=<backend_base_url>/api/v1/triggers/
SLACK_COLLECTOR_GET_SLACK_USER=<backend_base_url>/api/v1/get_slack_user/
SLACK_COLLECTOR_GET_ACTIVITY=<backend_base_url>/api/v1/me/activity/collector
SLACK_COLLECTOR_SEND_STANDUP_URL=<backend_base_url>/api/v1/register_standup
SLACK_COLLECTOR_UPDATE_SLACK_USER=<backend_base_url>/api/v1/update_slack_user/
SLACK_COLLECTOR_UPDATE_STATUS=<backend_base_url>/api/v1/update_employee_status/
SLACK_COLLECTOR_GET_EMPLOYEE_STATUS=<backend_base_url>/api/v1/get_employee_status/
SLACK_COLLECTOR_GET_CREDENTIALS_URL=<backend_base_url>/api/v1/get_slack_credentials/
SLACK_COLLECTOR_EVENT_REGISTER_URL=<backend_base_url>/api/v1/triggering/register_event/
SLACK_COLLECTOR_TRIGGER_FORCE_REPORT_URL=<backend_base_url>/api/v1/get_projects_for_standup/
SLACK_COLLECTOR_GET_MOTIVATIONAL_MESSAGE=<backend_base_url>/api/v1/get_motivational_message/
SLACK_COLLECTOR_GET_PROJECTS_FOR_STANDUP_URL=<backend_base_url>/api/v1/get_projects_for_standup/
SLACK_COLLECTOR_DELETE_STANDUP_MESSAGE_URL=<backend_base_url>/api/v1/delete_standup/
SLACK_COLLECTOR_UPLOAD_URL=<backend_base_url>/api/v1/upload/
SLACK_COLLECTOR_UPDATE_BOT_CONNECTION_STATUS_TO_FALSE=<backend_base_url>/api/v1/update_bot_connection_status_to_false/

# Redis conection envs
REDIS_HOST=
REDIS_PORT=

Frontend:

VUE_APP_ADD_TO_SLACK_URL=https://slack.com/oauth/authorize?client_id={Client_id}\&granular_bot_scope=1\&scope=app_mentions:read,channels:history,channels:read,chat:write,chat:write.customize,chat:write.public,files:read,files:write,groups:history,groups:read,im:history,im:read,im:write,reactions:read,reactions:write,remote_files:read,remote_files:share,remote_files:write,users.profile:read,users:read,users:read.email,commands\&redirect_uri={<frontend-domain.com...>}/api/v1/project/set_workspace_token

10. Сделать приложение (бот) публичным:

https://api.slack.com/apps/ → Your app name → Manage distribution -> activate public distribution

Организация процесса сдачи стендапов

1. Добавьте Slack-воркспейс вашего проекта в Enji:
– Откройте настройки проекта
– Перейдите в нужный проект во вкладке Projects
– Нажмите на CONNECT SLACK

Как подключить Enji.ai Bot для Slack
Добавление воркспейса в Enji

2. Добавьте бота в Slack канал:
– Откройте Slack вашего проекта
– Нажмите на +ADD APPS и добавьте Enji.ai
– Добавьте бота в нужные каналы – пингуйте @Enji.ai обычным сообщением и оно добавится само

Как подключить Enji.ai Bot для Slack

Выбор канала для сдачи стендапа осуществляется не сразу. Enji проверяет наличие новых воркспейсов каждый час.

Необходимо подождать, чтобы бот обработал все открытые каналы в вашем Slack. Закрытые каналы не парсятся автоматически; надо пригласить бота, чтобы закрытый канал появился в списке

3. Укажите канал для сдачи стендапов:
– Вернитесь в настройки проекта Enji.ai
– Выберите нужный канал из списка в админке проекта

Как подключить Enji.ai Bot для Slack
Выбор канала из Slack-воркспейса

4. Начните сдавать стендап в настроенном канале из П.2

Процесс сдачи стендапов

  1. Тегните бота в канале для стендапов
  2. Напишите о том что делали вчера, что планируете делать сегодня и сообщите о проблемах/хороших вещах.
  3. Стендап считается принятым, когда бот ставит галочку на стендап
Как подключить Enji.ai Bot для Slack
Пример стендапа

Особенности сдачи стендапов в канал

  • Стендаперы: Стендап может сдавать кто угодно: будь это человек из вашего проекта или вне.
  • Ремайндеры: Бот напоминает о дедлайне сдачи стендапа 3 раза. Обычно это 10 минут до дедлайна, во время дедлайна и 10 минут после дедлайна. Чтобы стендапер получил напоминания, в блоке SOW поставьте галочку на is_standuper. Напоминания не работают на тех людей, кому не поставлена галочка в списке SOW.
Как подключить Enji.ai Bot для Slack
Напоминания №1-2
Как подключить Enji.ai Bot для Slack
Напоминание №3
  • Ключевые слова: Обязательные ключевые слова для стендапов – “вчера”, “сегодня”, “проблемы“, “хорошее“. Блоки проблем и хорошего – необязательны, т.е. бот примет стендап с “вчера“ и “сегодня“. Если бот не распознал ключевые слова, то он напишет об этом в треде.
  • Языки: В ключевых словах бот поддерживает 2 языка: RU | ENG
  • Статус стендапера: Когда стендапер берет больничный/отпуск/day-off, необходимо включить режим “отдыхающего“ в профиле сотрудника в правом верхнем углу – Enji.ai
Как подключить Enji.ai Bot для Slack

Как настроить ремайндеры

  1. Перейти в настройки проекта
  2. Во вкладке General выбрать воркспейс и канал, с которого будут считываться стендапы в проект и куда бот отправлять напоминания о сдаче стендапа
  3. Открыть таб Project Alerts
  4. В Business Days включить рабочие дни команды и указать во From и To рабочее время
  5. В настройке Standup reminder указать в какие дни и время необходимо тегать тех, кто должен сдавать стендап.
Как подключить Enji.ai Bot для Slack
Пункт 2. Выбор канала для сдачи стендапа и алертов “пора сдавать стендап”.
Как подключить Enji.ai Bot для Slack
Пункт 4. Настройки рабочего времени команды
Как подключить Enji.ai Bot для Slack
Пункт 5. Настройки “когда тегать чтобы был сдан стендап”

Анализ стендапов

Анализ по динамике сдачи стендапа смотреть в ежедневных отчетах.

Анализ фокусу тиммейтов на ежедневной основе, об их проблемах и радостях смотреть в Enji.ai → Project Report → Standups. Данный отчет собирает стендапы всех людей из команды и даже показывает кто опоздал, а кто сдал стендап своевременно.

Как подключить Enji.ai Bot для Slack
Ежедневный отчет в Slack
Как подключить Enji.ai Bot для Slack
Отчет в Enji

Глоссарий

ТерминЗначение
СтендапПроцесс краткой асинхронной коммуникации, у которой есть формат:“Что ты делал вчера?”“Чем планируешь заняться сегодня?”“Что мешает работе?”“Что помогает работе?”
Ключевые словаОбязательные блоки в стендапе, чтобы он был успешно принят ботом
СтендаперЧеловек, сдающий стендап регулярно
SlackМессенджер обмена сообщениями в компаниях
Slack-воркспейсРабочее пространство для коммуникации команд. Состоит из каналов и директивных сообщений
Slack-каналСпециальные “помещения” внутри Slack-воркспейс, которые объединяют нужных людей и информацию
Бот Enji.aiПриложение, работающее в Slack-каналах для обмена сообщениями, и задающее набор вопросов standup в определенное время каждый рабочий день
Настройки проектаАдминка Enji.ai, где осуществляется добавление Slack-воркспейс и выбор основного канала для стендапов
ENJI
Enji.ai