Wprowadzenie
Formularze rejestracyjne w Pagaspot umożliwiają zebranie danych od płatników przez internet i automatyczne ich przetworzenie w systemie — bez ręcznego wprowadzania danych. Po wypełnieniu formularza przez rodzica lub uczestnika system może automatycznie dodać płatnika, przypisać go do odpowiednich grup, wysłać link aktywacyjny oraz utworzyć naliczenie.
Przed rozpoczęciem tworzenia formularza zastanów się:
- Jakie dane chcesz zebrać od płatników?
- W jaki sposób podzielić płatników w systemie (grupy)?
- Jakie akcje mają wykonać się automatycznie po wypełnieniu formularza?
Następnie utwórz odpowiednie pola płatnika (Ustawienia → Płatnicy → Pola z danymi płatników) oraz grupy płatników, zanim przystąpisz do tworzenia formularza.
Kluczowe pojęcia — rozróżnienie terminologii
Przed przystąpieniem do konfiguracji formularza ważne jest zrozumienie różnicy między trzema pojęciami, które łatwo ze sobą pomylić:
| Pojęcie | Gdzie definiowane | Opis |
|---|---|---|
| Pole płatnika | Ustawienia → Płatnicy → Pola z danymi płatników | Struktura danych płatnika przechowywana w systemie (np. „Imię", „Data urodzenia", „Telefon"). Każde pole ma własny kod pola płatnika. |
| Kod pola płatnika | Ustawienia → Płatnicy → kliknij pole → sekcja Zaawansowane | Unikalny identyfikator pola płatnika w systemie (np. mail, telefon, data_urodzenia). Używany przez system do zapisania danych we właściwym miejscu karty płatnika. |
| Kod pola formularza | Edytor formularza → zakładka Wygląd → pole KOD POLA | Identyfikator pola w konkretnym formularzu, nadawany przez administratora tworzącego formularz (np. email_opiekuna, imie_dziecka). Używany w skryptach mapujących i walidujących. |
⚠️ Kod pola formularza i kod pola płatnika to dwie różne rzeczy.
W akcji „Dodaj płatnika" wskazujesz powiązanie: które pole formularza (identyfikowane przez kod pola formularza) ma wypełnić które pole płatnika (identyfikowane przez kod pola płatnika). W skryptach mapujących używasz kodów pól formularza jako zmiennych — nie kodów pól płatnika.
📷 Ustawienia → Płatnicy → Pola z danymi płatników — lista pól płatnika z ikonami typów
📷 Panel Edytuj pole (płatnika) → sekcja Zaawansowane → pole KOD POLA (np. mail)
Tworzenie formularza
Aby utworzyć nowy formularz wejdź na ekran Ustawienia → Formularze → kliknij przycisk „+ Dodaj". Nadaj formularzowi nazwę i kliknij „Dodaj" w prawym dolnym rogu okna dialogowego.
📷 Ustawienia → Formularze → przycisk + Dodaj i okno dialogowe z nazwą formularza
Po utworzeniu formularz pojawi się na liście pod nagłówkiem „Formularze rejestracyjne". Kliknij na jego nazwę — otworzy się panel z opcjami:
• Konfiguruj — otwiera edytor formularza (zakładki Wygląd i Akcje)
• Otwórz — podgląd gotowego formularza od strony użytkownika
• Kopiuj link — kopiuje skrócony link gotowy do wysłania użytkownikom
• Klonuj — tworzy kopię formularza (przydatne przy tworzeniu podobnego dla innej grupy lub organizacji)
• Kosz — usuwa formularz
W panelu widoczne jest też pole Nazwa formularza (można edytować) oraz checkbox Aktywny.
⚠️ Formularz musi mieć zaznaczony checkbox Aktywny, aby był dostępny pod linkiem dla użytkowników.
📷 Panel formularza — Nazwa, checkbox Aktywny, przyciski Otwórz / Kopiuj link / Klonuj
Konfiguracja formularza — zakładka Wygląd
Po kliknięciu „Konfiguruj" otwiera się okno dialogowe z dwoma zakładkami: Wygląd i Akcje. Najpierw konfigurujemy zakładkę Wygląd.
Kliknij przycisk „+ Dodaj" aby dodać pierwsze pole formularza. Po prawej stronie ekranu wyświetli się panel „Edytuj pole formularza".
📷 Edytor formularza — zakładka Wygląd z panelem Edytuj pole formularza po prawej
Opis pola
Nazwa pola widoczna dla osoby wypełniającej formularz — informuje, jakie dane należy wpisać (np. „Imię dziecka", „Adres e-mail opiekuna").
Kod pola formularza
Unikalny identyfikator pola w tym konkretnym formularzu. Jest używany w skryptach (walidujących i mapujących) jako nazwa zmiennej. Obowiązują zasady:
• Nie może zawierać spacji
• Nie może zawierać polskich znaków (ą, ę, ó, ł, ś, ź, ż, ć, ń)
• Może zawierać litery, cyfry i podkreślnik
Przykład: pole o opisie „Imię dziecka" powinno mieć kod pola formularza np. imie_dziecka (bez polskich znaków i spacji). Pole „E-mail opiekuna" może mieć kod email_opiekuna.
Uwaga: kod pola formularza to nie to samo co kod pola płatnika — patrz rozdział „Kluczowe pojęcia".
Typ pola
Określa rodzaj pola dostępnego do wypełnienia. Dostępne typy:
| Typ pola | Opis |
|---|---|
| Pole tekstowe | Krótkie pole do wpisania jednej linii tekstu (np. imię, nazwisko, numer telefonu). |
| Długie pole tekstowe | Większe pole do wpisania dłuższej treści (np. uwagi, notatki). |
| Checkbox | Pole do zaznaczenia. Treść checkboxa wpisuje się w polu Opis pola. Najczęściej stosowane do zbierania akceptacji zgód: regulaminów, oświadczeń RODO. Można dołączyć plik (np. treść regulaminu) klikając „Dodaj plik" w sekcji Załączniki. |
| Lista rozwijana | Wypełniający wybiera jedną z dostępnych opcji. Opcje wpisuje się w polu „Opcje (w kolejnych liniach)" — każda opcja w osobnej linii (Enter = nowa opcja). |
| Wgranie pliku | Wyświetla przycisk BROWSE umożliwiający wgranie pliku z urządzenia wypełniającego. |
| Tekst statyczny | Element wizualny — nie jest polem do wypełnienia. Dostępne opcje: Tytuł (wyświetla tekst jako nagłówek sekcji) i Separator (dodaje poziomą linię oddzielającą sekcje). Można zaznaczyć obie opcje jednocześnie. |
📷 Lista rozwijana Typ pola — widoczne wszystkie opcje: Pole tekstowe, Długie pole tekstowe, Checkbox, Lista rozwijana, Wgranie pliku, Tekst statyczny
📷 Typ Checkbox — Opis pola jako treść zgody, sekcja Załączniki z przyciskiem Dodaj plik
📷 Typ Lista rozwijana — pole Opcje (w kolejnych liniach) i podgląd listy po lewej
📷 Typ Tekst statyczny — opcje Tytuł i Separator
Skrypt walidujący
Określa warunek który musi być spełniony, aby formularz mógł zostać wysłany. Skrypt używa zmiennej field, która zawiera aktualną wartość danego pola formularza. Jeśli pole nie jest obowiązkowe, można pozostawić to pole puste. Szczegółowe omówienie skryptów znajduje się w rozdziale „Skrypty".
Wiadomość błędnej walidacji
Komunikat wyświetlany użytkownikowi na czerwono, gdy warunek skryptu walidującego nie jest spełniony. Powinien jasno wskazywać co należy poprawić (np. „Uzupełnij pole.", „Konieczne wyrażenie zgody.", „Uzupełnij datę poprawnym formatem (DD-MM-RRRR).").
Załączniki
Możliwość dołączenia pliku do pola formularza — np. treści regulaminu przy checkbox'ie zgody. Kliknij „Dodaj plik" aby wgrać załącznik.
Pokaż tylko gdy wartość innego pola
Umożliwia budowanie drzewa decyzyjnego — pole pojawi się wypełniającemu tylko wtedy, gdy w wybranym polu formularza zostanie wpisana lub wybrana konkretna wartość.
Konfiguracja: z listy po lewej wybieramy kod pola formularza źródłowego (np. sekcja), w polu po prawej wpisujemy dokładną wartość (np. Koszykówka). Dopiero gdy wypełniający wybierze tę wartość, pojawi się zależne pole.
Przykład: formularz zawiera pole „Województwo" (kod pola formularza: wojewodztwo) oraz 16 ukrytych pól z listami jednostek dla każdego województwa (kody pól formularza: jednostka_ds, jednostka_kp itd.). Każde z ukrytych pól ma ustawione „Pokaż tylko gdy wartość innego pola [wojewodztwo] = [Dolnośląskie]" itd.
📷 Panel Edytuj pole formularza — sekcja Pokaż tylko gdy wartość innego pola
Zmiana kolejności pól
Kolejność pól na formularzu można zmieniać przeciągając je — przytrzymaj pole i przesuń w wybrane miejsce na liście.
Konfiguracja formularza — zakładka Akcje
Po skonfigurowaniu wyglądu kliknij przycisk „Dalej" w prawym górnym rogu, aby przejść do zakładki Akcje. Przycisk zmienia się wtedy na „Zapisz".
Akcje to operacje wykonywane automatycznie w systemie po wysłaniu formularza. Można dodać wiele akcji — każda pojawi się jako osobna pozycja na liście po lewej stronie. Aby dodać akcję, wybierz jej typ z listy rozwijanej „Wybierz akcję..." i kliknij „+".
📷 Zakładka Akcje — lista dostępnych typów akcji
Dodaj płatnika
Tworzy nowego płatnika w systemie i przypisuje dane z formularza do jego pól. Jest to podstawowa akcja — powinna znajdować się w każdym formularzu rejestracyjnym.
Po kliknięciu ołówka przy akcji otwiera się panel konfiguracji z trzema sekcjami:
Mapowanie pól
Lewa kolumna zawiera nazwy pól płatnika (i ich kody pól płatnika widoczne w nawiasach po prawej stronie listy rozwijanej). Przy każdym polu płatnika wybierasz z listy rozwijanej odpowiednie pole formularza — system połączy kod pola formularza z kodem pola płatnika i zapisze dane we właściwym miejscu karty płatnika.
Przykład mapowania:
- Pole płatnika Nazwisko (kod pola płatnika:
nazwisko) ← pole formularza Nazwisko dziecka (kod pola formularza:nazwisko_dziecka) - Pole płatnika Mail (kod pola płatnika:
mail) ← pole formularza E-mail opiekuna (kod pola formularza:email_opiekuna)
📷 Akcja Dodaj płatnika — mapowanie pól formularza (kody pól formularza w nawiasach) na pola płatnika
Grupy
Lista wszystkich grup płatników w systemie z checkboxami. Każdy kto wypełni formularz zostanie automatycznie przypisany do zaznaczonych grup.
Dla grup można też wpisać regułę warunkową (przycisk </>), która przypisze płatnika do grupy tylko jeśli w danym polu formularza wybrano konkretną wartość. W regule używasz kodu pola formularza:
kod_pola_formularza == "dokładna wartość opcji"**:
Przykład: płatnik trafi do grupy „Sekcja/Koszykówka" tylko jeśli w polu formularza o kodzie sekcja wybrał „Koszykówka":
sekcja == "Koszykówka"**:
📷 Akcja Dodaj płatnika — sekcja Grupy z regułami warunkowymi przy wybranych grupach
Wyślij zaproszenie
Checkbox na dole panelu. Jeśli zaznaczony, płatnik otrzyma link aktywacyjny natychmiast po wysłaniu formularza.
Aktywuj płatników
Wysyła płatnikowi e-mail z linkiem aktywacyjnym zaraz po przesłaniu formularza. Alternatywnie można użyć opcji „Wyślij zaproszenie" w akcji „Dodaj płatnika".
Wyślij powiadomienie
Wysyła wszystkie dane z formularza na wskazany adres e-mail i/lub numer telefonu (SMS). Przydatne do powiadamiania administratora o nowych rejestracjach. Można dodać regułę warunkową „Włącz akcję regułą".
⚠️ Wysyłka SMS jest dodatkowo płatna — 0,10 zł netto za każdą wiadomość.
📷 Akcja Wyślij powiadomienie — pola adresu e-mail i numeru telefonu
Dodaj naliczenie
Tworzy jednorazowe naliczenie dla nowego płatnika od razu po wysłaniu formularza. Konfiguracja: Tytuł, Kwota należności, Dni na zapłatę, Numer konta (z listy kont bankowych w systemie), Kategoria należności (z listy kategorii w systemie). Można dodać regułę warunkową „Włącz akcję regułą".
📷 Akcja Dodaj naliczenie — pola konfiguracji z listą kategorii należności
Dodaj do planu naliczeń
Dodaje płatnika do istniejącego planu naliczeń od razu po wysłaniu formularza.
⚠️ Wymaganie wstępne: plan naliczeń musi być już wcześniej utworzony w systemie i mieć przypisanego co najmniej jednego płatnika — dopiero wtedy pojawi się na liście do wyboru.
Konfiguracja: wybierz plan naliczeń z listy i wpisz kwotę. Można dodać regułę warunkową „Włącz akcję regułą", aby plan był przypisywany tylko określonej grupie płatników.
Przykład: jeden formularz obsługuje wiele sekcji. Każda sekcja ma osobną akcję z własną regułą. W regule używasz kodu pola formularza:
Akcja 2: Dodaj do planu naliczeń — Plan: Koszykówka, Kwota: 80 PLN
Włącz akcję regułą: sekcja == "Koszykówka"
Akcja 3: Dodaj do planu naliczeń — Plan: Pływanie, Kwota: 120 PLN
Włącz akcję regułą: sekcja == "Pływanie"
Gdzie sekcja to kod pola formularza pola z listą rozwijaną sekcji, a „Koszykówka" / „Pływanie" to dokładne wartości opcji z tej listy.
📷 Akcja Dodaj do planu naliczeń — z polem Plan naliczeń, Kwota i regułą warunkową
Skrypty
W kilku miejscach konfiguracji formularza można użyć skryptów w języku Lua. Skrypty umożliwiają zaawansowane przetwarzanie danych: walidację formatów, łączenie pól, transformację wartości.
⚠️ Skrypty używają kodów pól formularza jako zmiennych — nie kodów pól płatnika. Kody muszą być dokładnie takie, jak zostały zdefiniowane w zakładce Wygląd (bez polskich znaków i spacji).
Skrypty walidujące
Wpisywane w polu „Skrypt walidujący" podczas edycji pola formularza. Formularz zostanie wysłany tylko jeśli skrypt zwróci true. Zmienna field zawiera aktualną wartość danego pola formularza.
Pole obowiązkowe (pole tekstowe lub lista rozwijana)
string.len(field) > 0
Sprawdza czy pole nie jest puste. Komunikat błędu: np. „Uzupełnij pole."
Obowiązkowy checkbox
field == "true"
Formularz zostanie wysłany tylko jeśli checkbox jest zaznaczony. Stosowane przy zgodach RODO i regulaminach. Komunikat błędu: np. „Konieczne wyrażenie zgody."
Walidacja adresu e-mail
string.find(field, "@") ~= nil
Sprawdza czy wpisany tekst zawiera znak @. Komunikat błędu: np. „Wpisz poprawny adres e-mail."
Walidacja formatu daty (DD-MM-RRRR)
return (function()
local d, m, r = (field or ""):match("^(%d%d)%-(%d%d)%-(%d%d%d%d)$")
d = tonumber(d)
m = tonumber(m)
r = tonumber(r)
return d ~= nil
and d >= 1 and d <= 31
and m >= 1 and m <= 12
and r >= 1926 and r <= 2026
end)()
Sprawdza czy data ma poprawny format i czy wartości mieszczą się w sensownym zakresie. Komunikat błędu: np. „Uzupełnij datę poprawnym formatem (DD-MM-RRRR)."
Skrypty mapujące
Wpisywane w panelu akcji „Dodaj płatnika" — kliknij przycisk </> obok wybranego pola płatnika. Skrypt przetwarza wartości pól formularza (identyfikowanych przez kody pól formularza) i zwraca wynik, który zostanie zapisany w polu płatnika (identyfikowanym przez kod pola płatnika).
Łączenie dwóch pól formularza w jedno pole płatnika
Operator .. łączy wartości tekstowe. W poniższym przykładzie opiekun_nazwisko i opiekun_imie to kody pól formularza — muszą dokładnie odpowiadać kodom zdefiniowanym w zakładce Wygląd:
opiekun_nazwisko .. " " .. opiekun_imie
Wynik (np. „Kowalski Jan") zostanie zapisany w polu płatnika „Imię i nazwisko rodzica" (o kodzie pola płatnika np. imie_nazwisko_rodzica).
Wyodrębnianie roku z daty
W poniższym przykładzie dataurodzenia to kod pola formularza pola z datą urodzenia:
local _, _, year = dataurodzenia:find("(%d%d%d%d)$")
return year
Wyciąga rok z daty (np. z „15-03-2010" zwróci „2010") i zapisuje go w polu płatnika „Rok urodzenia" (o kodzie pola płatnika np. rok_urodzenia).
Agregowanie wielu checkboxów w jedno pole tekstowe płatnika
Gdy formularz zawiera wiele checkboxów (np. 14 alergenów o kodach pól formularza alergen_1…alergen_14), skrypt łączy zaznaczone w jedną listę:
alergeny = {}
if alergen_1 == "true" then
table.insert(alergeny, "1. Zboża zawierające gluten")
end
if alergen_2 == "true" then
table.insert(alergeny, "2. Skorupiaki i produkty pochodne")
end
-- (kolejne alergeny analogicznie...)
Wynik (lista zaznaczonych alergenów) zostanie zapisany w jednym polu płatnika „Alergeny" (o kodzie pola płatnika np. alergeny).
Wybór wartości na podstawie warunku
Skrypt pozwala zwrócić różną wartość w zależności od tego, co wypełniający wybrał w innym polu formularza. Ogólna postać skryptu:
if kod_pola_zrodlowego == "wartość_1" then return kod_pola_wynikowego_1 end
if kod_pola_zrodlowego == "wartość_2" then return kod_pola_wynikowego_2 end
-- (kolejne wartości analogicznie...)
Gdzie kod_pola_zrodlowego to kod pola formularza z listą rozwijaną (pole decydujące), a kod_pola_wynikowego_1, kod_pola_wynikowego_2 itd. to kody pól formularza zawierających wartości do zwrócenia (zazwyczaj ukrytych za pomocą opcji „Pokaż tylko gdy wartość innego pola").
Przykład z podziałem na województwa: pole formularza o kodzie wojewodztwo (lista rozwijana) decyduje, które z ukrytych pól formularza (jednostka1…jednostka16) zostanie zwrócone jako wartość pola płatnika „Jednostka":
if wojewodztwo == "Dolnośląskie" then return jednostka1 end
if wojewodztwo == "Kujawsko-Pomorskie" then return jednostka2 end
if wojewodztwo == "Małopolskie" then return jednostka3 end
-- (pozostałe województwa analogicznie...)
Wynik zostanie zapisany w polu płatnika „Jednostka" (o kodzie pola płatnika np. jednostka).
Udostępnianie formularza
Aktywacja formularza
Zanim wyślesz link do klientów, upewnij się że formularz ma zaznaczony checkbox Aktywny w panelu formularza. Nieaktywny formularz nie jest dostępny pod linkiem.
Kopiowanie linku
Kliknij „Kopiuj link" w panelu formularza — w schowku zostanie zapisany skrócony link gotowy do wysłania użytkownikom (e-mailem, SMS-em).
Klonowanie formularza
Kliknij „Klonuj" aby stworzyć kopię formularza — przydatne gdy chcesz przygotować podobny formularz dla innej grupy lub organizacji.
Checklista przed wysłaniem linku do klientów
Wykonaj te kroki przed rozesłaniem linku:
- Upewnij się, że checkbox Aktywny jest zaznaczony.
- Kliknij „Otwórz" i sprawdź jak formularz wygląda od strony użytkownika.
- Wypełnij formularz samodzielnie danymi testowymi i wyślij.
- Sprawdź czy płatnik testowy pojawił się w systemie.
- Sprawdź czy wszystkie dane przypisały się do właściwych pól płatnika.
- Sprawdź czy płatnik trafił do właściwych grup (jeśli zostały skonfigurowane).
- Sprawdź czy płatnik otrzymał e-mail aktywacyjny (jeśli akcja jest skonfigurowana).
- Usuń lub zarchiwizuj płatnika testowego.
- Dopiero teraz rozesłaj link do klientów.**:
📷 Panel formularza — checkbox Aktywny i przyciski Otwórz / Kopiuj link / Klonuj
