Към съдържанието
N1
CRM / Bitrix24 · миграция на данни · смарт процеси

Пренос на дела от сделки във верига от смарт процеси в Bitrix24

Клиент: Адвокатска кантора, NDA Категория: CRM / Bitrix24 Стек: PHP 8, Bitrix24 D7 (CRM Factory, смарт процеси, UF), CFile, Timeline, CLI, уебхук за роботи Срок: около 2 седмици
Проблем

Адвокатската кантора водеше делата по събиране на вземания в обикновени фунии на сделки, където деловодството, работата на правния отдел и изпълнението се смесваха в една карта. Процесът се прехвърляше към верига от смарт процеси „деловодство → правен отдел → изпълнение“ — и стотици живи дела трябваше да се пренесат изцяло, с документите и историята.

Ограничения

On-premise порталът е в работа и масов запис не може да бъде върнат назад; различните сценарии имат свои набори от полета и списъци, а стандартното съхранение на файловите полета на портала беше повредено — при обикновено записване файловете тихо се губеха.

Какво направих
  • Общ механизъм за миграция вместо копиране на код за всеки сценарий: четене на източника, етапи, полета, файлове, запис и отчет — сценарият се задава само с конфигурация
  • Стълбица за безопасно стартиране: --inspect-fields за съставяне на карта на полетата, --dry-run с пълен преглед на записа, --run и отделен verify след прогона
  • Съпоставяне на списъци между обектите първо по XML_ID, после по текста на стойността; всички пропуски и отхвърлени стойности се записват в лога
  • Нормализиране на дати във всякакъв формат и копиране на файлове със запазване на имената; при повредено съхранение — директен запис и задължително сверяване след записа
  • Кръстосани коментари в таймлайна „изходна сделка ↔ нов елемент“, за да може всеки юрист да намери историята на делото с два клика; поправка на файловете по лога от прогона
  • Копиране между смарт процеси чрез уебхук от робот на Bitrix24: 4 профила на маршрути, достъп с токен и проверка чрез hash_equals
Архитектура
Фунии на сделки → Механизъм за миграция (карти на полетата) → Dry-run → run → verify → Смарт процеси и таймлайн → Уебхук за роботи
Резултат

Четири сценария за пренос (карти с ~49, ~61, ~77 и ~20 двойки полета) минаха без нито една грешка в логовете: например 335 сделки бяха пренесени с един прогон за около 40 секунди. По-нататъшното движение на делата между смарт процесите се стартира от самия робот чрез уебхук.

Какво може да се преизползва
Конфигурируем механизъм за миграция „сделка/смарт процес → смарт процес“ Съпоставяне на списъци по XML_ID с резервен вариант по текст Запис на файлови полета със сверяване след записа