Автоматизированная лидогенерация и мониторинг тендеров

AI и машинное обучение 10 000 UAH
Работа 1 из 31
Мета:
Создать автономную систему лидогенерации, которая ежедневно сканирует реестр Prozorro в поисках двух категорий возможностей: заключенных договоров (теплые лиды — организации, которые уже покупают релевантный товар) и активных тендеров (где можно подать предложение). Конечный продукт — структурированная CRM-база в Airtable с полным контактом заказчика, участниками и ценами предложений.

Ключевые требования:

Два параллельных воркфлоу: изолированная обработка контрактов (/contracts) и активных тендеров (/tenders?status=active.tendering)
Расширенная фильтрация: 5 CPV-кодов + 15 брендов-маркеров + минимальная сумма 50 000 грн
Курсорная пагинация с историческим backfill: сканирование Prozorro с 01.01.2025 без потери позиции между запусками
Детализированная CRM-структура: контакты (ЕГРПОУ, email, телефон), участники аукциона с ценами, ссылки на реестр предложений
Дедупликация на уровне Airtable: предотвращение повторных записей при непрерывной работе
Гибридная логика: закрытые тендеры, которые прошли фильтр, автоматически обогащают базу лидов данными участников для будущих email-кампаний
Мой Вклад:

Заказчик торгует энергетическим оборудованием (аккумуляторы, ИБП, солнечные панели) и тратил часы ежедневно на ручной мониторинг Prozorro. Задача заключалась не просто в "присылке тендеров", а в создании готового к продажам конвейера лидов с полным расшифровкой рынка.

Архитектурная декомпозиция: вместо одного "толстого" флоу я разделил систему на два независимых воркфлоу — для договоров и активных тендеров. Каждый имеет собственный курсор, график запуска и Airtable-таблицу. Это позволило масштабировать источники без взаимных блокировок.

Курсорная пагинация с self-healing логикой: Prozorro возвращает упаковочный курсор в формате {timestamp}.{seq}.{hash}. Я реализовал защитный слой, который валидирует курсор перед использованием и автоматически восстанавливает его с валидной даты, если API возвращает аномалию (например, сброс до 2015 года). Без вмешательства администратора.

Двухуровневое обогащение данных: для лидов я сделал каскад HTTP-запросов — сначала контракт (покупатель, поставщик, сумма), затем тендер (участники, ставки, реестр предложений). Отдельный JavaScript-узел объединяет эти потоки и формирует JSON с массивом участников (название, ЕГРПОУ, email, начальная + финальная ставка), готовый для интеграции с email-рассылками.

Дедупликация через Airtable Search: перед каждой записью флоу делает поиск по contractID/tenderID, что позволяет безопасно перезапускать воркфлоу сколько угодно раз без создания дублей.

Маршрутизация закрытых тендеров: тендеры, которые закончились до момента обработки, не выбрасываются — IF-логика перенаправляет их в таблицу "Лиды" с полным списком участников. Так заказчик получает не только потенциальных клиентов-покупателей, но и конкурентов-поставщиков для анализа рынка.

Результат:

Работающая система, которая ежедневно обогащает CRM заказчика без какого-либо человеческого вмешательства:

2 источника данных в одной БД: Airtable с двумя таблицами ("Лиды" и "Активные тендеры"), каждая с контактами, ценами, документами и ссылками
Готовность к email-маркетингу: структурированные данные участников (с email и телефонами) можно напрямую сбрасывать в Mailchimp/SendPulse/собственный скрипт
Экономия 2-3 часа/день: вместо ручного гугления заказчик сразу получает таблицу с 18 полями
Исторический охват: backfill с 01.01.2025 позволил сформировать базу теплых лидов за 16+ месяцев еще до запуска
Стабильность 24/7: система запускается 4 раза в день по расписанию, с retry-логикой на API-ошибки и самовосстановлением курсора
#n8n #Airtable #LeadGeneration #SalesAutomation #Prozorro #API #WorkflowAutomation #JavaScript #CRM #DataPipeline #BusinessAutomation #NoCode #B2B #Лидогенерация #Автоматизация
Детали
  • Добавлена:
97

Фрилансер

  • Проектов 11
  • Оценка 4.9
  • Рейтинг 1 566
Зарегистрируйтесь

Если у вас есть аккаунт, авторизуйтесь

Показатели

  • Последний визит: 4 дня 15 часов назад