Автоматическое снятие режима «Без звука» в задачах Битрикс24

В облачной CRM-ке Битрикс24(версия таскменеджер), есть интересная «особенность». По умолчанию при добавлении участников-наюлюдателей в задачу, включается беззвучный режим. И никакие уведомления не приходят из этой задачи. Если дополнительно не «пнуть» наблюдателя, то есть большая вероятность потерять задачу.

Эту фичу нельзя выключить через настройки. А поскольку Битрикс24 почти всегда облачный, в код не попасть – самим допилить не получится. Техподдержка разводит руками и ничем помочь не может. Обещали поправить, но, не понятно когда – почти год прошел с момента обращения, ничего не изменилось.

Потеряв очередную задачу, начали искать решения. У Битрикс24 есть хуки, но через них не всё доступно. В официальной документации нет ни одной апи, которая может обновить или получить статус этого колокольчика. Но открыв консоль браузера, можно увидеть, что запросы-то идут. Значит до них можно попробовать достучаться. На скрине ниже показан запрос, он отправляется при снятии режиме «Без уведомлений».

Автоматическое снятие режима «Без звука» в задачах Битрикс24

Раз апихи идут, можно попоробовать у ним достучаться, нужно только подобрать ключик. Можно авторизоваться через веб-хук и выполнить пару действий: вытащить список всех задач с нужным статусом, проверить в них состояние этого колокольчика и поменять ему положение на "ВКЛ".

Инструкция, как все это дело быстро провернуть:

1. Берем класс, который умеет авторизовываться в БХ24 через хуки, вот такой подойдет: ссылка.

2. Создаем в БХ24 входящий хук с полными правами доступу к задачам.

Автоматическое снятие режима «Без звука» в задачах Битрикс24
Автоматическое снятие режима «Без звука» в задачах Битрикс24

3. Далее пишем простенький скрипт, который потом будем вызывать по расписанию:
— Сперва достаем все свои задачи через апи tasks.task.list и фильтром по полю 'REAL_STATUS', который принимает id-шники статусов, чтобы закрытые задачи не трогать. Но это не обязательно, можно и просто все задачи забрать. Хук отдает только те задачи, где присутсвует пользователь, который создал хук. Поэтому на каждого придется добавлять созадвать хуки.
— И далее включаем уведомления для задач через запрос к апи tasks.task.unmute, которая принимает всего один параметр taskId – id задачи. А id-шники у нас уже есть, достали предыдущим запросом. Эта та апи, которую подсмотрели в консоле.

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

5. Радуемся уведомлениям о задачах. Ну или не очень радуемся, задачи ж делать придется…

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

P.S. Все вопросы, предложения и пожелания можно прислать в телеграм: мне в личку @ipatove или в группу посвещенную нашим разработкам – БАГодельня.

44
Начать дискуссию