1 месяц назад
История
README.md
n8n-сценарий парсинга Яндекс.Карт и 2ГИС с дедупом и Telegram-уведомлениями
Готовый workflow для n8n, который собирает контакты компаний параллельно из двух источников через Apify, дедуплицирует по композитному ключу phone + geohash, и отдаёт XLSX с тремя листами (Yandex / 2GIS / Merged). Сценарий двухтриггерный — работает и как HTTP-endpoint, и как sub-workflow для бот-обёртки.
Технические характеристики
- Версия n8n: ≥ 1.50 (использует только встроенные ноды — никаких community-пакетов)
- Внешние зависимости: Apify (платный или бесплатный план с лимитом 5 USD/мес)
- Использованные ноды: Webhook, executeWorkflowTrigger, HTTP Request × 2, Set × 5, Merge, Code, Switch, Respond to Webhook
- Логика дедупа: композитный ключ
normalizePhone + geohash(lat, lon, precision=4) - Формат выгрузки: XLSX с тремя листами через
xlsx@latest(встроен в Code-sandbox n8n) - Время выполнения: ~2 минуты на 500 контактов на одной запросе (узкое место — синхронный вызов Apify)
Установка
# 1. Импорт workflow.json
# UI: Workflows → Import from File → выбрать workflow.json
# 2. Создание HTTP Header Auth credential в n8n:
# Имя: Apify Bearer
# Заголовок: Authorization
# Значение: Bearer apify_api_<ваш-токен>
# 3. Привязка credential к двум Apify-нодам
# n8n предложит привязать при первом открытии после импорта
# 4. Активация workflow (тумблер в правом верхнем углу UI)
Тестовый вызов
curl -X POST "https://<n8n-host>/webhook/<path>" \
-H "Content-Type: application/json" \
-d '{
"query": "автосервисы Санкт-Петербург",
"limit": 200
}' \
-o leads.xlsx
В ответе — бинарь XLSX. В нём три листа: исходные строки от Я.Карт, от 2ГИС, и объединённый список после дедупа.
Стек
| Компонент | Зачем | Замена |
|---|---|---|
| n8n | оркестратор | можно собрать на Node + cron, но дольше писать |
| Apify | акторы для Я.Карт и 2ГИС | свой парсер на Playwright/Selenium (2–7 дней работы, постоянная поддержка) |
| HTTP Header Auth | передача Bearer-токена | можно вшить в URL, но безопасность хуже |
| Code-нода с xlsx | сборка Excel | n8n имеет встроенный Convert to File для XLSX без кода, но без контроля над структурой |
Структура репозитория
| Путь | Что внутри |
|---|---|
workflow.json |
сценарий, очищенный от инстанс-ID, готов к импорту |
docs/architecture.md |
разбор по нодам, формат payload Apify, логика дедупа |
.env.example |
переменные для запуска |
LICENSE |
MIT |
Каноничный кейс-стади
С разбором всех багов которые вылезли при сборке (5 штук — с инкорпорацией ИНН, нестабильным ответом Apify при больших limit, проблемой кодировки в XLSX) и финальным workflow по шагам — на delai.agency/avtomatizacii/leadgen-yandex-maps-2gis.
Pull Request приветствуется
- Адаптация под другие источники (HH, Авито, отраслевые каталоги)
- Альтернативные ключи дедупа (по ИНН, доменам сайтов)
- Поддержка других форматов выгрузки (CSV, JSON, прямая запись в Google Sheets)
- Метрики через Prometheus / OpenTelemetry
Описание
Maps Leadgen — Core
Конвейеры
0
успешных
0
с ошибкой