Несколько лет назад в directCRM была добавлена нотификация пользователей о создаваемых ими задачах. Например, отправляете вы рассылку потребителям, а вам приходят письма — рассылка поставлена в очередь, рассылка завершена. Или ставите задачу импорта потребителей, а в письме — импорт был почти успешным, не обработалось 99 строк из 100.

Все было хорошо, до тех пор, пока не возникла потребность отслеживать ошибки в задачах, заведенных другими пользователями.

Простое условие после обсуждения вылилось в серьезную доработку, и в итоге у нас появилась достаточно мощная система подписок.

Подписка теперь происходит по фильтру (т. е. можно собрать фильтр любой сложности — на эти задачи хочу подписываться, на те не хочу и пр.) и использует систему событий.
В частности, это означает то, что если в будущем появится задача, подходящая под ранее созданный фильтр, то подписчик будет также на нее подписан.

Как всё это выглядит лучше показать на примере.

Допустим, я хочу подписаться на все события, связанные с импортом потребителей. Для этого в фильтре я выбираю тип массовой операции «Стандартный импорт (добавляем новых)»:

2015-02-20_1342

После этого в блоке Действия вызываю специальный попап:

2015-02-20_1343

и явно отмечаю, что хочу подписаться на все события:

2015-02-20_1344

Однако часто надо следить только за задачами, завершенными с ошибками (теми самыми, где не обработано 99 строк из 100 или которые просто поломались совсем), для этого в списке необходимо выбрать событие «Ошибка в задаче»

2015-02-20_1349

Можно выбирать несколько событий одновременно:2015-02-20_1352

События задач, на которые можно подписаться:

— БД недоступна длительное время (больше 10 незапусков задачи подряд) — например, сложный триггер пытается запуститься несколько раз подряд и не может.
— Долгая приостановка задачи (больше 1 дня) — кто-то приостановил задачу и забыл про это.
— Долгое выполнение задачи (больше 30 минут) — сложное условие задачи, одна транзакция больше 30 минут, это непорядок
— Задача завершена
— Задача запущена
— Задача отменена
— Задача приостановлена
— Ошибка в задаче — когда есть ошибки валидации и/или когда задача решила помереть в процессе выполнения.

Само-собой, события срабатывают, когда впринципе кто-то что-то делает с задачей (например Вася останавливает задачу Пети), а не только автор.

Все подписки отображаются на странице «Мои подписки», которая доступна с быстрого старта и около граватарки:

2015-02-20_1354_001

2015-02-20_1354

Сама страница подписок:

2015-02-20_1403

Везде, где раньше можно было подписываться, кликнув по переключателю (кампании и задачи) эта возможность сохранилась:

2015-02-20_1459

2015-02-20_1500

При создании задачи, как и раньше, автор подписывается на все события, кроме события создания (незачем слать дополнительное письмо, автор и так знает, что он задачу создал).

Подписка на остатки призов также интегрирована в общую систему:

2015-02-20_1532

2015-02-20_1532_001

Внешний вид нотификационного письма остался неизменным:

2015-02-20_1520

Не всё получилось, как мы хотели изначально (например, уже есть идеи, как доработать страницу подписок), но система работает и нотифицирует третьих лиц об ошибках в задачах — чего мы, собственно, и добивались в первом релизе.

Требуйте новую систему подписок на своем проекте у наших менеджеров!

 

Комментарии

В настоящее время нет комментариев.

Запрос на подключение

₽ в месяц

Свяжемся в течение рабочего дня, продемонстрируем продукт и обсудим сроки внедрения

Без долгосрочных обязательств и разовых платежей

Аванс — месяц, бесплатный период — месяц

10 000 покупателей

10 000 1 000 000

Для размера БД подписчиков 1 млн и более цена за технологию - фиксированная, тарифицируется только дополнительный объем хранимых данных
(более 100 млн транзакций)

Запрос на подключение

Кол-во контактов*
  • 50 000
  • 100 000
  • 150 000
  • 200 000
  • 250 000
  • 300 000
  • 350 000
  • 400 000

Форма обратной связи

Свяжемся в течение
рабочего дня

Обратная связь