Сайт не работает без javascript. Включите поддержку javascript в настройках браузера!
🔴 Бесплатный вебинар: Как ФНС проверяет физических лиц, ИП и организации: алгоритм проверок и перспективы на 2027 год
ИМ
Иван Мариненко
Ведение бизнеса
Читать 4 мин

Сбор B2B-базы из Яндекс.Карт и 2GIS: как формализовать процесс, чтобы не платить за списки от агрегаторов

Менеджер по продажам тратит 3-4 часа на сбор холодной базы из открытых карт. Заходит в Яндекс.Карты, копирует контакты в Excel, повторяет в 2GIS, чистит дубли руками. На задании «50 компаний из ниши X в районе Y» уходит полдня. Ниже - как описать процесс так, чтобы поручить его машине, и что для этого должно быть готово.

13 просмотров29 открытий
Сбор B2B-базы из Яндекс.Карт и 2GIS: как формализовать процесс, чтобы не платить за списки от агрегаторов

Разбираю на примере малого B2B - сегмента, где квалифицированный лид стоит от 800 рублей у агрегаторов и 0 рублей при самостоятельной сборке через открытые источники. Без программных деталей - только организационная часть: какой регламент нужен, какие условия должны сойтись внутри, чтобы сбор можно было передать на автомат.

Что отнимало время

Задача типовая: руководитель отдела продаж присылает в чат «давайте по стоматологиям в Бирюлёво, нужно человек 50», менеджер уходит выполнять. За эти 3-4 часа он:

  • Открывает Яндекс.Карты, ищет нишу в районе, прокручивает выдачу до конца.

  • Каждую карточку открывает по одной, копирует название, телефон, адрес в Excel.

  • Открывает 2GIS, делает то же самое для того же района.

  • Сводит два списка, ищет повторы глазами, объединяет дубли.

  • Чистит «мусорные» записи: компании без телефона, повторы под разными названиями, давно закрытые точки.

В цифрах: на одну выгрузку 50 компаний уходит 3-4 часа работы менеджера. При стабильном потоке холодных продаж набегает 60-80 часов в месяц - один человек только кликает по карточкам. В это время он не разговаривает с клиентами, не закрывает сделки и не ведёт CRM.

> *Главная проблема не в скорости, а в том, что человек не должен делать работу, для которой не нужны человеческие навыки. Скорость - следствие.*

До технологий - четыре условия, без которых ничего не получится.

1. Описанный шаблон задачи. У отдела продаж должен быть формализованный запрос. Не «давайте по стоматологиям», а три обязательных параметра:

  • Ниша - точная формулировка («стоматологическая клиника», а не «зубные»).

  • Локация - район, город или метро. Чем уже - тем чище выборка.

  • Лимит - сколько компаний ожидается (10 / 30 / 50 / 100 / 200).

Если эти три поля не описаны - автоматизация не запустится: на вход машине нечего подать.

2. Правила объединения дублей. Та же компания в Яндекс.Картах и 2GIS - один лид, не два. Регламент должен описать, по каким признакам две записи считать одной. *На практике рабочий комплект:*

  • Одинаковый телефон в формате `+7XXXXXXXXXX` (с нормализацией - убираем пробелы, скобки, заменяем «8» на «+7»).

  • Совпадение координат до четырёх знаков после запятой (это окно около 11 метров на местности).

  • Совпадение по любому из ключей - запись объединяется, пустые поля из одной дозаполняются из второй.

Без этих правил выгрузка получается с 30-40% дублей: оба источника знают один и тот же объект, но называют его по-разному.

3. Что считать «годным» контактом. Не любая карточка - лид. *Минимально:*

  • Есть телефон в рабочем формате (не «звонить через ВКонтакте»).

  • Не закрытая точка (поле «Закрыто навсегда» в Яндекс.Картах - отбрасываем).

  • Не дубль с уже отработанной базой (если она ведётся в CRM, нужна сверка по тому же ключу телефона).

4. Куда складывать результат. XLSX-файл с разнесением по листам:

  • Лист 1: что нашли в Яндекс.Картах (как есть, без обработки).

  • Лист 2: что нашли в 2GIS.

  • Лист 3 (Companies_Merged): объединённый список после удаления повторов - именно с ним работает отдел продаж.

Регламент должен прописать, кто получает файл (директор по продажам, в общий чат, на почту), как этот файл попадает в CRM (через ручную загрузку или автоматический парсер), как ставится отметка «отработано» на каждой строке.

Что нужно технически

Архитектура устроена просто и стоит копейки. Три компонента:

  • n8n - оркестратор процесса. Принимает запрос («стоматологии в Бирюлёво, до 50»), запускает сбор, отдаёт результат. Ставится на собственный сервер за 5 долларов в месяц.

  • Apify - сервис, который умеет ходить в Яндекс.Карты и 2GIS как настоящий пользователь и доставать данные карточек. Оплата по факту: около 30-50 копеек за запрос на 30+30 компаний.

  • Telegram-бот - простая обёртка для общения с менеджером. Менеджер отправляет в бот три параметра (ниша / город / лимит) и получает XLSX через 2 минуты.

Всё связывается между собой одним сценарием. На сборку с нуля у понимающего n8n человека уходит вечер. На разбор готового шаблона - 2-3 часа.

> *Простая схема: бот спрашивает три параметра - оркестратор зовёт два парсера параллельно - дедуп по нашим правилам - готовый XLSX обратно в чат. Скорости двух источников складываются, время сбора - максимум из двух, а не сумма.*

Цифры результата

На реальной выгрузке «стоматологии в Бирюлёво, до 30 точек из каждого источника»:

  • 2 минуты 7 секунд - полное время от запроса до получения XLSX.

  • 16 уникальных компаний - после удаления повторов.

  • 7 из 16 - с указанным ИНН (берём из юридической справки 2GIS, поле появилось недавно).

  • 16 из 16 - с телефоном.

  • ~0,5 рубля - себестоимость одного прогона по тарифу Apify.

На больших объёмах - единицы рублей за тысячу компаний с телефонами и ИНН. Это в разы дешевле любой покупной базы и без вопросов «откуда у них наши данные» - всё с публичных карточек, которые компании сами разместили в открытом доступе.

Что было сложно

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

  • Лимит длины ячейки XLSX. Apify возвращает массивы отзывов и категорий, которые после сериализации в строку могут превысить лимит 32 767 символов на ячейку. Без обрезки сборщик файла падает.

  • Параллельные пути в сценарии. Если у сценария два входа - через веб-запрос и через вызов из бота, нужно явно помечать поток метаданными и расставлять условные узлы. Иначе обращение к не-запускавшемуся узлу даёт ошибку.

  • Дедуп по координатам. Округление до четырёх знаков работает почти всегда. Сбой даёт случай, когда в одном здании на одном этаже сидят две организации с разными телефонами. Если такие коллизии важны - округлять до пяти знаков (точность примерно 1 метр).

Сценарий подходит везде, где локальный B2B ищется через карты:

  • Стоматологии, ветклиники, салоны красоты, фитнес-залы - сегментация «ниша + район метро».

  • Сервисы для бизнеса (юристы, бухгалтеры, кадры) - выборка по районам мегаполисов.

  • Холодные продажи в отраслях с географической привязкой - производство, общепит, розница.

  • Анализ конкурентов перед открытием своей точки - сколько в радиусе километра, какие рейтинги.

Не подходит для рынков, где компании в картах не представлены: e-commerce без физических точек, IT-аутсорс, удалённые услуги.

Открытый шаблон

Сценарий выложен в трёх зеркалах открытого репозитория - сценарий n8n, документация по нодам, пример выгрузки:

В репозитории есть `workflow.json` для импорта в свой n8n, `docs/architecture.md` с пошаговым разбором каждого узла, `.env.example` для токена доступа к Apify.

Импорт занимает минут пять: загрузить файл, привязать токен, активировать сценарий. Дальше к сценарию подключается свой Telegram-бот через `@BotFather` или прямой веб-запрос из CRM.

Если в команде нет человека, который сможет это собрать - регламент сбора B2B-базы из открытых источников всё равно полезен. Менеджер по-прежнему тратит 3-4 часа на контакты, но делает это по понятным правилам, а не «как получится».

Информации об авторе

Этот пост написан блогером Трибуны. Вы тоже можете начать писать: сделать это можно .

Начать дискуссию

ГлавнаяПодписка