Коллеги, приветствую. На связи Юрий Павлюк и команда Digital for Sales. Мы разрабатываем полезные и простые приложения для Bitrix24, разумеется, занимаемся интеграцией Bitrix24. И в этом видео я расскажу о нашем приложении, которое мы задумали ещё год назад. Мы услышали запрос от 90% клиентов и поняли — такая возможность нужна всем, но реализовать её непросто. Поэтому у приложения до сих пор нет конкурентов в маркетплейсе. Речь пойдёт про отслеживание истории изменений любых полей в основных сущностях CRM.
Мы стартуем с четырёх классических сущностей: лиды, сделки, контакты и компании. И почти любое поле можно взять под контроль — строки, числа, списки, даты. Пока что не отслеживаем только поле файла, для него ревиз приготовлена на следующий релиз.
В чём проблема? В карточке есть вкладка «История», и там вроде бы фиксируется часть изменений. Но далеко не всё. Например, я создал поле «ИНН контрагента». Это обычное пользовательское поле. Если я сейчас поменяю его значение и зайду в историю — там не появится ни одного следа. Как будто ничего не было. А в жизни таких случаев полно: кто-то случайно стёр, кто-то ввёл не то, кто-то решил «исправить», кто-то забыл. В компании, особенно большой, это приводит и к недопониманию, и к конфликтам, и к потере данных.
Да что там — даже сам человек через несколько месяцев не вспомнит, почему он поменял одно значение на другое. А если это было не раз, а пять раз? И если важные данные использовались в отчётах, в интеграциях, в расчётах? Значит, нужно решение, которое будет чётко фиксировать: кто, когда и что изменил. Причём так, чтобы это невозможно было удалить.
Поэтому мы создали приложение. Оно имеет интерфейс, после установки появляется пункт в левом меню. Открываете — и перед вами окно настройки отслеживания. Выбираете сущность. Выбираете поле. Допустим, то самое «ИНН контрагента». Жмёте «Начать отслеживание».
Что дальше? Приложение смотрит все карточки выбранной сущности и выясняет, где поле заполнено. Мне показывает: поле заполнено в 1233 компаниях. Чтобы начать работать корректно, системе нужно зафиксировать текущее состояние. То есть записать «как оно есть сейчас» — чтобы потом сравнивать. Нажимаем «Копирование данных». Запускается процесс.
И вот тут тот самый момент, когда нужно чуть-чуть терпения. Робот заходит в каждую карточку, берёт текущее значение поля, создаёт техническое поле-копию и туда записывает это значение. То есть у поля теперь два брата-близнеца: основное и его копия. Значения одинаковые. Это важно — именно это и позволяет отслеживать изменения.
Если карточек много — тысяч пять, десять, двадцать — процесс займёт некоторое время. Мы сделали прогресс-бар и таймер, чтобы вы понимали, что всё работает. Можно при необходимости остановить — кнопка «Отмена» сбросит всё, и поле-копия будет удалено. Но обычно проще дождаться завершения.
Зачем нужна копия? Всё гениально и просто. Каждый раз, когда карточка обновляется, приложение проверяет: отличается ли значение основного поля от значения поля-копии. Если не отличается — ничего не делаем. Если отличается — значит, произошли изменения. И вот тогда в историю карточки добавляется запись: кто, когда, что изменил — старое значение и новое. Причём эта запись техническая. Её нельзя удалить. Ни через три точки, ни через настройки, ни администратор, никто.
И это работает даже если поле пользовательское, даже если в стандартной истории такие изменения не фиксируются.
В моём случае процесс завершился. Иду в тестовую компанию. Вот поле «ИНН контрагента». Меняю значение. Сохраняю. И справа в хронологии вижу: Юрий Павлюк с таким-то ID изменил поле, было одно значение — стало другое. Всё зафиксировано. И убрать это невозможно.
Кстати, в истории отображается ID пользователя — это важно. Бывает, что сотрудник ушёл, пришёл другой с такой же фамилией. Или два однофамильца работают одновременно. Поэтому используем и имя, и ID.
Если нужно, можно отфильтровать историю по типу события и смотреть только изменения отслеживаемых полей. Это удобно, когда хронология длинная.
После настройки в списке приложения вы увидите отслеживаемые поля. Можно добавить новые. Можно перестать отслеживать — тогда поле-копия удаляется, остальные данные остаются. Технические записи в истории, конечно же, сохраняются.
Есть важные моменты. Поскольку поле-копия — обычное пользовательское поле, просто скрытое, лучше его не добавлять ни в какие представления. И при выгрузке всех полей в Excel оно тоже может попасть — это нормальная особенность. Просто учитывайте это при работе. Но в целом это намного проще, надёжнее и быстрее, чем строить отдельные внешние базы и интеграции.
На практике наши клиенты обычно отслеживают два-три ключевых поля — суммы, реквизиты, комментарии, статусы, чувствительные данные. Этого хватает, чтобы полностью закрыть проблему прозрачности.
Коллеги, на этом всё. Механика действительно нетривиальная — но зато теперь вы можете в любой момент понять, кто и что изменил, и исключить случайные и намеренные ошибки. Если будут вопросы — пишите. В описании приложения есть контакты, все сообщения попадают ко мне или коллегам.
Мы команда Digital for Sales. Мы создаём полезные и простые приложения для Bitrix24 и сопровождаем интеграции. Меня зовут Юрий Павлюк. До новых видео. Пока.