Анатомия правила: как виджет находит дубли сделок

Логика строится из двух частей: связанный объект (контакт/компания) и «блоки этапов» с приоритетом статусов.

С чем сравниваем

Сделки сопоставляются по связанному объекту — это может быть основной контакт, любой контакт или компания. Дополнительно можно учитывать кастомные поля сделки.

Блоки этапов — гибкость И/ИЛИ

  • Внутри одного блока вы указываете список статусов. Блок описывает, где объединять. Порядок статусов задаёт приоритет итогового этапа.
  • Между блоками действует логика «ИЛИ»: достаточно срабатывания любого блока.

Например, один блок покрывает ранние статусы, второй — отдельные статусы «Уточнение данных».

БЛОК СТАТУСОВ #1
Новая заявка
В работе
Уточнение
ИЛИ
БЛОК СТАТУСОВ #2
Повторный контакт
При объединении итоговый этап берётся по порядку внутри сработавшего блока.

Настройки в деталях

Каждая опция отвечает за предсказуемый результат: кто «главный», какой этап в итоге и какие поля сохранять.

Активация и приоритет

Главные переключатели, влияющие на источник значений и на финальный этап.

  • Включить объединение сделок: основной переключатель.
  • Более старая сделка — приоритетная: значения полей берутся из самой старой. Этап — по приоритету в блоке статусов.
  • Сохранять дату создания старшей: итоговая сделка наследует дату создания старшей.

Доп. проверка по кастомным полям

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

  • Добавьте поле (например «Код клиента») в правила, а нежелательные значения — в исключения.
  • Сделки с исключёнными значениями игнорируются.
Код клиента · custom_field
TEST

Визуальный результат: До и После

Две сделки у одного и того же клиента объединяются в одну с приоритетным этапом из вашего блока. Ниже показан случай, когда у сделок совпадает связанный объект: Контакт ID и Компания ID.

Сделка #1452

Клиент: Ион Попеску

Контакт ID: 31245

Компания: DigitalEnter S.R.L.

Компания ID: 10025

Этап: Новая заявка

Сделка #1588

Клиент: Ион Попеску

Контакт ID: 31245

Компания: DigitalEnter S.R.L.

Компания ID: 10025

Этап: Уточнение

Сделка #1452

Клиент: Ион Попеску

Контакт ID: 31245

Компания: DigitalEnter S.R.L.

Компания ID: 10025

Итоговый этап: Уточнение (выбран по приоритету блока)

Объединено: #1452 + #1588

Теги: объединено_виджетом

Объединение выполнено, так как у обеих сделок совпали связанный Контакт ID 31245 и Компания ID 10025.

Что именно объединяется в итоговой сделке

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

  • Итоговый этап: выбирается по порядку в сработавшем блоке статусов.
  • Источник значений полей: от старшей сделки (если включено) с точечными исключениями через «приоритет полей».
  • Дата создания: может сохраняться от старшей сделки.
  • Ответственный: берётся из базовой сделки (старшей, если включен соответствующий режим).
  • Теги: уникальные теги собираются вместе.
  • Задача при объединении: по желанию автоматически создаётся задача выбранного типа.

Лучшие практики и советы

Несколько подсказок для безопасного и эффективного запуска.

  • Начинайте просто. Сформируйте один блок статусов с чётким приоритетом итогового этапа. Убедитесь, что результат вас устраивает, и только потом расширяйте правила.
  • Проверка на малой выборке. Запустите объединение на части базы (например, за один день) и проверьте результат.
  • Используйте защиту. Включайте «не объединять внутри блока» для финальных/чувствительных этапов.
  • Точечный приоритет полей. Не меняйте глобальные правила ради одного поля — настройте его отдельно.

Частые вопросы

По каким данным сравниваются сделки?
По связанному объекту (контакт/компания) и вашим блокам этапов; при необходимости учитываются кастомные поля сделки.
Кто выбирает итоговый этап?
Вы. Порядок статусов внутри блока определяет приоритет, из которого берётся итоговый этап.
Можно ли сохранить дату создания старшей сделки?
Да, включите соответствующую опцию — итоговая сделка унаследует дату от самой старой.
Ставятся ли задачи автоматически?
По желанию. Можно включить автосоздание задачи выбранного типа при каждом успешном объединении.