Jak obsługiwać zgłoszenia formularzy Webflow bez własnego backendu

Jak obsługiwać zgłoszenia formularzy Webflow bez własnego backendu

Formularz kontaktowy w Webflow wygląda świetnie od razu po wdrożeniu, ale Webflow wysyła ci tylko powiadomienie e-mail z danymi zgłoszenia - nie zapisuje wpisów w bazie danych, nie łączy się z CRM-em ani nie wyzwala żadnej własnej logiki. Jeśli potrzebujesz czegoś więcej niż podstawowego powiadomienia e-mail, musisz przekierować zgłoszenia z formularza Webflow przez zewnętrzną usługę. Dobra wiadomość jest taka, że możesz to zrobić bez napisania ani jednej linii kodu backendowego.

Co Webflow daje ci domyślnie

Wbudowany handler formularzy Webflow robi trzy rzeczy: wysyła powiadomienie e-mail do właściciela strony, wyświetla komunikat o sukcesie i zapisuje zgłoszenia w panelu Webflow (na płatnych planach). To wystarczy przy prostych formularzach kontaktowych na małych stronach, ale szybko okazuje się niewystarczające, gdy potrzebujesz któregoś z poniższych:

  • Automatycznych odpowiedzi do osoby, która wypełniła formularz
  • Przekazywania zgłoszeń do konkretnej skrzynki zespołu lub CRM-u
  • Logiki warunkowej (np. kierowania leadów według zainteresowania produktem)
  • Filtrowania spamu wykraczającego poza podstawowy honeypot Webflow
  • Wiarygodnego rejestru dostarczenia z sygnaturami czasowymi i mechanizmem ponownych prób

Żadna z tych funkcji nie jest dostępna natywnie. Potrzebujesz zewnętrznej warstwy, a są trzy realistyczne sposoby, żeby ją dodać.

Natywne integracje - Zapier i Make

Webflow ma bezpośrednią integrację z Zapier i Make (dawniej Integromat). Gdy pojawi się nowe zgłoszenie formularza, wyzwalacz uruchamia się i możesz połączyć dowolne akcje: dodać wiersz do Google Sheets, utworzyć kontakt w HubSpot, wysłać wiadomość na Slack i tak dalej.

To ścieżka bez kodu, po którą designerzy sięgają jako pierwsi. Konfiguracja wygląda tak:

  1. W Webflow przejdź do Ustawienia projektu > Integracje i połącz swoje konto Zapier.
  2. W Zapier utwórz nowy Zap z wyzwalaczem Webflow - New Form Submission .
  3. Wybierz konkretny formularz po nazwie.
  4. Dodaj krok z akcją (Gmail, Slack, Airtable itp.).
  5. Przetestuj na rzeczywistym zgłoszeniu i włącz Zap.
Uwaga na koszty: Darmowy plan Zapier pozwala na tylko 100 zadań miesięcznie i obsługuje wyłącznie jednoetapowe Zapy. Wieloetapowy Zap (np. e-mail + CRM + Sheets) wymaga płatnego planu od 19,99 USD/miesiąc. Przy umiarkowanym ruchu na stronie limity zadań wyczerpują się bardzo szybko.

Make jest tańszy przy złożonych przepływach pracy, ale obie platformy wprowadzają zależność zewnętrzną: jeśli Zapier lub Make padnie albo twoje konto przekroczy limit, zgłoszenia po cichu przepadają lub kolejkują się bez powiadomienia.

Korzystanie z webhooka Webflow

Webhook Webflow to bardziej bezpośrednia droga. Webflow wysyła żądanie HTTP POST na wskazany przez ciebie adres URL za każdym razem, gdy formularz zostanie przesłany. Kontrolujesz endpoint odbierający, więc możesz zrobić z payloadem wszystko, co chcesz.

Żeby go skonfigurować:

  1. Przejdź do Ustawienia projektu > Integracje > Webhooks w Webflow.
  2. Kliknij Dodaj webhook i wybierz wyzwalacz Form Submission .
  3. Wklej adres URL endpointu twojej usługi odbierającej.
  4. Zapisz i przetestuj na rzeczywistym zgłoszeniu.

Payload wysyłany przez Webflow to obiekt JSON zawierający wszystkie wartości pól, nazwę formularza i metadane strony. Typowy payload wygląda tak:

{
  "name": "Contact Form",
  "site": "my-webflow-site",
  "data": {
    "Name": "Jane Smith",
    "Email": "[email protected]",
    "Message": "Hi, I'd like a quote."
  },
  "submittedAt": "2024-11-15T10:22:00Z"
}

Haczyk jest taki, że potrzebujesz czegoś, co odbierze ten webhook. Możliwości to m.in. mały Cloudflare Worker , przepływ pracy w Pipedream albo dedykowany backend formularzy. Pisanie własnego odbiornika to dokładnie ten problem z "własnym backendem", którego ten artykuł ma pomóc ci uniknąć. Właśnie tu usługi typu formularz-do-e-mail stają się najczystszym rozwiązaniem.

Jeśli interesują cię szersze kompromisy między własnym handlerem PHP a serverlessową usługą formularzy, porównanie w artykule PHP a formularze serverless wyjaśnia to w przejrzysty sposób.

Zamień endpoint formularza na zewnętrzną usługę

Zamiast w ogóle używać handlera formularzy Webflow, możesz wskazać atrybut action swojego formularza na zewnętrzną usługę obsługi formularzy. Usługa odbiera żądanie POST, waliduje je, filtruje spam i wysyła ci wyniki e-mailem. Żadnego backendu po twojej stronie.

Przepływ pracy w Webflow wygląda tak:

  1. W Webflow Designer zaznacz element formularza.
  2. W panelu Ustawienia formularza ustaw pole Akcja na adres URL endpointu twojej usługi (np. https://sendform.net/!your-form-id ).
  3. Ustaw Metodę na POST .
  4. Upewnij się, że każde pole input ma atrybut name - Webflow ustawia je domyślnie.
  5. Opublikuj stronę i przetestuj zgłoszenie.

To podejście całkowicie pomija handler formularzy Webflow. Zgłoszenie trafia bezpośrednio z przeglądarki odwiedzającego do usługi formularzy. Ty otrzymujesz e-mail, usługa zajmuje się ponownymi próbami i filtrowaniem spamu, a Webflow pełni jedynie rolę warstwy UI.

Ten sam wzorzec działa na każdej statycznej lub no-code stronie. Jeśli hostujesz również na GitHub Pages lub Cloudflare Pages, artykuł o bezpłatnym hostowaniu strony statycznej z działającymi formularzami kontaktowymi omawia dokładnie to samo podejście.

Sendform a alternatywy

Kilka usług obsługi formularzy działa z Webflow. Oto jak wypadają główne opcje pod względem rzeczy, które naprawdę mają znaczenie przy konfiguracji formularza kontaktowego:

Usługa Darmowy plan Złożoność konfiguracji Własne przekierowanie Filtrowanie spamu Zgodność z RODO
Sendform Tak Wklej jeden URL Tak Tak Tak
Formspree 50 zgłoszeń/miesiąc Rejestracja + wklejenie URL Tylko płatny plan Podstawowe (reCAPTCHA płatnie) Częściowa
Netlify Forms 100 zgłoszeń/miesiąc Wymagany hosting na Netlify Tak Tak Częściowa
Zapier (przez webhook) 100 zadań/miesiąc Wieloetapowy przepływ pracy Ręczne Brak wbudowanego Zależy od Zapa
Basin 100 zgłoszeń/miesiąc Rejestracja + wklejenie URL Tak Tak Częściowa

Sendform wyróżnia się z kilku konkretnych powodów, których nie da się zmieścić w tabeli:

  • Konfiguracja bez żadnych przeszkód: Otrzymujesz adres URL endpointu formularza bez konieczności wcześniejszego zakładania konta. Wklejasz go w pole Akcja w Webflow i gotowe.
  • Brak przechowywania zgłoszeń domyślnie: Sendform wysyła dane e-mailem i nie przechowuje ich na swoich serwerach, co jest właściwym domyślnym ustawieniem pod kątem zgodności z RODO. Konkurenci, tacy jak Formspree, zapisują wszystkie zgłoszenia w swoim panelu, co oznacza, że dane twoich użytkowników żyją na serwerze zewnętrznym przez czas nieokreślony.
  • Przyjazny dla deweloperów, ale dostępny bez kodu: W przeciwieństwie do Zapier, nie ma żadnego przepływu pracy do utrzymania. W przeciwieństwie do Netlify Forms, nie jest powiązany z konkretnym dostawcą hostingu - działa z Webflow, GitHub Pages lub dowolnym innym hostem.
  • Uczciwy darmowy plan: Żadnych ukrytych barier w stylu "przejdź na płatny plan, żeby odblokować przekierowania", którymi inne usługi zachęcają do upgrade'u.
Jeśli szukasz lekkich alternatyw dla rozbudowanych kreatorów formularzy, zestawienie najlepszych alternatyw dla Jotform dla deweloperów omawia Sendform obok innych opcji z rzetelnymi kompromisami.

Które podejście wybrać?

Właściwa odpowiedź zależy od tego, czego faktycznie potrzebujesz po przesłaniu formularza:

  • Tylko powiadomienia e-mail: Użyj Sendform. Wklej adres URL endpointu w pole Akcja w Webflow - gotowe w dwie minuty.
  • E-mail + synchronizacja z CRM-em lub arkuszem kalkulacyjnym: Użyj Sendform do dostarczania e-maili i opcjonalnie dodaj krok w Zapier wyzwalany przez przychodzący e-mail, albo skorzystaj z wyjścia webhookowego Sendform, jeśli jest dostępne na twoim planie.
  • Złożona wieloetapowa automatyzacja: Webhook Webflow do Make lub Zapier ma tu sens, ale zaplanuj budżet na płatny plan.
  • Już hostujesz na Netlify: Netlify Forms sprawdza się przy prostych przypadkach, ale limit 100 zgłoszeń miesięcznie skończy się szybko na każdej aktywnej stronie.

W przypadku zdecydowanej większości formularzy kontaktowych w Webflow - pole imię, e-mail i wiadomość, które ma niezawodnie trafiać do twojej skrzynki - Sendform to najszybsza i najczystsza droga. Żadnego backendu, żadnych miesięcznych limitów zadań do pilnowania i żadnych danych zgłoszeń siedzących w panelu zewnętrznym, o którym zapomniałeś.

Sendform - obsługa zgłoszeń z formularza kontaktowego Webflow bez backendu

Obsługuj formularz kontaktowy Webflow bez pisania backendu

Sendform daje ci gotowy endpoint formularza, który możesz wkleić bezpośrednio w pole Akcja w Webflow - zgłoszenia z twojego formularza trafiają do skrzynki natychmiast, z filtrowaniem spamu i ustawieniami domyślnymi zgodnymi z RODO.

Wypróbuj Sendform za darmo →

Gdy wskazujesz akcję formularza Webflow na zewnętrzny endpoint, wbudowany stan sukcesu Webflow nie będzie już wyzwalany automatycznie. Większość usług obsługi formularzy rozwiązuje to przez przekierowanie na stronę z podziękowaniem, którą sam wskazujesz. W Sendform ustawiasz adres URL przekierowania w ustawieniach formularza, dzięki czemu odwiedzający trafiają na twoją własną stronę potwierdzenia po przesłaniu. Alternatywnie możesz użyć JavaScript, żeby przechwycić zdarzenie wysłania formularza, wysłać żądanie POST przez fetch() i ręcznie wyświetlić stan sukcesu Webflow.

Tak. W sekcji Ustawienia projektu > Integracje > Webhooks możesz dodać webhook, który uruchamia się przy każdym nowym zgłoszeniu formularza. Webflow wysyła żądanie JSON POST na wskazany adres URL zawierające wszystkie wartości pól, nazwę formularza i sygnaturę czasową. Wymaga to endpointu odbierającego - funkcji serverless, przepływu pracy w Pipedream lub usługi formularzy akceptującej webhoki. Funkcja webhooka jest dostępna na planach CMS i Business w Webflow.

Zapier działa między Webflow a twoim miejscem docelowym (e-mail, CRM itp.) i dodaje warstwę przepływu pracy. Jest potężny przy wieloetapowej automatyzacji, ale kosztuje po przekroczeniu 100 zadań miesięcznie i wprowadza dodatkowy punkt awarii. Sendform to bezpośredni endpoint formularza - zgłoszenia trafiają prosto z przeglądarki do Sendform, który natychmiast wysyła ci e-mail. Nie ma żadnego przepływu pracy do utrzymania, żadnego licznika zadań i żadnego ryzyka, że Zap po cichu przestanie działać. Dla prostych formularzy kontaktowych Sendform jest szybszy w konfiguracji i bardziej niezawodny na co dzień.

To zależy od usługi. Usługi, które przechowują zgłoszenia we własnej bazie danych (Formspree, Basin, Netlify Forms), działają jako podmioty przetwarzające dane, co oznacza, że potrzebujesz umowy powierzenia przetwarzania danych i musisz je ujawnić w swojej polityce prywatności. Sendform jest zaprojektowany tak, żeby przekazywać dane i domyślnie ich nie przechowywać, co znacznie zmniejsza obciążenie związane ze zgodnością. Niezależnie od wybranej usługi powinieneś zaktualizować politykę prywatności, żeby wspomnieć o tym, jak dane z formularza kontaktowego są obsługiwane i przesyłane.

Tak, i masz kilka opcji. Większość usług formularzy, w tym Sendform, ma wbudowane filtrowanie spamu po swojej stronie. Możesz też dodać pole honeypot - ukryty input, który boty wypełniają, ale prawdziwi użytkownicy nie - a usługa odbierająca ignoruje zgłoszenia, w których to pole ma wartość. Przy formularzach o dużym ruchu usługi obsługujące reCAPTCHA v3 lub hCaptcha dają dodatkową warstwę ochrony. Własny filtr spamu Webflow działa tylko wtedy, gdy korzystasz z natywnego handlera formularzy Webflow, więc przejście na zewnętrzny endpoint oznacza poleganie na narzędziach antyspamowych danej usługi.

Nie. Wskazanie atrybutu Action formularza na zewnętrzny URL działa na każdym planie Webflow, w tym na darmowym planie Starter, ponieważ po prostu zmieniasz atrybut HTML na opublikowanej stronie. Ograniczenie darmowych planów polega na tym, że własny handler formularzy Webflow (przechowywanie w panelu, powiadomienia e-mail przez Webflow) wymaga płatnego planu strony. Używanie zewnętrznej usługi, takiej jak Sendform, całkowicie omija to ograniczenie - formularz po prostu wysyła żądanie POST na serwery Sendform niezależnie od poziomu twojego planu Webflow.