Zapytanie wysłane z formularza na stronie trafia zwykle tylko na skrzynkę pocztową. Tam łatwo je przeoczyć, trudno policzyć i jeszcze trudniej przekazać współpracownikowi, który ma oddzwonić do klienta. Arkusz Google rozwiązuje ten kłopot w prosty sposób: każde zgłoszenie staje się osobnym wierszem z datą, danymi kontaktowymi i treścią, a cała firma widzi tę samą, aktualną listę. Do takiego zapisu nie trzeba przepisywać niczego ręcznie, o ile formularz zostanie raz poprawnie połączony z arkuszem.
Ta instrukcja jest przeznaczona dla właścicieli firm i osób opiekujących się stroną, które chcą mieć wszystkie zapytania w jednym miejscu. Opisuję w niej trzy drogi: Formularze Google, formularz na WordPressie połączony wtyczką oraz własny formularz zapisujący dane przez Apps Script. Po lekturze czytelnik będzie umiał dobrać drogę do swojego formularza, przygotować arkusz, wykonać połączenie, sprawdzić jego działanie i znaleźć przyczynę, gdy wiersze przestaną się pojawiać.
Najważniejsze w skrócie
- Formularze Google zapisują odpowiedzi w arkuszu po wybraniu miejsca docelowego w karcie „Odpowiedzi”, bez żadnych dodatków.
- Formularz na WordPressie wymaga wtyczki z integracją, a przy Contact Form 7 nagłówki kolumn muszą odpowiadać nazwom pól formularza.
- Własny formularz może zapisywać dane przez skrypt Apps Script z funkcją doPost, wdrożony jako aplikacja internetowa z adresem kończącym się na /exec.
- Po każdej zmianie kodu skryptu trzeba utworzyć nową wersję wdrożenia, inaczej pod adresem /exec nadal działa stary kod.
- Arkusz ze zgłoszeniami zawiera dane osobowe, dlatego dostęp do niego powinny mieć wyłącznie osoby, które obsługują zapytania.
- Zapis w arkuszu uzupełnia powiadomienie e-mail i go nie zastępuje, ponieważ połączenie może zostać przerwane bez ostrzeżenia.
Którą drogę zapisu wybrać dla swojego formularza?
Sposób połączenia zależy wyłącznie od tego, czym formularz został zbudowany. Formularze Google mają zapis do arkusza wbudowany i wystarczy go włączyć. Formularz na WordPressie nie zna Arkuszy Google, więc potrzebuje pośrednika: dodatku producenta wtyczki formularzy albo osobnej wtyczki łączącej. Formularz napisany ręcznie w kodzie strony, bez WordPressa, może wysyłać dane do krótkiego skryptu Apps Script przypiętego do arkusza.
Przed wyborem trzeba ustalić dwie rzeczy. Pierwsza to nazwa narzędzia, które obsługuje formularz: w WordPressie widać ją w menu panelu, na przykład „Kontakt” przy Contact Form 7 albo „WPForms”. Druga to konto Google, na którym ma leżeć arkusz. Radzę używać konta firmowego, a nie prywatnego konta pracownika lub wykonawcy strony, ponieważ połączenie działa w imieniu tego konta. Jeżeli osoba, która je wykonała, odejdzie z firmy albo zmieni hasło i cofnie dostępy, zapis ustanie, a arkusz może okazać się niedostępny dla właściciela.
| Formularz | Droga zapisu | Co jest potrzebne |
|---|---|---|
| Formularze Google | Wbudowane połączenie z arkuszem | Konto Google i jedno ustawienie w karcie „Odpowiedzi” |
| WPForms | Dodatek Google Sheets producenta | Licencja Pro lub wyższa i aktualna wersja wtyczki |
| Contact Form 7 | Wtyczka CF7 Google Sheets Connector | Nagłówki kolumn zgodne z nazwami pól formularza |
| Własny formularz w kodzie strony | Skrypt Apps Script jako aplikacja internetowa | Krótki kod z funkcją doPost i wdrożenie z adresem /exec |
Niezależnie od drogi obowiązuje jedna zasada: arkusz nie zastępuje powiadomienia e-mail. Połączenie może zostać przerwane po zmianie hasła, po aktualizacji wtyczki albo po przebudowie arkusza, a klient, który wysłał zapytanie, niczego nie zauważy. Dlatego formularz powinien nadal wysyłać wiadomość na skrzynkę firmy, a arkusz ma być drugim, uporządkowanym zapisem. Jak ustawić i przetestować samą wysyłkę, opisałem we wpisie o tym, jak przygotować formularz kontaktowy, który nie gubi zapytań.

Jak przygotować arkusz, zanim trafi do niego pierwsze zapytanie?
Większość kłopotów z zapisem bierze się z arkusza, a nie z formularza. Wtyczki i skrypty dopisują nowy wiersz pod ostatnim wierszem z danymi i dopasowują wartości do kolumn według nagłówków albo według kolejności. Jeżeli ktoś wstawi kolumnę w środku, zmieni nazwę nagłówka lub posortuje dane razem z wierszem tytułowym, wartości zaczną trafiać w złe miejsca albo wcale. Z tego powodu arkusz przyjmujący zgłoszenia należy traktować jak rejestr: jedna zakładka służy tylko do zapisu, a wszelkie notatki, filtry i wyliczenia powstają w osobnej zakładce, która pobiera dane z pierwszej.
Formularze Google tworzą układ kolumn samodzielnie, więc przy tej drodze wystarczy założyć konto i przejść do następnej sekcji. Przy WordPressie i przy skrypcie arkusz trzeba przygotować ręcznie. Kolejność czynności jest następująca.
- Utworzenie arkusza na koncie firmowym Po zalogowaniu na konto firmy w Arkuszach Google zakłada się nowy, pusty arkusz kalkulacyjny i nadaje mu jednoznaczną nazwę, na przykład „Zapytania ze strony”.
- Nazwanie zakładki Zakładce na dole ekranu nadaje się krótką nazwę bez znaków specjalnych, na przykład „Zapytania”, ponieważ wtyczki i skrypt odwołują się do niej po nazwie.
- Wpisanie nagłówków w pierwszym wierszu W wierszu 1 wpisuje się po jednym nagłówku na każde pole formularza oraz kolumnę na datę zgłoszenia. Przy Contact Form 7 nagłówki mają brzmieć dokładnie tak jak nazwy pól, o czym niżej.
- Ograniczenie dostępu Arkusz udostępnia się wyłącznie osobom, które obsługują zapytania, i nie włącza się dostępu dla każdego, kto ma link.
- Pozostawienie zakładki bez formuł W zakładce przyjmującej zgłoszenia nie umieszcza się formuł ani scalonych komórek, a wyliczenia przenosi się do drugiej zakładki.
Uwaga o formułach nie jest przesadną ostrożnością. Dokumentacja dodatku WPForms opisuje przypadek, w którym po dopisaniu wiersza Arkusze Google przesuwają lub rozszerzają formuły i w tabeli pojawiają się puste wiersze. Producent zaleca wtedy formuły obejmujące całą kolumnę, na przykład z funkcją ARRAYFORMULA, albo obliczanie wartości jeszcze przed wysłaniem ich do arkusza.
Jak połączyć Formularze Google z arkuszem?
To najprostsza z opisanych dróg, ponieważ obie usługi należą do tego samego dostawcy i nie potrzebują pośrednika. Formularz Google można umieścić na stronie jako osadzony element albo podać do niego link, a każda odpowiedź zostanie dopisana do arkusza w chwili wysłania. Arkusze Google same układają odpowiedzi w tabelę z odpowiednim formatem i strukturą. Ustawienie wykonuje się raz, w edytorze formularza, na koncie jego właściciela lub współpracownika z prawem edycji. Zgodnie z pomocą Edytorów Dokumentów Google kolejność jest następująca.
- Otwarcie formularza W Formularzach Google należy otworzyć formularz, który zbiera zapytania.
- Przejście do odpowiedzi U góry trzeba kliknąć „Odpowiedzi”, a następnie „Podsumowanie”.
- Wybór miejsca docelowego W prawym górnym rogu klika się ikonę trzech kropek „Więcej” i pozycję „Wybierz miejsce docelowe odpowiedzi”.
- Wskazanie arkusza Do wyboru są dwie opcje: „Utwórz nowy arkusz kalkulacyjny” albo „Wybierz istniejący arkusz kalkulacyjny”. Pierwsza zakłada nowy plik, druga dopisuje odpowiedzi do pliku już używanego w firmie.
- Zatwierdzenie Wybór potwierdza się przyciskiem „Utwórz” lub „Wybierz”.

Po utworzeniu nowego arkusza współpracownicy formularza automatycznie otrzymują do niego dostęp. Późniejsze zmiany uprawnień nie są już jednak przenoszone między plikami: odebranie komuś dostępu do formularza nie odbiera mu dostępu do arkusza. Uprawnienia trzeba wtedy zmienić osobno w obu miejscach, co ma znaczenie zwłaszcza po zakończeniu współpracy z pracownikiem lub wykonawcą. Arkusz z odpowiedziami można odnaleźć na ekranie głównym Arkuszy Google, w aplikacji Arkusze Google albo na Dysku Google, pod nazwą nadaną przy tworzeniu.
Formularz i arkusz pozostają dwoma osobnymi plikami, więc usunięcie jednego nie usuwa drugiego. Połączenie można w każdej chwili przerwać tą samą ścieżką: w menu „Więcej” znajduje się pozycja „Rozłącz formularz”, którą potwierdza się przyciskiem „Rozłącz”. Od tego momentu nowe odpowiedzi nie trafiają do arkusza, ale dotychczasowe wiersze w nim zostają. Ponowne połączenie wykonuje się przez „Wybierz miejsce docelowe odpowiedzi”. Ostrożności wymaga pozycja „Usuń wszystkie odpowiedzi” w tym samym menu, ponieważ tej czynności nie można cofnąć.
Kto woli nie zajmować się tym samodzielnie, może zadzwonić pod numer 533 525 168 albo napisać na info@lukaszwudyka.pl. Sprawdzę, czym zbudowany jest formularz, przygotuję arkusz na firmowym koncie, wykonam połączenie i przetestuję je na próbnych zgłoszeniach, tak aby żadne zapytanie nie zostawało wyłącznie w skrzynce pocztowej.
Jak zapisywać do arkusza zgłoszenia z formularza na WordPressie?
WordPress sam nie zapisuje niczego w usługach Google. Połączenie zapewnia wtyczka, która po udanym wysłaniu formularza loguje się do arkusza w imieniu wskazanego konta i dopisuje wiersz. Poniżej opisuję dwie wtyczki formularzy, których dokumentację sprawdziłem: WPForms z własnym dodatkiem oraz Contact Form 7 z osobną wtyczką łączącą. Inne rozbudowane wtyczki formularzy mają podobne dodatki i działają na tej samej zasadzie. Przed instalacją każdej nowej wtyczki radzę wykonać kopię zapasową strony.
WPForms i dodatek Google Sheets
Dodatek producenta wymaga licencji Pro lub wyższej oraz najnowszej wersji WPForms. Nazwy w dokumentacji są podane po angielsku, w polskim panelu część z nich może być przetłumaczona. Trzeba też znać ograniczenia: dodatek obsługuje jedno połączone konto Google naraz, na liście widać tylko arkusze, do których to konto ma prawo edycji, a wskazanie istniejącego arkusza jest dostępne wyłącznie dla administratora witryny. Domyślnie arkusz ma 26 kolumn, więc przy dłuższym formularzu brakujące kolumny dodaje się w samym arkuszu.
- Instalacja dodatku W panelu WordPressa instaluje się i włącza dodatek Google Sheets z listy dodatków WPForms.
- Połączenie konta W menu „WPForms” należy otworzyć „Settings”, kartę „Integrations”, rozwinąć pozycję „Google Sheets” i kliknąć „Continue with Google”. Po wybraniu konta i udzieleniu zgody przy integracji pojawia się zielony status „Connected”.
- Dodanie połączenia w formularzu W kreatorze formularza otwiera się „Settings”, potem „Google Sheets”, klika „Add New Connection” i wpisuje nazwę połączenia, widoczną tylko w panelu.
- Wskazanie arkusza Do wyboru jest utworzenie nowego arkusza albo wskazanie istniejącego wraz z zakładką.
- Przypisanie pól W części „Field Mapping” każdej kolumnie przypisuje się pole formularza. Kolumna A domyślnie otrzymuje numer zgłoszenia, a datę dodaje się przez pozycję „Custom Value”.
- Zapisanie formularza Ustawienia zaczynają działać dopiero po kliknięciu „Save” w kreatorze.
Contact Form 7 i wtyczka łącząca
Contact Form 7 nie ma własnego połączenia z Arkuszami Google, dlatego używa się osobnej wtyczki. W katalogu WordPress.org dostępna jest CF7 Google Sheets Connector, która każde poprawnie wysłane zgłoszenie dopisuje jako nowy wiersz. Jej wersja podstawowa obsługuje jedno połączenie z arkuszem na formularz. Najważniejsza reguła dotyczy nagłówków: tekst w pierwszym wierszu arkusza musi być identyczny z nazwą pola w szablonie formularza. Dla pola zapisanego jako [text your-name] nagłówek kolumny brzmi your-name. Nagłówki pisze się małymi literami, z dywizami, bez spacji, podkreślników, cudzysłowów i cyfr na początku. Datę zgłoszenia zapisuje kolumna o nagłówku date ustawiona jako pierwsza.
- Instalacja wtyczki W panelu WordPressa, w sekcji wtyczek, instaluje się i włącza CF7 Google Sheets Connector. Contact Form 7 musi być w tym czasie aktywny.
- Połączenie konta Google W menu „Kontakt” należy otworzyć „Google Sheets”, zakładkę „Integration”, i zalogować się na konto, na którym leży arkusz.
- Odczytanie danych arkusza Potrzebne są cztery wartości: nazwa arkusza, jego identyfikator, nazwa zakładki i identyfikator zakładki. Oba identyfikatory są widoczne w adresie arkusza otwartego w przeglądarce.
- Uzupełnienie ustawień formularza W edycji formularza otwiera się kartę „Google Sheets”, wpisuje cztery wartości w pola „Sheet Name”, „Sheet ID”, „Tab Name” i „Tab ID”, po czym zapisuje formularz.
- Wysłanie zgłoszenia próbnego Formularz wypełnia się na stronie i sprawdza, czy w arkuszu pojawił się nowy wiersz z wartościami we właściwych kolumnach.
Jeżeli wartość jednego pola nie pojawia się w arkuszu, a pozostałe są na miejscu, przyczyną jest prawie zawsze niezgodność nagłówka z nazwą pola, choćby o jedną literę. Wtyczka ma własny dziennik błędów oraz stronę stanu systemu, na których widać problemy z autoryzacją konta. Pozwala też włączyć lokalny zapis zgłoszeń w bazie WordPressa i ponownie wysłać wybrane wpisy do arkusza po usunięciu usterki. Tę funkcję radzę włączyć od razu, bo zamyka lukę, w której zgłoszenie przepada podczas chwilowej awarii połączenia.
Jak zapisać zgłoszenia z własnego formularza przez Apps Script?
Formularz napisany bezpośrednio w kodzie strony, bez wtyczki, może wysyłać dane do skryptu Apps Script powiązanego z arkuszem. Skrypt wdrożony jako aplikacja internetowa otrzymuje własny adres, przyjmuje dane wysłane metodą POST i dopisuje je jako wiersz. Rozwiązanie nie wymaga dodatkowych usług, lecz ma swoją cenę: adres aplikacji jest publiczny, nie chroni go żadne zabezpieczenie przed automatami, a obsługa zgody i komunikatu dla klienta leży po stronie twórcy strony. Przy WordPressie bezpieczniej i wygodniej jest użyć wtyczki z poprzedniej sekcji.
Skrypt, który dopisuje wiersz
Skrypt tworzy się z poziomu arkusza: w menu „Rozszerzenia” należy wybrać „Apps Script”. Otworzy się edytor z pustym projektem powiązanym z tym plikiem. Dokumentacja wymaga, aby aplikacja internetowa zawierała funkcję doGet lub doPost i zwracała wynik usługi HTML albo usługi treści. Dane z pól formularza są dostępne w obiekcie e.parameter pod nazwami nadanymi polom w kodzie strony. Poniższy kod zakłada zakładkę o nazwie „Zapytania” i pola o nazwach imie, email, telefon oraz wiadomosc.
function oczysc(tekst) {
tekst = String(tekst || '');
return tekst.charAt(0) === '=' ? "'" + tekst : tekst;
}
function doPost(e) {
var arkusz = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Zapytania');
arkusz.appendRow([
new Date(),
oczysc(e.parameter.imie),
oczysc(e.parameter.email),
oczysc(e.parameter.telefon),
oczysc(e.parameter.wiadomosc)
]);
return ContentService.createTextOutput('Dziekujemy, zapytanie zostalo zapisane.');
}
Funkcja pomocnicza na początku ma konkretne zadanie. Metoda appendRow dopisuje wiersz na dole bieżącego obszaru danych, a zgodnie z dokumentacją zawartość zaczynającą się od znaku równości traktuje jako formułę. Formularz na stronie może wypełnić każdy, również osoba o złych zamiarach, dlatego tekst z pól nie powinien trafiać do arkusza bez tej kontroli. Dopisany apostrof sprawia, że arkusz pokazuje taką wartość jako zwykły tekst. W formularzu na stronie pola muszą mieć te same nazwy co w skrypcie, a znacznik formularza wskazuje adres aplikacji: <form action="ADRES_APLIKACJI" method="post">, z polami w rodzaju <input name="email" type="email" required>. Nazw c oraz sid nie wolno używać, ponieważ są zastrzeżone przez system i mogą wywołać błąd HTTP 405.
Wdrożenie jako aplikacja internetowa
Zapisany kod nie przyjmuje jeszcze żadnych danych. Trzeba go wdrożyć, czyli opublikować pod stałym adresem. Przy wdrożeniu wybiera się sposób działania uprawnień: aplikacja ma być uruchamiana jako właściciel skryptu, bo to jego konto ma prawo zapisu w arkuszu, a dostęp trzeba przyznać także osobom niezalogowanym, skoro formularz wypełniają klienci bez konta Google. Przy pierwszym wdrożeniu Google prosi właściciela o zgodę na dostęp skryptu do arkusza.
- Rozpoczęcie wdrożenia W prawym górnym rogu projektu należy kliknąć „Wdróż”, a następnie „Nowe wdrożenie”.
- Wybór typu Obok pozycji „Wybierz typ” klika się ikonę ustawień i wybiera „Aplikacja internetowa”.
- Uzupełnienie konfiguracji W sekcji „Konfiguracja wdrożenia” wpisuje się opis oraz ustawia uruchamianie jako właściciel i dostęp dla wszystkich odwiedzających.
- Zatwierdzenie Po kliknięciu „Wdróż” i udzieleniu zgody wyświetla się adres aplikacji kończący się na /exec.
- Wklejenie adresu do formularza Skopiowany adres wpisuje się w kodzie strony jako wartość atrybutu action formularza.

Najczęstsza pomyłka przy tej drodze dotyczy wersji. Wdrożenie udostępnia konkretną, zamrożoną wersję kodu. Po każdej poprawce w skrypcie trzeba otworzyć „Wdróż”, „Zarządzaj wdrożeniami”, wybrać aktywne wdrożenie, kliknąć „Edytuj”, wskazać nową wersję i ponownie kliknąć „Wdróż”. Adres aplikacji pozostaje wtedy bez zmian, więc kodu strony nie trzeba poprawiać. Utworzenie zupełnie nowego wdrożenia daje natomiast nowy adres i formularz ze starym adresem nadal uruchamia poprzedni kod. Adres testowy kończący się na /dev zawsze uruchamia ostatnio zapisany kod, lecz działa wyłącznie dla osób z prawem edycji skryptu, więc nie nadaje się do formularza na stronie.
Po wysłaniu takiego formularza przeglądarka klienta przechodzi pod adres aplikacji i pokazuje tekst zwrócony przez skrypt. Jeżeli klient ma pozostać na stronie firmy i zobaczyć podziękowanie w jej szacie graficznej, wysyłkę w tle musi przygotować osoba znająca kod strony. Publiczny adres aplikacji przyciąga także automaty rozsyłające spam, a skrypt przyjmie wszystko, co do niego dotrze. Sposoby ograniczania takich zgłoszeń opisałem we wpisie o tym, jak dodać do formularza ochronę przed spamem niewidoczną dla klienta.
Po czym poznać, że zapis działa, i jak go sprawdzić?
Połączenie uznaje się za działające dopiero po próbie wykonanej tak, jak zrobiłby to klient. Podgląd w panelu i komunikat o udanym połączeniu konta niczego jeszcze nie dowodzą. Formularz trzeba wypełnić na opublikowanej stronie, najlepiej w oknie prywatnym przeglądarki i drugi raz z telefonu, bez logowania do WordPressa ani do konta Google. W treści zgłoszenia dobrze jest wpisać wyraźne oznaczenie, na przykład słowo „test” i godzinę wysłania, aby później łatwo odnaleźć wiersz i usunąć go z arkusza.
- Wysłanie zgłoszenia z polskimi znakami W polach wpisuje się tekst z literami takimi jak ą, ł i ż oraz dłuższą wiadomość z kilkoma akapitami, a potem sprawdza, czy w arkuszu wygląda ona tak samo.
- Sprawdzenie kolumn Każda wartość powinna stać pod właściwym nagłówkiem, a data i godzina powinny odpowiadać chwili wysłania.
- Wysłanie dwóch zgłoszeń jedno po drugim Drugi wiersz ma pojawić się pod pierwszym, bez nadpisania i bez pustego wiersza pomiędzy nimi.
- Sprawdzenie pól nieobowiązkowych Zgłoszenie z pustym polem telefonu powinno zostawić pustą komórkę, a nie przesunąć pozostałe wartości o jedną kolumnę.
- Porównanie z pocztą Na skrzynce firmy powinny być powiadomienia o tych samych zgłoszeniach, w tej samej liczbie co wiersze w arkuszu.
Jednorazowa próba nie wystarcza na zawsze. Połączenie warto sprawdzać po każdej aktualizacji wtyczki formularzy, po zmianie hasła do konta Google, po dodaniu lub usunięciu pola w formularzu i po każdej przebudowie arkusza. Przy skrypcie Apps Script historię uruchomień pokazuje panel Apps Script: na stronie wykonań widać stan każdego uruchomienia, w tym zakończone powodzeniem i nieudane. Jeżeli powiadomienia e-mail giną po drodze, przyczyna leży zwykle w ustawieniach domeny, które omawiam we wpisie o rekordach SPF, DKIM i DMARC.
Co zrobić, gdy zgłoszenia nie trafiają do arkusza?
Poszukiwanie przyczyny warto zacząć od ustalenia, w którym miejscu zgłoszenie się zatrzymuje. Jeżeli nie dociera ani wiadomość e-mail, ani wiersz, zawodzi sam formularz i arkusz nie ma tu nic do rzeczy. Jeżeli poczta przychodzi, a wiersza brak, przyczyna leży w połączeniu: w autoryzacji konta, w uprawnieniach do pliku albo w układzie arkusza. Jeżeli wiersz powstaje, ale jest niepełny lub przesunięty, zawiodło przypisanie pól do kolumn.
| Objaw | Prawdopodobna przyczyna | Co zrobić |
|---|---|---|
| Nie ma wiersza, e-mail dociera | Wygasła lub cofnięta zgoda konta Google | Ponowne połączenie konta w ustawieniach integracji wtyczki |
| Arkusza nie ma na liście we wtyczce | Konto nie ma bezpośredniego prawa edycji pliku | Nadanie kontu roli edytora i odczekanie kilku minut na odświeżenie listy |
| Jedna kolumna pozostaje pusta | Nagłówek różni się od nazwy pola formularza | Poprawienie nagłówka w wierszu 1 tak, aby był identyczny z nazwą pola |
| Wartości trafiają do złych kolumn | Wstawiono lub przesunięto kolumnę w arkuszu | Przywrócenie układu albo ponowne przypisanie pól do kolumn |
| Skrypt działa według starego kodu | Wdrożenie wskazuje poprzednią wersję | Edycja wdrożenia i wybranie nowej wersji bez zmiany adresu |
Kilka z tych sytuacji wymaga cierpliwości, a nie dalszych zmian. Dokumentacja WPForms podaje, że lista arkuszy jest przechowywana w pamięci podręcznej i odświeża się co 10 minut, a nazwy kolumn są pamiętane przez 15 minut. Świeżo udostępniony plik lub usunięty nagłówek mogą więc przez chwilę wyglądać tak, jakby zmiana nie zadziałała. W firmowych kontach Google istotny jest jeszcze jeden szczegół: konto połączone z wtyczką musi mieć rolę edytora nadaną bezpośrednio, a nie przez przynależność do grupy.
Przy skrypcie Apps Script pierwszym miejscem do sprawdzenia jest strona wykonań w panelu Apps Script. Brak jakichkolwiek wpisów po wysłaniu formularza oznacza, że dane w ogóle nie dotarły do skryptu, czyli błąd tkwi w adresie wpisanym w kodzie strony albo w ustawieniu dostępu do aplikacji. Wpis ze stanem nieudanym zawiera komunikat błędu, który zwykle wskazuje złą nazwę zakładki lub brak zgody właściciela. Usługi Apps Script mają też dzienne limity: po ich przekroczeniu skrypt zgłasza wyjątek i przerywa działanie. Zwykły formularz kontaktowy do nich nie dochodzi, lecz zalew automatycznych zgłoszeń może to zmienić.
Jak zadbać o dane osobowe i jakich błędów unikać?
Arkusz ze zgłoszeniami zawiera imiona, adresy e-mail, numery telefonów i treść zapytań, czyli dane osobowe klientów. Firma pozostaje ich administratorem także wtedy, gdy leżą w usłudze Google. W praktyce oznacza to kilka obowiązków: dostęp do pliku tylko dla osób, które rzeczywiście obsługują zapytania, informacja w polityce prywatności o tym, gdzie i jak długo dane są przechowywane, oraz usuwanie wierszy, gdy przestają być potrzebne. Przy koncie firmowym w usłudze Google Workspace warto sprawdzić warunki powierzenia przetwarzania danych. W razie wątpliwości co do zakresu obowiązków rozsądnie jest zapytać prawnika lub inspektora ochrony danych, ponieważ ocena zależy od rodzaju działalności.
Odradzam również dwa rozwiązania, które kuszą prostotą. Pierwsze to udostępnienie arkusza każdemu, kto ma link, po to, aby wtyczka lub skrypt mogły w nim zapisywać. Żadna z opisanych dróg tego nie wymaga, a link do pliku z danymi klientów łatwo trafia w niepowołane ręce. Drugie to wklejanie do edytora Apps Script gotowego kodu z nieznanego źródła bez przeczytania go. Skrypt działa z uprawnieniami właściciela konta, więc może odczytać i zmienić jego pliki.
Najczęstsze pytania
Czy zapis zgłoszeń w arkuszu Google wymaga opłat?
Formularze Google, Arkusze Google i Apps Script działają na zwykłym koncie Google i połączenie między nimi nie wymaga opłaty. Koszt może pojawić się po stronie WordPressa: dodatek Google Sheets do WPForms jest dostępny od licencji Pro, a wtyczka łącząca dla Contact Form 7 ma wersję podstawową z jednym połączeniem na formularz oraz wersję rozszerzoną. Przed zakupem dobrze jest sprawdzić, czy obecna wtyczka formularzy nie ma już takiej integracji w posiadanej licencji.
Czy po połączeniu do arkusza trafią także starsze zgłoszenia?
Opisane wtyczki i skrypt dopisują wiersz w chwili wysłania formularza, więc obejmują zgłoszenia przesłane po wykonaniu połączenia. Starsze zapytania, które istnieją tylko w skrzynce pocztowej, trzeba przenieść ręcznie albo pominąć. Wyjątkiem są wtyczki przechowujące zgłoszenia w bazie WordPressa: wtyczka łącząca dla Contact Form 7 pozwala wysłać do arkusza wybrane wpisy z lokalnego zapisu, o ile był on włączony przed ich otrzymaniem.
Czy w arkuszu ze zgłoszeniami można sortować i filtrować dane?
Można, lecz bezpieczniej robić to poza zakładką, do której trafiają zgłoszenia. Sortowanie obejmujące wiersz nagłówków albo wstawienie kolumny potrafi rozsunąć dane i kolejne wiersze zaczną trafiać w złe miejsca. Najprostszym rozwiązaniem jest druga zakładka, która pobiera dane z pierwszej i służy do pracy: tam dodaje się kolumnę ze statusem, osobą odpowiedzialną i notatką z rozmowy. Zakładka przyjmująca zgłoszenia pozostaje nietknięta.
Dlaczego po zmianie kodu skrypt nadal zapisuje po staremu?
Adres kończący się na /exec uruchamia wersję kodu wskazaną we wdrożeniu, a nie kod widoczny w edytorze. Po każdej poprawce trzeba wejść w „Wdróż”, „Zarządzaj wdrożeniami”, kliknąć „Edytuj”, wskazać nową wersję i zatwierdzić przyciskiem „Wdróż”. Adres pozostaje ten sam. Pomyłką jest tworzenie za każdym razem nowego wdrożenia, ponieważ otrzymuje ono inny adres, a formularz na stronie nadal wysyła dane pod poprzedni.
Czy arkusz może zastąpić powiadomienia e-mail z formularza?
Nie polecam takiego rozwiązania. Połączenie z arkuszem zależy od zgody konta Google, uprawnień do pliku i układu kolumn, a każdy z tych elementów może przestać działać bez żadnego komunikatu dla klienta. Powiadomienie e-mail jest niezależnym kanałem, który od razu informuje o nowym zapytaniu.
Czy do arkusza można zapisywać pliki przesłane w formularzu?
Arkusz przechowuje tekst, liczby i daty, a nie pliki. Przy formularzach z załącznikami w komórce zapisuje się zwykle adres pliku albo sama jego nazwa, zależnie od wtyczki, a plik pozostaje na serwerze strony lub na Dysku Google. W Formularzach Google pytanie z przesyłaniem plików wymaga, aby osoba wypełniająca była zalogowana na konto Google, co na stronie firmowej zniechęca część klientów. Przed włączeniem załączników warto to uwzględnić.
Źródła
- Wybór miejsca zapisywania odpowiedzi z formularza, Pomoc Edytorów Dokumentów Google
- Wybieranie typu pytań w formularzu, Pomoc Edytorów Dokumentów Google
- Aplikacje internetowe, Google Apps Script
- Tworzenie wdrożeń i zarządzanie nimi, Google Apps Script
- Limity w usługach Google, Google Apps Script
- Google Sheets Addon, Dokumentacja WPForms
- GSheetConnector – CF7 Google Sheets Connector & Save CF7 Entries to Database, Katalog wtyczek WordPress.org
Brak czasu albo ochoty, żeby zająć się tym samodzielnie?
Połączenie formularza z arkuszem jest proste na papierze, a w praktyce potrafi zatrzymać się na jednym nagłówku, jednej zgodzie konta albo jednej wersji wdrożenia. Jeżeli lepiej poświęcić ten czas klientom, mogę przeprowadzić całość od początku do końca. Ustalę, czym zbudowany jest formularz, dobiorę drogę zapisu, przygotuję arkusz na firmowym koncie, wykonam połączenie i sprawdzę je na próbnych zgłoszeniach z komputera i z telefonu.
Zadbam również o to, aby powiadomienia e-mail działały obok arkusza, a dostęp do danych klientów miały tylko właściwe osoby. Jeżeli zapis już kiedyś działał i przestał, znajdę przyczynę i ją usunę. Wystarczy zadzwonić pod numer 533 525 168 albo napisać na adres info@lukaszwudyka.pl i podać adres strony z formularzem. Odpowiem, co da się zrobić i ile to potrwa.



