Zautomatyzowane generowanie leadów i monitorowanie przetargów

AI i uczenie maszynowe 847 PLN
Praca 1 z 31
Cel:
Stworzyć autonomiczny system generowania leadów, który codziennie skanuje rejestr Prozorro w poszukiwaniu dwóch kategorii możliwości: zawartych umów (ciepłe leady — organizacje, które już kupują odpowiedni towar) oraz aktywnych przetargów (gdzie można złożyć ofertę). Końcowy produkt — zorganizowana baza CRM w Airtable z pełnymi danymi kontaktowymi zamawiającego, uczestnikami oraz cenami ofert.

Kluczowe wymagania:

Dwa równoległe workflow: izolowane przetwarzanie umów (/contracts) oraz aktywnych przetargów (/tenders?status=active.tendering)
Rozszerzone filtrowanie: 5 kodów CPV + 15 marek znaczników + minimalna kwota 50 000 UAH
Paginacja kursorowa z historycznym backfill: skanowanie Prozorro od 01.01.2025 bez utraty pozycji między uruchomieniami
Szczegółowa struktura CRM: kontakty (EDRPOU, email, telefon), uczestnicy aukcji z cenami, linki do rejestru ofert
Dedupikacja na poziomie Airtable: zapobieganie powtórnym zapisom przy ciągłej pracy
Hybrydowa logika: zamknięte przetargi, które przeszły filtr, automatycznie wzbogacają bazę leadów danymi uczestników do przyszłych kampanii emailowych
Mój wkład:

Zamawiający handluje sprzętem energetycznym (akumulatory, UPS, panele słoneczne) i spędzał godziny dziennie na ręcznym monitorowaniu Prozorro. Zadanie polegało nie tylko na "przesyłaniu przetargów", ale na zbudowaniu gotowego do sprzedaży leja leadów z pełnym rozrachunkiem rynku.

Architektoniczna dekompozycja: zamiast jednego "grubego" flow podzieliłem system na dwa niezależne workflow — dla umów i aktywnych przetargów. Każdy ma własny kursor, harmonogram uruchamiania i tabelę Airtable. To pozwoliło na skalowanie źródeł bez wzajemnych blokad.

Paginacja kursorowa z logiką self-healing: Prozorro zwraca opakowany kursor w formacie {timestamp}.{seq}.{hash}. Zrealizowałem warstwę ochronną, która waliduje kursor przed użyciem i automatycznie przywraca go z ważnej daty, jeśli API zwraca anomalię (na przykład, reset do 2015 roku). Bez interwencji administratora.

Dwustopniowe wzbogacenie danych: dla leadów stworzyłem kaskadę zapytań HTTP — najpierw umowa (nabywca, dostawca, kwota), potem przetarg (uczestnicy, stawki, rejestr ofert). Oddzielny węzeł JavaScript łączy te strumienie i formuje JSON z tablicą uczestników (nazwa, EDRPOU, email, stawka początkowa + końcowa), gotowy do integracji z kampaniami emailowymi.

Dedupikacja przez Airtable Search: przed każdym zapisem flow wykonuje wyszukiwanie po contractID/tenderID, co pozwala na bezpieczne ponowne uruchamianie workflow tyle razy, ile potrzeba, bez tworzenia duplikatów.

Routing zamkniętych przetargów: przetargi, które zakończyły się przed momentem przetwarzania, nie są usuwane — logika IF przekierowuje je do tabeli "Leady" z pełną listą uczestników. W ten sposób zamawiający otrzymuje nie tylko potencjalnych klientów-nabywców, ale także konkurentów-dostawców do analizy rynku.

Wynik:

Działający system, który codziennie wzbogaca CRM zamawiającego bez żadnej interwencji ludzkiej:

2 źródła danych w jednej bazie danych: Airtable z dwiema tabelami ("Leady" i "Aktywne przetargi"), każda z kontaktami, cenami, dokumentami i linkami
Gotowość do email marketingu: zorganizowane dane uczestników (z emailami i telefonami) można bezpośrednio przesyłać do Mailchimp/SendPulse/własnego skryptu
Oszczędność 2-3 godziny/dzień: zamiast ręcznego googlowania zamawiający od razu otrzymuje tabelę z 18 polami
Historyczny zasięg: backfill od 01.01.2025 pozwolił na stworzenie bazy ciepłych leadów przez 16+ miesięcy jeszcze przed uruchomieniem
Stabilność 24/7: system uruchamiany 4 razy dziennie według harmonogramu, z logiką retry na błędy API i samoodtwarzaniem kursora
#n8n #Airtable #LeadGeneration #SalesAutomation #Prozorro #API #WorkflowAutomation #JavaScript #CRM #DataPipeline #BusinessAutomation #NoCode #B2B #GenerowanieLeadów #Automatyzacja
Szczegóły
  • Dodana:
97

Freelancer

  • Zleceń 11
  • Ocena 4.9
  • Ranking 1 566
Zarejestruj się

Jeśli masz konto, zaloguj się

Wskaźniki

  • Ostatnia wizyta: 4 dni 15 godzin temu