Уведомления на сообщения
ИванЗдоров, бро!
Тема сегодняшней публикации - уведомления.
Буду разбирать на примере количества непрочитанных сообщений. Однако с помощью данного подхода можно сделать уведомления на что угодно.

Алгоритм:
- Создаём в сообщениях новое поле Status с типом данных "yes/no".
С помощью данного статуса будем видеть прочитано сообщение или нет.

По умолчанию прописываем значение "no", чтобы каждое созданное сообщение автоматически определялось системой, как непрочитанное.
2. Теперь нужно подсчитать количество сообщений, которые:
- Принадлежат текущей беседе
- Имеют статус "no"
- Отправленные не нами
Для этого создадим в repeating group, в которой хранятся все беседы с нашим участием, текстовый элемент с параметрами:

Что мы тут сделали?
Выполнили поиск по всем сообщениям, которые соответствуют условиям:
- Созданы не нами
- Находятся в беседе, которая отображается в текущей ячейке
- Имеют статус "no"
В пункте 4 посчитали их количество
Уведомления почти настроены. Сейчас они выглядят вот так.

Теперь бахнем стиля на них, чтобы смотрелись чётко.
Для этого:
- Поместим текстовый элемент с уведомлениями в группу
- Накинем background color на группу.
- Сделаем эту группу видимой только когда количество сообщений > 0
С первыми двумя действиями всё предельно ясно.
По последнему для простоты: скопируйте из текстового элемента то, что мы прописывали на шаге 2, когда считали количество непрочитанных сообщений:

И вставьте в Conditional группы.

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


Чтобы счётчик обнулялся, нам нужно при открытии беседы поменять у них статус с "no" на "yes". Для этого:
- Когда нажимаем, например, на группу в текущей ячейке, запускаем workflow:

2. Выбираем Data - make changes to a list of things

3. Настройки:
Type of things: message
List to change: Выполняем поиск по сообщениям с теми же условиями, которые прописывали в текстовом элементе. Количество сообщений тут не считаем.
Выбираем параметр, который хотим изменить в списке сообщений.
Нам нужно поменять Status с "no" на "yes", чтобы система определяла сообщения как прочитанные, и они не попадали в счётчик.

Конец.