Дубли заявок в n8n: как не записывать одного клиента дважды
· 3 мин чтения · Редакция Skill Unit
Типичная история: форма на сайте шлёт заявку в n8n, n8n пишет её в Google Таблицу и присылает уведомление в Telegram. Через неделю в таблице по три строки на одного клиента, а менеджер звонит одному человеку дважды. Разберём, откуда берутся дубли и как от них избавиться.
Откуда берутся дубли
- Человек нажал «Отправить» два раза или отправил форму ещё раз через день.
- Сервис формы повторил запрос, потому что n8n ответил слишком медленно: многие формы так делают, если не получили ответ за несколько секунд.
- Сценарий упал на середине, вы запустили его вручную ещё раз — и первая часть выполнилась повторно.
- Сценарий по расписанию забирает «все новые записи» и не помнит, какие уже обработал.
Шаг 1. Выберите ключ
Ключ — то, по чему вы считаете две заявки одной. Чаще всего это телефон или почта. Телефон сначала приведите к одному виду: уберите пробелы, скобки и дефисы, замените ведущую 8 на 7. Иначе «8 (999) 123-45-67» и «+79991234567» окажутся разными клиентами.
{{ $json.phone.replace(/\D/g, '').replace(/^8/, '7') }}Это выражение оставляет только цифры и меняет первую восьмёрку на семёрку. Положите результат в отдельное поле, например phone_key, нодой Edit Fields (Set).
Шаг 2. Уберите дубли внутри одной пачки
Если сценарий получает сразу много записей (например, раз в час забирает выгрузку), добавьте ноду Remove Duplicates. В режиме сравнения по выбранным полям укажите phone_key — из пачки останется по одной записи на каждый телефон.
В новых версиях у этой ноды есть режим, который помнит записи из прошлых запусков. Он удобен для сценариев по расписанию: n8n сам запоминает, какие ключи уже видел, и пропускает их в следующий раз.
Шаг 3. Проверьте, нет ли клиента в таблице
Для заявок с сайта надёжнее проверять по самой таблице, ведь именно она — ваша база клиентов.
- Google Sheets → операция поиска строк (Get Row(s)) с фильтром по столбцу phone_key.
- В настройках ноды включите вывод данных, даже если ничего не найдено (Always Output Data), иначе сценарий остановится на пустом результате.
- Нода If: если строка нашлась — это повторная заявка, если нет — новая.
- Ветка «новая»: добавить строку и прислать уведомление «Новая заявка».
- Ветка «повтор»: обновить дату последнего обращения и прислать менеджеру «Клиент написал повторно» — это тоже полезный сигнал, просто другой.
Шаг 4. Быстро отвечайте форме
Чтобы сервис формы не повторял запрос, ответьте ему сразу: в ноде Webhook выберите ответ немедленно (Immediately), а тяжёлую работу — таблицы, ИИ, письма — делайте после. Тогда форма получает ответ за доли секунды и не шлёт заявку второй раз.
Как проверить, что всё работает
- Отправьте одну и ту же тестовую заявку три раза с разным написанием телефона.
- В таблице должна появиться одна строка, а в Telegram — одно «новая» и два «повтор».
- Посмотрите историю запусков (Executions): все три должны завершиться без ошибок.
Тестируйте на своём номере или на выдуманных данных, а не на реальных клиентах. В курсе «Автоматизация без кода на n8n» собираем сценарий заявок целиком: форма, таблица, Telegram, проверка ошибок. Первый урок бесплатный.
Хотите пройти путь на практике?
Курс «Автоматизация без кода на n8n»: короткие уроки, практические задания и проверка ответов. Первый урок бесплатно.
Смотреть курс