ClaudeLab

Дубли заявок в n8n: как проверить фильтр перед записью в CRM

Опубликовано 10 октября 2026 г.Intermediate
Что вы узнаете
  • Выберете режим фильтра для повторов между запусками
  • Проверите ключ и три тестовых события без рабочей CRM
  • Зафиксируете границы защиты и критерии приёмки
Средний уровень
1просмотров
Что понадобится

Дубли заявок заметны по двум сделкам после одной отправки формы. По внешнему виду карточек трудно понять, клиент обратился снова или система передала одну заявку дважды. Удалить одну карточку легко. Гораздо важнее найти, на каком шаге появилось второе создание, и не потерять следующее настоящее обращение.

Ниже - маршрут для владельца, который видит дубли заявок в сценарии n8n. Он подходит и для разговора с подрядчиком: вы сможете назвать поле сравнения, показать проверочный вход и попросить результат в целевой системе. Выбор платформы и полный путь обращения разобраны отдельно в статье про обработку заявок с ИИ.

Настройки сверены с официальной документацией девятого октября две тысячи двадцать шестого года. Примеры здесь учебные, с искусственными идентификаторами. Это не рассказ о ремонте клиентской CRM и не отчёт о проверке вашей версии n8n. Сначала повторите маршрут в безопасной копии; подключение рабочего потока потребует отдельной приёмки.

Где вы сейчас: откуда взялись дубли заявок

  • В CRM уже две сделки, а журнала отправок нет. Попросите сохранить входные события и связь с карточками. Пока происхождение не выяснено, не включайте удаление совпадений по телефону.
  • Журнал есть, в двух запусках одинаковый номер события. Перейдите к проверке ключа и настройке режима между запусками.
  • Remove Duplicates уже установлен, но повтор всё равно проходит. Сверьте Operation, значение ключа и Scope, затем посмотрите историю фильтра.
  • Повтор отсекается, но некоторые заявки исчезают. Проверьте сбой после фильтра и результат записи в CRM. Не очищайте историю ради повторного запуска, пока исход записи неизвестен.

Если общего учёта обращений пока нет, начните с материала про учёт заявок. Он решает другую задачу: где хранить обращение, кто за него отвечает и что считать завершением продажи. Здесь разберём один технический узел перед созданием карточки.

Что подготовить для проверки

Попросите человека, который поддерживает n8n, сделать тестовую копию и отключить в ней все внешние записи. Проверьте не только последнюю ноду CRM. Уведомление менеджеру, письмо клиенту и создание задачи тоже меняют рабочую систему. Их следует убрать из проверки фильтра или заменить безопасным просмотром результата.

Для начала достаточно подготовить:

  1. Название источника, из которого приходит заявка. Если источников несколько, укажите каждый отдельно.
  2. Пример входного события с номером, который остаётся тем же при повторной доставке.
  3. Пример нового обращения того же условного клиента с другим номером события.
  4. Ожидаемый выход каждого запуска и место, где вы увидите этот выход.

Не загружайте в нейросеть настоящую выгрузку CRM для проверки дублей заявок. Телефоны, имена, переписка и ключи доступа здесь не нужны. Искусственные метки вроде client-A позволяют проверить правило без клиентских данных. Номер события важен своей ролью, а не тем, как он выглядит в реальной заявке.

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

Если сценарий импортирован из каталога и ещё не работает, сначала разберите проверку шаблонов n8n. Проблемы с доступом и чужой адрес вебхука не исправляются выбором другого ключа дедупликации.

Как отличить повтор события от новой заявки

Разведите три понятия. Событие - одно обращение, которое источник отправляет в интеграцию. Попытка доставки - очередной раз, когда это событие передают получателю. Карточка CRM - результат обработки. У события может быть несколько попыток доставки, но желаемое число карточек задаётся вашим правилом обработки.

В простом сценарии «одна заявка - одна новая сделка» повтор доставки должен вести к прежнему результату. Новое обращение того же клиента должно сохраняться как новое. Для других процессов правило может отличаться: например, сообщение добавляют к существующей открытой заявке. Согласуйте это до настройки фильтра.

Что видно во входеЧто это может означатьЧто проверить
Тот же источник и тот же номер событияПовтор доставки одного обращенияСовпадает ли содержание и известен ли результат первой обработки
Тот же клиент, другой номер событияНовая заявка или новый вопросКак ваш процесс хранит повторные обращения клиента
Одинаковый номер из разных источниковДва независимых событияВключён ли источник в составной ключ
Тот же номер, изменившееся содержаниеКонфликт данных или неверный выбор ключаПочему источник использовал прежний номер; остановить автоматическое решение

Таблица задаёт порядок разбора, а не встроенную функцию любой CRM. Если дубли заявок нельзя связать с событием, первым исправлением станет сохранение этой связи. Автоматическая склейка по похожему тексту не восстановит журнал, который не вели.

Есть и бизнес-граница. Один человек может сегодня спросить про ремонт, а завтра про обслуживание. Удаление второй заявки по номеру телефона сделает список дублей красивее, но обращение пропадёт. Решение о связи таких заявок относится к процессу продаж, а не к фильтру повторной доставки.

Какой ключ сравнивать, чтобы остановить дубли заявок

Попросите исполнителя показать один исходный запрос и его повтор. Сравните фактические значения поля, выбранного для фильтра. Не ограничивайтесь названием event_id: красивое имя не доказывает, что источник сохраняет значение при повторной отправке.

Хороший ключ отвечает на два вопроса. Узнаёт ли он то же событие после сбоя и перезапуска? Отличает ли он новое событие от старого? Если два независимых источника нумеруют заявки одинаково, добавьте название источника. Для нескольких видов операций может понадобиться и тип события. Состав ключа закрепляют в описании интеграции.

КандидатПочему требует проверки
ID исходного событияОсновной вариант, если отправитель сохраняет его при повторе
Источник вместе с ID событияРазводит одинаковые номера разных источников
ID клиента или телефонМожет остановить новое обращение того же человека
ID исполнения n8nОписывает запуск сценария, а не исходное обращение
Время получения запросаМеняется при новой попытке доставки

У Stripe в документации вебхуков прямо описано сохранение обработанных event ID. Там отдельно рассмотрен случай двух разных событий для одного изменения: для него используют ID объекта вместе с типом события. Это пример того, почему правило берут у конкретного источника, а не объявляют любое поле id универсальным ключом.

Не поручайте языковой модели определять точный технический повтор по смыслу сообщения. Для события с проверенным идентификатором достаточно обычного сравнения. Когда разбираете дубли заявок, нейросеть может помочь прочитать обезличенный журнал или составить таблицу, но решение о повторе не должно зависеть от её свободного пересказа.

Когда правило ключа согласовано, запишите его рядом с описанием процесса. Для этого подойдёт короткая карточка из материала про описание бизнес-процессов. Отдельно укажите, что происходит с новым обращением того же клиента.

Если в вашей связке заявки всё ещё переносятся руками или путь до CRM неясен, это задача для автоматизации бизнеса ClaudeLab. На публичной странице описан подход с одним процессом и прототипом до договора. Для обращения достаточно назвать источник, целевую CRM и наблюдаемый повтор; доступы в открытое описание не прикладывайте.

Как настроить Remove Duplicates

Официальная страница Remove Duplicates описывает разные операции одной ноды. Для дублей заявок между запусками нужен конкретный режим этой ноды.

Маршрут ниже предназначен для тестовой копии. Названия полей приведены по текущей документации. Если у вас старый вариант ноды или другой интерфейс, сначала сопоставьте его с документацией своей версии. Не выбирайте ближайший похожий пункт наугад.

  1. Поставьте фильтр до внешней записи

    Найдите участок после получения и подготовки стабильного ключа, но до создания карточки, задачи или сообщения. Добавьте там Remove Duplicates. В тестовой копии вместо дальнейшего изменения рабочей системы оставьте просмотр выходных данных.

    Проверка шага: покажите весь путь от входа до фильтра. На нём не должно быть записи, которую повтор уже успеет выполнить. Если действие стоит раньше, перенос фильтра только перед CRM не защитит это действие.

  2. Выберите сравнение с предыдущими исполнениями

    В поле Operation выберите Remove Items Processed in Previous Executions. Затем в Keep Items Where выберите Value Is New. По документации это условие убирает значения, которые уже встречались в прежних исполнениях.

    Проверка шага: в настройках видны именно Previous Executions и Value Is New. Remove Items Repeated Within Current Input подходит для совпадений внутри одной входной пачки. Если повтор приходит отдельным запуском, проверка одной пачки его не решает.

  3. Передайте фактическое значение ключа

    В Value to Dedupe On используйте выбранное поле входного события или заранее подготовленный составной ключ. Сравниваться должно его значение из каждого входа. Проверьте, что не введена постоянная строка с названием поля и что нужное значение не пустое.

    Проверка шага: первое событие и его повтор дают одинаковый ключ; новое событие того же клиента даёт другой. Если у входа нет нужного поля, направляйте его на отдельный разбор до фильтра. Не подставляйте один общий ключ для всех заявок.

  4. Выберите область истории

    В Options проверьте Scope. Node хранит данные отдельно для конкретной ноды. Workflow разделяет историю с другими Remove Duplicates, для которых в этом сценарии тоже выбран Workflow. Эти варианты описаны в документации.

    Для одной самостоятельной проверки начните с области Node и запишите этот выбор. Общую историю выбирайте только с понятным правилом для всех участвующих нод. Проверьте, не используется ли тот же ключ на другом участке, где его появление может остановить нужное действие.

  5. Проверьте ёмкость истории и сохраните настройки

    В режиме Value Is New доступно History Size. Это количество элементов, которые n8n хранит для сравнения, а не часы или дни. В документации значение по умолчанию - десять тысяч ключей. Настройка относится к выбранной области истории.

    Запишите фактическое значение вместе с Scope и ключом. Оно не должно превращаться в обещание «повторы закрыты на месяц». Если бизнесу нужна защита на определённое окно повторной доставки, отдельно согласуйте хранение ключей и восстановление операций. Затем сохраните тестовую копию для проверки.

Clear Deduplication History - отдельная операция очистки сохранённых данных. Она не подтверждает успешную передачу заявки в CRM. Очистку истории рабочей ноды нельзя использовать как обычную кнопку исправления: после неё прежнее значение больше не узнаётся по удалённой истории.

Как проверить фильтр на трёх событиях

Ниже искусственный набор. dedupe_key - предложенное имя подготовленного поля, не обязательное поле n8n. client_marker помогает увидеть, что новый запрос того же клиента сохраняется. В рабочем источнике названия и путь до полей могут быть другими.

json
[
  {
    "source": "source-1",
    "event_id": "E-101",
    "dedupe_key": "source-1:E-101",
    "client_marker": "client-A",
    "request": "первое обращение"
  },
  {
    "source": "source-1",
    "event_id": "E-101",
    "dedupe_key": "source-1:E-101",
    "client_marker": "client-A",
    "request": "первое обращение"
  },
  {
    "source": "source-1",
    "event_id": "E-102",
    "dedupe_key": "source-1:E-102",
    "client_marker": "client-A",
    "request": "новое обращение"
  }
]

Передавайте эти элементы отдельными запусками в одном и том же тестовом сценарии. Не отправляйте весь массив одной пачкой и не объявляйте это проверкой истории между исполнениями. У каждого запуска сохраните входной ключ и выход фильтра. Проверочный маршрут не должен создавать настоящие сделки или отправлять письма.

ЗапускКлючОжидаемый выход фильтраЧто результат проверяет
Первыйsource-1:E-101Событие проходит дальшеНовый ключ принимается
Повтор первогоsource-1:E-101Событие не идёт к дальнейшей записиИстория узнаёт повтор между запусками
Новая заявка того же клиентаsource-1:E-102Событие проходит дальшеКлиент не используется как запрет на новые обращения

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

Для новой серии используйте новые искусственные номера, чтобы не смешать её с прежней историей. Если требуется очистка именно тестовой истории, сначала убедитесь, что выбрана нужная копия и область. При области Workflow очистка затронет общую историю нескольких нод. Перед очисткой перечислите эти ноды.

Эти три запуска проверяют выбор ключа и режима. Они не проверяют параллельную доставку, потерю ответа внешнего сервиса и восстановление после перезапуска. Такую границу стоит записать рядом с результатом, иначе небольшой тест легко принять за готовность всего процесса.

Почему фильтра мало перед записью в CRM

Рассмотрите два сбоя. В первом событие прошло фильтр, а запись в CRM ещё не началась. Во втором CRM создала карточку, но ответ до n8n не дошёл. Снаружи оба запуска могут выглядеть неуспешными. Действия для них разные: в первом надо восстановить обработку, во втором сначала найти уже созданную карточку.

Именно здесь возникает риск плохого исправления. Очистить ключ и повторить всё сначала может означать второе создание. Оставить только отметку о встреченном событии может означать потерять заявку, которая не дошла до записи. Чтобы выбрать действие, нужен результат операции, а не только память фильтра.

Для рабочей интеграции попросите исполнителя описать состояния обработки. Например: принято, выполняется, завершено, требуется сверка. Названия можете выбрать свои. В состоянии «завершено» должен быть проверяемый результат - номер карточки или иной согласованный признак. Неизвестный ответ внешнего API нельзя автоматически приравнивать к отсутствию записи.

Где произошёл сбойЧто нужно выяснить перед повтором
До надёжного сохранения входного событияОстался ли вход для восстановления и как отправитель повторяет доставку
После фильтра, до отправки в CRMИзвестно ли, что внешняя запись ещё не выполнялась
Во время запроса к CRMПринимает ли CRM прежний ключ операции и можно ли найти результат
После создания карточки, до получения ответаКак связать событие с уже созданной карточкой без нового создания
Во время двух одновременных попытокЧто разрешает только одному исполнителю начать опасную запись

Для дублей заявок есть отдельная граница собственной и внешней базы. Когда данные хранятся в вашей базе, уникальное ограничение помогает различить одновременные попытки записи одного ключа. Документация PostgreSQL INSERT описывает обработку такого конфликта через ON CONFLICT. Это свойство записи в PostgreSQL, а не гарантия однократного создания в сторонней CRM.

Внешняя система требует своего решения. Если её API поддерживает устойчивый ключ повторной операции, проверьте условия этого механизма и используйте тот же ключ при восстановлении. Если такой защиты нет или исход неизвестен, нужен порядок сверки и отдельный разбор. Обычная цепочка «нашли по ключу - не нашли - создали» сама по себе не закрывает одновременные вызовы.

Remove Duplicates в этой схеме может быть полезным фильтром. Его документация не даёт основания объявлять всю цепочку до чужой CRM атомарной. Для владельца практический вывод простой: принимайте отдельно фильтр и отдельно запись. Общий маршрут продаж описан в статье про автоматизацию продаж; здесь важен результат именно одного входного события.

Когда отвечать на вебхук и как разбирать сбой

Stripe рекомендует быстро возвращать успешный ответ до тяжёлой логики и отдельно описывает повторную доставку. Но правило «ответить успешным кодом сразу, дальше как получится» не даёт владельцу контроля над потерянной заявкой. В критерии приёмки включите надёжное сохранение события до подтверждения и порядок дальнейшей обработки.

В вашей интеграции это может быть журнал входа или очередь с сохранением данных. Конкретный механизм выбирает исполнитель. Вы проверяете его обещанное поведение: после подтверждения событие остаётся доступным для восстановления, незавершённые операции видны, у них есть ответственный. Быстрый успешный HTTP-ответ ещё не является результатом продажи или передачи в CRM.

Для ветки повтора тоже нужна явная проверка. Отсутствие выходного элемента у фильтра не означает, что отправитель получил нужный ответ. Попросите показать, как сценарий отвечает на узнаваемый повтор и что записывает в журнал. Статусы и условия повторной доставки берите из документации вашего отправителя.

При таймауте CRM запретите слепое повторное создание до сверки. Исполнитель должен показать, где ищется прежний результат и что происходит, если его невозможно установить автоматически. Для такой заявки нужна отдельная очередь разбора. Она не должна молча исчезать из счётчиков успешно принятых событий.

На время исправления можно согласовать ручной путь обработки. Записывайте его результаты в тот же журнал. Запишите, какие события переданы человеку, какие действия он уже выполнил и как это связывается с автоматическим журналом. Иначе после включения сценария ручная и автоматическая обработка могут выполнить одну запись независимо.

Почему дубли заявок всё ещё проходят

Не меняйте все настройки сразу. Чтобы исправить дубли заявок, возьмите один подтверждённый повтор, сохраните его вход и пройдите до места второго создания. Для каждого изменения повторите ту же проверку и запишите, что стало иначе. Так вы не потеряете причину вместе с очередной «починенной» версией.

СимптомЧто проверитьБезопасный следующий шаг
Повтор отдельного запуска проходитВыбран ли Previous Executions вместо Current InputИсправить режим в копии и повторить три события
Каждый повтор получает новый ключНе взяты ли время приёма или ID запускаПоказать стабильный номер исходного события
Первая заявка прошла, следующие новые исчезаютНе сравнивается ли постоянная строка или только клиентСверить фактические ключи двух разных событий
Другая нода неожиданно отсекает событиеНе разделяют ли ноды историю WorkflowОписать общее правило или разделить области в копии
Старый повтор больше не узнаётсяНе очищали ли историю и какова её ёмкостьПроверить настройки и согласовать нужное окно хранения
Фильтр остановил повтор, а карточка появилась сноваЕсть ли ещё одна интеграция, импорт или ручная обработкаСвязать создание с источником и попыткой, не менять фильтр вслепую
После ошибки заявки пропадаютИзвестен ли исход действия после фильтраРазобрать незавершённую операцию по журналу и результату CRM

Размер истории не заменяет срок хранения. Если нужно пережить позднюю повторную отправку, сформулируйте требование через правила вашего источника. Исполнитель должен показать, где хранятся ключи в этом окне, что переживает перезапуск и как восстанавливается незавершённая запись. Универсальное число дней для всех источников здесь не подходит.

Дубли заявок, которые уже накопились в CRM, требуют отдельного решения. Настроенный фильтр будущих событий не объединяет старые сделки и не переносит переписку между ними. Не удаляйте карточки автоматически по одному совпадению контакта. Сначала подтвердите происхождение и согласуйте сохранение истории с ответственным за продажи.

Что передать подрядчику для приёмки

Карточка ниже относится к одному узлу передачи. Она не заменяет ТЗ на всю CRM. Заполните её вместе с исполнителем и сохраняйте фактические результаты рядом с ожидаемыми. Если результат пока не проверен, так и напишите, не подставляйте желаемое значение.

Текст
Участок: источник заявки - n8n - целевая CRM
Новое обращение: какое событие считается новой заявкой
Ключ: из каких проверенных полей он собран
Повтор: какие поля остаются неизменными при новой доставке
Фильтр: Operation, Keep Items Where, Value to Dedupe On
История: Scope, History Size, правила очистки
После фильтра: какие действия меняют внешние системы
Получение: где вход надёжно сохраняется до подтверждения
Результат: где записывается номер созданной карточки
Неизвестный исход: как он сверяется и кто его разбирает
Восстановление: что повторяют после разных мест сбоя
Испытание: вход - ожидаемый результат - фактический результат
Ограничения: какие случаи пока не проверены

Первый набор доказательств относится к фильтру: три отдельных входа, их ключи и выходные элементы. Второй относится к рабочей записи: одновременные попытки, сбой до внешнего действия, потеря ответа после возможного создания. Проверки внешней записи проводите только в согласованной тестовой среде; учебный JSON выше не разрешает отправлять пробные заявки реальным менеджерам.

Для неопределённого исхода заранее задайте порядок решения. Кто открывает запись в CRM? По какому внешнему номеру её ищут? Где фиксируют найденный результат? Кто разрешает новую попытку, если автоматическая сверка не дала ответа? Эти вопросы важнее обещания «дубли больше не появятся».

После включения участка проверяйте дубли заявок сверкой событий и результатов за один и тот же период. Считайте уникальные входные события, узнаваемые повторы, завершённые записи и случаи, требующие сверки. У каждого исключения должны быть причина и ответственный. Снижение числа дублей нельзя считать успехом, если одновременно исчезают новые заявки.

Чек-лист

  • Одно событие, повтор доставки и новое обращение клиента различаются по записанному правилу; одинаковый телефон не является автоматическим запретом новой заявки.
  • Фактический ключ стабилен у повторов и различается у новых событий; выбран Previous Executions с Value Is New.
  • Scope и History Size зафиксированы; ёмкость истории не названа сроком защиты, очистка тестовой и рабочей истории разделена.
  • В безопасной копии отдельно проверены первое событие, точный повтор и новое событие того же клиента; фактические выходы сохранены.
  • Для рабочего потока проверены или явно отложены параллельная доставка, сбой после фильтра и неизвестный исход CRM; слепое повторное создание запрещено до сверки.
  • Событие связано с результатом записи, а незавершённые случаи видны ответственному; успешный HTTP-ответ и зелёный запуск не выданы за созданную карточку.

Источники

Документация и публичные материалы сверены девятого октября две тысячи двадцать шестого года. Синтетические события и карточка приёмки предложены редакцией; результаты вашей установки по ним не заявлены.

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

Приём вебхука и защита записи решают разные задачи. В n8n есть Remove Duplicates, но режим, поле сравнения и область истории выбираете вы. Для CRM дополнительно проверяют завершение операции и повторы после сбоя. Сам факт наличия фильтра не доказывает, что рабочая карточка создаётся безопасно.
Максим Самусь
Автор
Основатель ClaudeLab

Десять лет в маркетинге: агентства, продвижение услуг, трафик из таргета и контекста. Весной 2026 взял в руки Claude Code и собрал первый собственный продукт и систему ИИ-агентов под свои задачи. С тех пор строит на этом агентство - сайты, автоматизацию и заказную разработку для бизнеса. Пишет о том, что делает сам: разбирает задачи, которые проходит на своих проектах и проектах клиентов. Свои продукты - Photogenia, нейрофотосессии с сайтом и Telegram-ботом, и Reachen, сервис генерации рекламных креативов. Ведёт Telegram-канал о Claude Code и нейросетях для бизнеса - @ai_smart_usage.

Эта статья была полезна?

Похожие статьи

Yandex AI Studio: как собрать ИИ-агента для CRM без программиста

Yandex AI Studio - российский конструктор, где без кода собирают ИИ-агентов для бизнеса. Разбираю, что он умеет в связке с CRM, как собрать агента по шагам, подключить его к amoCRM или Битрикс24, задать границы и не нарушить 152-ФЗ - с ценами-ориентиром и разбором частых ошибок.

11 мин

Чат-бот для ЖКХ: как принимать заявки жильцов без пропусков

Разбираем, как чат-бот для ЖКХ принимает заявки жильцов круглосуточно и ничего не теряет: какие обращения отдать боту, сколько это стоит, что требует закон об АДС и 152-ФЗ, как запустить бота за шесть шагов.

11 мин

ИИ для CRM и 1С: как подключить бота к своим данным

Вы спрашиваете нейросеть про свой бизнес, а у неё нет доступа к вашим остаткам и сделкам - отвечает общими словами. ИИ для CRM и 1С решает это: бот подключается к вашим системам через коннекторы, отвечает по актуальным данным и выполняет действия. Разбираю пути подключения, цены и безопасность.

12 мин

Чат-бот WhatsApp в 2026: что работает в России и куда уходить

Инструкции в поиске всё ещё учат подключать WhatsApp Business API через кабинет для бизнеса, будто ничего не произошло. Разбираю, что работает в России в 2026 году, какие боты попали под запрет, какой штраф вы рискуете получить и в какой канал переносить клиентскую переписку.

13 мин

Самое читаемое за 7 дней

  1. Алиса AI для бизнеса: что делает сама и чего не сделает
    Нейросети для бизнеса60 просмотров