Этот материал посвящен регистрации и настроке Enji.ai бота в вашей среде Slack. Для выполнения описанных шагов необходимы права администратора пространства в Slack: Space Admin, Space Owner.
Статья предназначена для клиентов Enji.ai.
Регистрация бота
- Перейти на страницу https://api.slack.com/apps
- Нажать на кнопку
Create an App
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
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, который занимается разверткой.
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
2. Добавьте бота в Slack канал:
– Откройте Slack вашего проекта
– Нажмите на +ADD APPS и добавьте Enji.ai
– Добавьте бота в нужные каналы – пингуйте @Enji.ai обычным сообщением и оно добавится само
Выбор канала для сдачи стендапа осуществляется не сразу. Enji проверяет наличие новых воркспейсов каждый час.
Необходимо подождать, чтобы бот обработал все открытые каналы в вашем Slack. Закрытые каналы не парсятся автоматически; надо пригласить бота, чтобы закрытый канал появился в списке
3. Укажите канал для сдачи стендапов:
– Вернитесь в настройки проекта Enji.ai
– Выберите нужный канал из списка в админке проекта
4. Начните сдавать стендап в настроенном канале из П.2
Процесс сдачи стендапов
- Тегните бота в канале для стендапов
- Напишите о том что делали вчера, что планируете делать сегодня и сообщите о проблемах/хороших вещах.
- Стендап считается принятым, когда бот ставит галочку на стендап
Особенности сдачи стендапов в канал
- Стендаперы: Стендап может сдавать кто угодно: будь это человек из вашего проекта или вне.
- Ремайндеры: Бот напоминает о дедлайне сдачи стендапа 3 раза. Обычно это 10 минут до дедлайна, во время дедлайна и 10 минут после дедлайна. Чтобы стендапер получил напоминания, в блоке SOW поставьте галочку на is_standuper. Напоминания не работают на тех людей, кому не поставлена галочка в списке SOW.
- Ключевые слова: Обязательные ключевые слова для стендапов – “вчера”, “сегодня”, “проблемы“, “хорошее“. Блоки проблем и хорошего – необязательны, т.е. бот примет стендап с “вчера“ и “сегодня“. Если бот не распознал ключевые слова, то он напишет об этом в треде.
- Языки: В ключевых словах бот поддерживает 2 языка: RU | ENG
- Статус стендапера: Когда стендапер берет больничный/отпуск/day-off, необходимо включить режим “отдыхающего“ в профиле сотрудника в правом верхнем углу – Enji.ai
Как настроить ремайндеры
- Перейти в настройки проекта
- Во вкладке General выбрать воркспейс и канал, с которого будут считываться стендапы в проект и куда бот отправлять напоминания о сдаче стендапа
- Открыть таб Project Alerts
- В Business Days включить рабочие дни команды и указать во From и To рабочее время
- В настройке Standup reminder указать в какие дни и время необходимо тегать тех, кто должен сдавать стендап.
Анализ стендапов
Анализ по динамике сдачи стендапа смотреть в ежедневных отчетах.
Анализ фокусу тиммейтов на ежедневной основе, об их проблемах и радостях смотреть в Enji.ai → Project Report → Standups. Данный отчет собирает стендапы всех людей из команды и даже показывает кто опоздал, а кто сдал стендап своевременно.
Глоссарий
Термин | Значение |
---|---|
Стендап | Процесс краткой асинхронной коммуникации, у которой есть формат:“Что ты делал вчера?”“Чем планируешь заняться сегодня?”“Что мешает работе?”“Что помогает работе?” |
Ключевые слова | Обязательные блоки в стендапе, чтобы он был успешно принят ботом |
Стендапер | Человек, сдающий стендап регулярно |
Slack | Мессенджер обмена сообщениями в компаниях |
Slack-воркспейс | Рабочее пространство для коммуникации команд. Состоит из каналов и директивных сообщений |
Slack-канал | Специальные “помещения” внутри Slack-воркспейс, которые объединяют нужных людей и информацию |
Бот Enji.ai | Приложение, работающее в Slack-каналах для обмена сообщениями, и задающее набор вопросов standup в определенное время каждый рабочий день |
Настройки проекта | Админка Enji.ai, где осуществляется добавление Slack-воркспейс и выбор основного канала для стендапов |