В MacroCRM существует настройка, которая позволяет проверять агентские заявки, поступающие через API 2.0, на наличие существующих заявок клиента. Если найден дубль, новая заявка не создаётся, а API возвращает причину отказа.
#Настройка
Перейдите в Компания → Настройки.
Включите настройку: Заявки: искать существующие заявки и пояснять причину отказа, если найден дубль, при отправке агентских заявок через API

Выберите вариант поиска клиента:
- Искать дубли по номеру телефона;
- Искать дубли по номеру телефона или ФИО.
При необходимости выберите статусы, заявки в которых могут перестать считаться дублями:
- Нецелевой;
- Отказ.
В поле «Дней с момента смены статуса для исключения заявки из поиска» укажите срок. Если поле не заполнено, используется значение 30 дней.
Сохраните настройки компании.
#Как учитываются статусы
Заявка в выбранном статусе перестаёт блокировать создание новой только после истечения указанного срока с момента последней смены статуса.
Например, если выбран статус Отказ и указано 365 дней:
- заявка находится в отказе менее 365 дней — новая заявка будет отклонена;
- заявка находится в отказе более 365 дней — она не участвует в проверке, новая заявка создастся;
- если у клиента одновременно есть другая заявка в активном статусе, новая заявка всё равно будет отклонена.
Если статусы-исключения не выбраны, существующие заявки продолжают блокировать создание независимо от их давности.
#Работа API
Проверка выполняется для метода:
POST /v2/estateBuy/create/
Она запускается, если в запросе заполнено хотя бы одно поле:
contacts_aggregator_id;contacts_agency_id;contacts_mediator_id.
Если передан contacts_id, проверяется указанный контакт.
В остальных случаях контакт ищется согласно выбранному варианту поиска.
Когда телефон не передан, система также может найти контакт по email.
Проверка выполняется раньше остальных правил создания заявок.
Параметр force_new=1 и настройка Заявки: всегда создавать новые заявки через API её не отменяют.
Проверяются существующие заявки клиента на покупку и аренду независимо от категории объекта.
Если найдена блокирующая заявка, API возвращает ошибку 400 Bad Request с одной из причин:
- клиент уже закреплён за другим агентством недвижимости;
- клиент уже заведён за агентством, отправившим заявку;
- клиент уже заведён за отделом продаж застройщика.
#Уведомления
При отклонении заявки:
- в карточке контакта в Ленте событий существующей заявки добавляется заметка:

- менеджер существующей заявки получает системное уведомление и письмо при наличии email:

- если у заявки нет менеджера, уведомляется ответственный за контакт, а при его отсутствии — сотрудники из настройки уведомлений агентского кабинета.
#Автоматические действия
Для дополнительных автоматических действий можно использовать событие в разделе Настройки → Настраиваемые события → Заявки: При отклонении заявки из агентского кабинета/через API для АН.
В качестве контекста триггера используется существующая заявка, из-за которой новая была отклонена:
