Zapytanie z formularza na stronie potrafi przeleżeć w skrzynce do końca tygodnia. Klient w tym czasie napisał jeszcze w dwóch miejscach i kupił tam, gdzie odpisali pierwsi.
Zapytania przychodzą nierówno. Poniedziałkowy poranek potrafi przynieść pięć naraz, środa zero. Ktoś musi wejść na pocztę, przeczytać każde, zdecydować czy to realny klient czy zapytanie za małe na twój profil, wpisać do arkusza i odpisać. Kiedy ta osoba jest zajęta albo poza biurem, zapytania czekają.
To drugi workflow z mojej serii ośmiu szablonów n8n dla firm usługowych, dostępnych za darmo w publicznym repozytorium. Opisuję go szczegółowo, żebyś wiedział, co dostaniesz, zanim cokolwiek ściągniesz.
Jak workflow obsługuje zapytanie
Punkt wejścia to webhook. Formularz na stronie wysyła żądanie POST z czterema polami: imię, firma, adres e-mail i opis problemu. Od tego momentu workflow przejmuje pracę.
Pierwsza operacja to walidacja i deduplikacja. Każde zapytanie dostaje identyfikator wyliczany ze skrótu adresu e-mail i treści wiadomości. Jeśli ktoś wciśnie przycisk dwa razy albo formularz odeśle żądanie przy ponownym załadowaniu strony, drugie przejście rozpoznaje ten sam identyfikator i zwraca odpowiedź "duplikat" bez tworzenia nowego rekordu i bez wysyłania kolejnego maila. Zapytania z nieprawidłowym schematem (zły format e-mail, pusta treść) trafiają do osobnej gałęzi w Airtable jako dead-lettery z własną deduplikacją. Masz w bazie pełen audyt tego, co do formularza wpłynęło, nawet jeśli ktoś wysłał śmieć.
Zanim cokolwiek trafi do modelu językowego, workflow sprawdza treść pod kątem danych wrażliwych. Tekst wyglądający jak dane karty płatniczej, informacje o stanie zdrowia albo materiał o charakterze prawnym nie trafia do OpenAI. Takie zapytanie jest od razu oznaczane jako wymagające przeglądu przez człowieka, a biuro dostaje alert mailowy. Model nie widzi tych treści w ogóle. To celowe.
Zapytania, które przeszły ten filtr, idą do modelu gpt-4o-mini. Zadaniem modelu jest określenie kategorii zapytania, szacowanej wielkości firmy, pilności, sygnału budżetowego oraz wygenerowanie krótkiego streszczenia i projektu wiadomości powitalnej. Model zwraca też wartość pewności w skali od 0 do 1.
Odpowiedź modelu jest traktowana jak niezaufane dane zewnętrzne - i słusznie. Workflow parsuje ją defensywnie, usuwa ewentualne znaczniki kodu, sprawdza czy pola mają właściwe typy i wartości z dozwolonych zbiorów. Jeśli pewność jest niższa niż 0,75, schemat się nie zgadza albo odpowiedź jest nieparsowalna, lead trafia do kolejki do przeglądu przez człowieka. To zmiana stanu w bazie, nie blokada całego przepływu.
Po kwalifikacji rekord ląduje w Airtable. Tu jest jeden mechanizm, który warto zrozumieć przed instalacją. Przed wysłaniem maila workflow zapisuje w bazie stan "oczekuje na wysłanie". Stan zmienia się na "wysłano" dopiero po tym, gdy Gmail zwróci identyfikator wiadomości od dostawcy. Jeśli wysyłka się nie powiedzie, rekord zostaje w stanie oczekującym. Co godzinę uruchamia się przegląd, który sprawdza bazę i ponawia nieudane wysyłki. Żadne zapytanie nie przepada przez chwilową usterkę połączenia.
Co jest w repozytorium
Plik workflow.json gotowy do importu w n8n, dokumentacja kroków konfiguracji i README z wyjaśnieniem decyzji projektowych.
Bezpośredni link do szablonu: github.com/kuliberdalabs/n8n-sme-workflows/tree/main/workflows/01-lead-intake
Główne repozytorium serii: github.com/kuliberdalabs/n8n-sme-workflows
Katalog serii liczy 14 pozycji, z czego 8 leży w repozytorium jako gotowe szablony do importu. Pozostałej szóstki jeszcze nie opublikowałem i nie opisuję jej tutaj.
Kilka kwestii ważnych przed konfiguracją.
Wiadomość powitalna generowana przez workflow trafia na skrzynkę biura, nie do osoby, która wypełniła formularz. README zaznacza to wprost: przekierowanie maila do klienta to świadoma zmiana konfiguracji, którą robisz po przetestowaniu workflow na żywych danych.
Webhook nie ma tokenu uwierzytelniającego, bo stoi za publicznym formularzem. Zanim wystawisz go na internet, dodaj rate-limiting po stronie proxy lub n8n. Bez tego boty mają otwartą drogę do zapełnienia bazy śmieciowymi wpisami. README mówi o tym jednoznacznie.
Trzecia granica: workflow przyjmuje dane wyłącznie przez webhook. Czytanie skrzynki mailowej jako źródła zapytań, integracja z CRM i kanały alertów inne niż mail nie mieszczą się w zakresie tego szablonu.
Kiedy szablon to za mało
Jeśli wiadomość powitalna ma trafiać bezpośrednio do klienta, potrzebujesz przetestować workflow na żywych danych i zmienić konfigurację Gmail. To zmiana konfiguracji, którą robisz dopiero po testach na żywych danych.
Integracja z CRM (Pipedrive, HubSpot albo cokolwiek używasz) wymaga osobnych węzłów i mapowania pól. Powiadomień na Slacku czy Teamsie zamiast maila nie ma w szablonie.
Jeśli chcesz złożyć to pod swój stack, zajrzyj na kartę Skrzynka Pod Kontrolą. To nasz flagowy pakiet dla firm, które chcą mieć porządek w kanałach przychodzących. Możemy też porozmawiać o tym, co konkretnie u ciebie nie działa, na bezpłatnej diagnozie: /kontakt.
Jeśli liczysz budżet, zacznij od wpisu Ile kosztuje automatyzacja procesów.
Pierwszy odcinek tej serii: automatyczne przypomnienia o niezapłaconych fakturach.