---
title: "DaData и n8n: обогащение лидов с quality gate | Nodbot"
source_url: "https://nodbot.ru/workflows/dadata-enrich-lead/"
canonical_url: "https://nodbot.ru/workflows/dadata-enrich-lead/"
language: "ru"
content_type: "WorkflowTemplate"
section: "workflows"
generated_at: "2026-05-30"
word_count_source: 1235
---

# Обогащение лидов через DaData и n8n: телефон, компания и quality gate

## AI summary

Problem/Solution-мануал по обогащению лидов через DaData и n8n: нормализация телефона, ИНН, подсказки по организации, confidence gate, защита CRM от перезаписи хороших данных и production-тесты.

## Best used for

Полноценный Problem/Solution-мануал для внедрения в n8n: импортировать workflow JSON, настроить webhook/API, проверить дубли, выполнить production-тесты и передать решение команде.

## Table of contents

- Проблема: почему автоматическое обогащение лидов может испортить CRM
- Архитектура workflow DaData → n8n → CRM
- Контракт входных данных для enrichment
- Нормализация телефона, ИНН и confidence gate (Code Node)
- Готовый workflow JSON: скачать и импортировать
- Пошаговая настройка DaData API, n8n и CRM
- Тесты перед production и проверка DaData API
- Production-риски обогащения данных
- Полезные ссылки и смежные workflow
- Критерии готовности

## Key topics

- DaData API
- n8n enrichment
- quality gate
- CRM data quality
- phone normalization
- ИНН
- manual review
- workflow JSON

## Source outline

Обогащение лидов через DaData и n8n: телефон, компания и quality gate ¶ Обновлено: 2026-05-30 Сохранить в мой план Открыть мой план Шаблон для внедрения Скачать workflow JSON Скачать test payload Скопировать curl Импортируйте JSON в n8n, замените DaData API key, secret и CRM endpoint. Перед production проверьте quality gate на реальных лидах. Содержание Проблема: почему автоматическое обогащение лидов может испортить CRM Архитектура workflow DaData → n8n → CRM Контракт входных данных для enrichment Нормализация телефона, ИНН и confidence gate (Code Node) Готовый workflow JSON: скачать и импортировать Пошаговая настройка DaData API, n8n и CRM Тесты перед production и проверка DaData API Production-риски обогащения данных Полезные ссылки и смежные workflow Критерии готовности Проблема: обогащение лидов через DaData кажется безопасным, пока workflow не начинает перезаписывать уже проверенные телефоны, названия компаний и реквизиты в CRM. Один неточный match по названию может превратить качественную карточку клиента в спорную запись. Решение: делать enrichment через n8n с quality gate: сначала нормализовать телефон и ИНН, затем запросить DaData API, посчитать confidence score и обновлять CRM автоматически только при достаточной уверенности. Спорные данные должны попадать в ручную проверку, а не прямо в карточку продаж. Это практический скрипт n8n для обогащения CRM: payload, Code Node, workflow JSON, тесты, риски и понятный критерий, когда можно доверять данным DaData. Workflow не пишет найденные данные в CRM напрямую: между DaData и CRM стоит quality gate. Проблема: почему автоматическое обогащение лидов может испортить CRM ¶ Типичная ошибка — воспринимать подсказку как истину. DaData хорошо помогает найти организацию по ИНН или названию, но в реальном потоке лидов бывают сокращения, филиалы, старые компании, телефоны из коллтрекинга и заявки от посредников. Поэтому интегратор должен отделить “подсказку для оператора” от “данных, которыми можно обновить CRM без человека”. Особенно опасно перезаписывать поле company , ответственного или юридическое лицо после первого успешного enrichment. Правильная автоматизация продаж сохраняет исходные данные формы, добавляет enriched-блок рядом и показывает источник/уверенность. Архитектура workflow DaData → n8n → CRM ¶ Нода Роль Что проверить Webhook input Принимает lead payload из CRM, Tilda или Битрикс24 lead_id , телефон, ИНН, email, источник Normalize and score Готовит телефон, ИНН и базовый score Регулярка телефона, 10/12 цифр ИНН, пустые значения DaData clean phone Проверяет и стандартизирует номер API key/secret, лимиты, страна и формат DaData suggest party Ищет компанию по ИНН или названию Не брать первый match без confidence gate Quality gate Решает: auto update или manual review Порог score и список полей, разрешённых к обновлению CRM update / review task Обновляет карточку или создаёт задачу Не перезаписывать проверенные поля без правила Контракт входных данных для enrichment ¶ Передавайте в enrichment только поля, которые реально участвуют в решении: идентификатор лида, телефон, email, ИНН, название и ссылку на CRM. Полный комментарий клиента и лишние персональные данные здесь не нужны. { "lead_id": "crm-10492", "name": "ООО Ромашка", "phone": "+7 (495) 123-45-67", "email": "sales@romashka.example", "inn": "7707083893", "source": "tilda_form", "crm_url": "https://crm.example.ru/leads/10492" } Если ИНН отсутствует, workflow может искать компанию по названию, но такой результат должен иметь меньший score. Если нет ни ИНН, ни нормального телефона, лучше создать задачу “проверить данные”, чем писать случайные подсказки в CRM. Нормализация телефона, ИНН и confidence gate (Code Node) ¶ Этот Code Node не вызывает DaData напрямую. Он готовит стабильный объект для HTTP Request и решает, есть ли смысл обогащать запись автоматически. const src = $json.body ?? $json; const rawPhone = String(src.phone ?? '').trim(); let digits = rawPhone.replace(/\D/g, ''); if (digits.length === 11 && digits.startsWith('8')) digits = `7${digits.slice(1)}`; if (digits.length === 10) digits = `7${digits}`; const phoneOk = /^7\d{10}$/.test(digits); const inn = String(src.inn ?? '').replace(/\D/g, ''); const innOk = /^(\d{10}|\d{12})$/.test(inn); const email = String(src.email ?? '').trim().toLowerCase(); const companyQuery = innOk ? inn : String(src.name ?? '').trim(); const score = [ phoneOk ? 30 : 0, innOk ? 40 : 0, companyQuery.length >= 3 ? 20 : 0, email.includes('@') ? 10 : 0 ].reduce((a, b) => a + b, 0); return [{ json: { lead_id: src.lead_id, phone_normalized: phoneOk ? `+${digits}` : null, inn, email, company_query: companyQuery, confidence_score: score, enrichment_mode: score >= 70 ? 'auto_update' : 'manual_review', dadata: { clean_phone_url: 'https://cleaner.dadata.ru/api/v1/clean/phone', suggest_party_url: 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party' } } }]; Порог 70 — пример. Для B2B-лидов с ИНН его можно поднять до 80–90, а для входящих заявок без реквизитов оставить ручную проверку. Главное — фиксировать правило в workflow, а не держать его в голове интегратора. Готовый workflow JSON: скачать и импортировать ¶ Полный workflow JSON находится в архиве сайта и доступен по кнопке в начале статьи. Внутри есть HTTP Request для DaData, ветка quality gate и пример обновления CRM. Скачать готовый workflow JSON Скачать тестовый payload { "name": "Nodbot - DaData lead enrichment with quality gate", "nodes": [ { "name": "Webhook input", "type": "n8n-nodes-base.webhook", "purpose": "Принять lead_id, телефон, email, ИНН и название компании" }, { "name": "Normalize and score", "type": "n8n-nodes-base.code", "purpose": "Подготовить телефон, ИНН и confidence_score" }, { "name": "DaData clean phone", "type": "n8n-nodes-base.httpRequest", "purpose": "Очистить и проверить телефон" }, { "name": "DaData suggest party", "type": "n8n-nodes-base.httpRequest", "purpose": "Найти организацию по ИНН или названию" }, { "name": "Quality gate", "type": "n8n-nodes-base.if", "purpose": "Разделить auto_update и manual_review" }, { "name": "Update CRM or create review task", "type": "n8n-nodes-base.httpRequest", "purpose": "Обновить CRM только при достаточной уверенности" } ], "connections": "Webhook → Normalize → DaData phone/party → Quality gate → CRM update or review" } Пошаговая настройка DaData API, n8n и CRM ¶ Создайте DaData credentials в n8n: API key и Secret key храните в credentials или ENV. Импортируйте workflow JSON и замените CRM endpoint на ваш URL обновления лида. Решите, какие поля можно обновлять автоматически: например, phone_validated, company_inn, company_name_suggested. Настройте ветку manual review для score ниже порога: задача менеджеру, комментарий или отдельный статус. Запустите тестовый payload с ИНН, без ИНН и с плохим телефоном. Хороший результат: исходные поля сохранены, enriched-значения подписаны источником и score. Тесты перед production и проверка DaData API ¶ Проверяйте не только HTTP 200 от DaData. Важно увидеть, какие именно поля workflow собирается обновить и почему score достаточный. Для каждого теста сохраните execution, чтобы потом объяснить менеджерам логику принятия решения. curl -X POST "https://YOUR-N8N-DOMAIN/webhook/dadata-enrich-lead" \ -H "Content-Type: application/json" \ --data @dadata-enrich-lead-payload.json Лид с валидным ИНН и телефоном должен уйти в auto_update . Лид только с названием компании должен уйти в manual_review или получить низкий score. Плохой телефон не должен перезаписывать рабочий номер в CRM. Ошибка лимита DaData должна попасть в alert/retry, а не в тихий success. Production-риски обогащения данных ¶ Перезапись хороших данных. Никогда не заменяйте проверенные поля без признака источника и даты обогащения. Первый match принят автоматически. Для названий компаний это риск, особенно при франшизах и филиалах. DaData token попал в лог. Не отправляйте headers и полный response в публичные алерты. Нет лимитов и backoff. Массовая переработка базы может быстро упереться в ограничения API. Нет ручной очереди. Все спорные лиды должны быть видны человеку, иначе они просто теряются. Полезные ссылки и смежные workflow ¶ Официальная документация: DaData API подсказок по организациям . Внутри Nodbot полезны страницы Tilda → Битрикс24 , Tilda → amoCRM , retry и DLQ для HTTP Request и HTTP Request node . Критерии готовности ¶ В workflow есть порог confidence score и ветка manual review. Исходные данные формы не удаляются и не перезаписываются без trace. DaData credentials не видны в HTML, workflow notes и alert-сообщениях. Тесты покрывают валидный ИНН, неточный company name, плохой телефон и лимит API. Менеджер видит enriched-поля, источник и дату последней проверки. Нужно обогатить CRM без хаоса в данных? Nodbot настроит DaData enrichment через n8n с quality gate, ручной очередью и безопасным обновлением CRM-полей. Обсудить enrichment workflow

## Test payload

```json
{
  "lead_id": "crm-10492",
  "name": "ООО Ромашка",
  "phone": "+7 (495) 123-45-67",
  "email": "sales@romashka.example",
  "inn": "7707083893",
  "source": "tilda_form",
  "crm_url": "https://crm.example.ru/leads/10492"
}
```

## Key implementation snippet

```javascript
const src = $json.body ?? $json;
const rawPhone = String(src.phone ?? '').trim();
let digits = rawPhone.replace(/\D/g, '');
if (digits.length === 11 && digits.startsWith('8')) digits = `7${digits.slice(1)}`;
if (digits.length === 10) digits = `7${digits}`;

const phoneOk = /^7\d{10}$/.test(digits);
const inn = String(src.inn ?? '').replace(/\D/g, '');
const innOk = /^(\d{10}|\d{12})$/.test(inn);
const email = String(src.email ?? '').trim().toLowerCase();
const companyQuery = innOk ? inn : String(src.name ?? '').trim();

const score = [
  phoneOk ? 30 : 0,
  innOk ? 40 : 0,
  companyQuery.length >= 3 ? 20 : 0,
  email.includes('@') ? 10 : 0
].reduce((a, b) => a + b, 0);

return [{
  json: {
    lead_id: src.lead_id,
    phone_normalized: phoneOk ? `+${digits}` : null,
    inn,
    email,
    company_query: companyQuery,
    confidence_score: score,
    enrichment_mode: score >= 70 ? 'auto_update' : 'manual_review',
    dadata: {
      clean_phone_url: 'https://cleaner.dadata.ru/api/v1/clean/phone',
      suggest_party_url: 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party'
    }
  }
}];
```

## Importable workflow structure

```json
{
  "name": "Nodbot - DaData lead enrichment with quality gate",
  "nodes": [
    { "name": "Webhook input", "type": "n8n-nodes-base.webhook", "purpose": "Принять lead_id, телефон, email, ИНН и название компании" },
    { "name": "Normalize and score", "type": "n8n-nodes-base.code", "purpose": "Подготовить телефон, ИНН и confidence_score" },
    { "name": "DaData clean phone", "type": "n8n-nodes-base.httpRequest", "purpose": "Очистить и проверить телефон" },
    { "name": "DaData suggest party", "type": "n8n-nodes-base.httpRequest", "purpose": "Найти организацию по ИНН или названию" },
    { "name": "Quality gate", "type": "n8n-nodes-base.if", "purpose": "Разделить auto_update и manual_review" },
    { "name": "Update CRM or create review task", "type": "n8n-nodes-base.httpRequest", "purpose": "Обновить CRM только при достаточной уверенности" }
  ],
  "connections": "Webhook → Normalize → DaData phone/party → Quality gate → CRM update or review"
}
```

## Retrieval hints

- Использовать HTML как canonical source.
- Markdown удобен для LLM-ответов, извлечения workflow-контракта, кода и чеклистов.
- Для ссылок пользователю отдавать canonical URL.
