Skip to content

v1.6 — Slack + Telegram delivery

Choose a tag to compare

@dripips dripips released this 12 May 14:22

v1.6 — Slack + Telegram channels для уведомлений

Стаффские уведомления (interview-reminders, document-expiring, AI-runs, applicant stage changes) теперь летят не только в БД и email, но и в Slack и Telegram.

Что подключается

  • Slack — per-user incoming webhook. Юзер сам создаёт Slack-app, генерит webhook URL для нужного канала, пастит в `/profile/integrations`.
  • Telegram — company-wide бот (создаётся через @Botfather, токен сохраняется в `/settings/communications`) + личный chat_id юзера.

Архитектура

  • `app/notifiers/delivery_methods/{slack,telegram}.rb` — кастомные Noticed v3 DeliveryMethods с per-recipient URL/auth.
  • `ApplicationNotifier` дополняет deliver_by `:slack` / `:telegram` с conditional `if:` через computed `event_kind` + `user.notify_for?(kind, channel)`.
  • `User::NOTIFICATION_CHANNELS = [in_app, email, slack, telegram]` — единый каталог. Все 6 существующих kinds (`ai_run_completed`, `interview_*`, `applicant_stage_change`, `document_expiring`) получают slack/telegram = false по дефолту.

UI

  • /profile/integrations (новая вкладка профиля) — Slack webhook + Telegram chat_id. Кнопки Тест реально шлют тестовое сообщение и репортят результат.
  • /profile/notifications — две новые колонки (Slack / Telegram), disabled и со ссылкой "подключить" пока канал не настроен.
  • /settings/communications — секция для Bot Token компании (BotFather → 123456:ABC-DEF...).

Migration

  • `users.slack_webhook_url` + `users.telegram_chat_id`

i18n

  • +27 ключей × 3 локали → паритет 2269/2269/2269

Mobile

Inherits v1.5 — формы интеграций, таблица уведомлений, settings-страницы responsive из коробки.

Bonus fix

  • `bundle update nokogiri 1.19.2 → 1.19.3` (CVE patches, blocked CI)