Skip to main content
Приложение уведомлений — это единая система оповещений Yume. В её основе лежит одно событие компании: новый заказ, задача, документ или сигнал из интеграции превращаются в одну запись-уведомление, у которой при этом есть персональное состояние — прочтения и архивации — отдельно для каждого получателя. Как только уведомление создано, автоматически запускается веер доставки и раскладывает сообщение по трём каналам: веб (обновление ленты в браузере в реальном времени), мобильный push и Telegram. Ключевая идея: прикладной код не рассылает сообщения вручную. Он лишь создаёт уведомление с текстом, темой и адресом объекта, а система сама подбирает получателей по матрице доступа «источник × тема», решает, кому и по каким каналам показывать событие, и умеет сворачивать поток однотипных событий в одну сгруппированную запись со счётчиком. Отдельный режим «клейм-раз» показывает уведомление всем адресатам, но «забрать» его может только один.

Разделы

Модель и веер доставки

Модели уведомления и персонального состояния получателя, сигнал при создании и разветвление доставки по каналам с учётом доступов сотрудников.

Создание и группировка

Фоновые задачи создания уведомлений: одиночные, обновление по объекту и сгруппированные в 30-минутном окне с накоплением счётчика и списка сообщений.

Каналы доставки

Транспортные задачи и сервис доставки: веб через сервис реального времени, мобильный push с деактивацией мёртвых токенов и рассылка в Telegram.

Чтение, архивация и список

Список уведомлений, счётчик непрочитанных, отметки прочтения и архивации, включая логику «первый выиграл» для клейм-раз уведомлений и фильтры.

Push-токены устройств

Регистрация и отписка push-токенов мобильных устройств сотрудника с уникальностью по устройству и типом платформы.

Привязка Telegram

Привязка и отвязка аккаунта сотрудника к Telegram-боту по одноразовому коду подтверждения.

Доступ и настройки

Матрица доступа «источник × тема» на каждого сотрудника, каталог каналов и тем и массовое редактирование настроек уведомлений.

Как всё устроено

Фундамент модуля — пара сущностей: событие компании (одно на факт) и персональное состояние получателя (одно на каждого сотрудника, у которого хранится признак прочтения и архивации). На этом фундаменте держится всё остальное. Персональное состояние устроено намеренно скупо: наличие строки означает «прочитано», а отдельный признак архива — более сильное состояние поверх него. Это описано в разделах «Модель и веер доставки» и «Чтение, архивация и список». Дальше идёт поток «сверху вниз». Прикладной код ставит одну из фоновых задач создания — разовую, обновление по объекту или сгруппированную в скользящем 30-минутном окне (см. «Создание и группировка»). Задача записывает уведомление в базу, и сам факт сохранения запускает веер доставки. Веер не рассылает ничего сам: он подбирает получателей по матрице доступа и ставит в очередь транспортные задачи — по одной на канал (см. «Каналы доставки»). Мобильный канал опирается на push-токены устройств, а Telegram — на предварительную привязку чата к сотруднику. Поперёк всего этого работает слой доступа. Матрица «источник × тема» на каждого сотрудника (см. «Доступ и настройки») — это предохранитель веерной рассылки: даже созданное событие дойдёт до конкретного человека по конкретному каналу только тогда, когда у него включена соответствующая ячейка.
Тема события — сквозной ключ модуля. Одно и то же значение темы управляет тремя разными механизмами: отбором получателей в веере доставки, объединением событий в сгруппированное уведомление и переключателями в матрице доступа. Поэтому корректно проставленная тема важнее, чем кажется на первый взгляд.
Полный перечень моделей и полей — в глоссариях соответствующих разделов.