Automatyzacja ankiet Forms i Excela

Microsoft 365
Power Automate

Spis treści:

Wstęp

Wymagania:

Do obsługi podanej w artykule automatyzacji wystarczy posiadanie konta Microsoft. Może to być konto służbowe, w ramach pracy, dostarczane i zarządzane przez dział IT lub konto osobiste, które za darmo można stworzyć na platformie Microsoft, chociażby rejestrując się do poczty Outlook, czy dysku w chmurze One Drive. Wszystkie potrzebne aplikacje od Microsoft dostajemy od razu dołączone do jednego konta, dzięki czemu nie musimy rejestrować się do każdej usługi z osobna.

Pracować będziemy z formularzem Forms, więc przed rozpoczęciem należy utworzyć ankietę z podstawowymi pytaniami takimi jak Imię, Nazwisko, Temat, Termin, oczywiście formularz może posiadać więcej pól do wypełnienia, które pomogą, w przyszłości rozwinąć automatyzowany proces.

Gotowy do wdrożenia formularz dostępny jest pod adresem Link do szablonu Forms

Korzystać będziemy z arkuszy kalkulacyjnych Excel, dzięki którym możliwe będzie przechowywanie zgłoszeń z ankiet w formacie wskazanym przez nas. Plik zawierać powinien tabele. W naszym przypadku występuje tyle tabel, ile zbiorów danych uzupełnić ma użytkownik w ankiecie, jednak zawsze można ograniczyć się do jednej tabeli posiadającej tyle kolumn, ile pytań z Forms chcemy zapisać do pliku. Następnie w osobnym arkuszu możemy odnosić się do konkretnych komórek ustawiając dane w potrzebnym nam formacie i miejscu.

Gotowy plik z tabelami (z ukrytymi nagłówkami) dostępny jest TUTAJ

Wyzwalacz

Gdy już mamy przygotowane dane wejściowe, w postaci formularza Forms, oraz dane wyjściowe zapisywane w arkuszu Excel, to możemy zacząć prace z automatyzacją.
Zawsze rozpocząć należy od wyboru Wyzwalacza, czyli akcji, na którą reagować będzie Power Automate. W naszym przypadku automat Microsoftu będzie wybudzać się za każdym razem, gdy wypełniona zostanie wybrana przez nas ankieta Forms (nie ma możliwości, by automatyzacja uruchamiana była dla kilku różnych formularzy Forms, dlatego jeśli tworzymy różne warianty ankiety, to dla każdej z nich należy skopiować stworzony przepływ).

Dlatego z sekcji wyzwalaczy wybieramy „zautomatyzowany przepływ w chmurze”.

Teraz poza nadaniem nazwy naszego krótkiego procesu, wyszukać powinniśmy pasujący wyzwalacz. Warto skorzystać z wyszukiwarki, w której wystarczy wpisać nazwę aplikacji, z której właśnie chcemy skorzystać. W naszym przypadku jest to „Forms”.

Na liście od razu otrzymujemy do wyboru opcję nazwaną „Po przesłaniu nowej odpowiedzi” programu „Microsoft Forms”.

Po wybraniu tej opcji klikamy przycisk „Utwórz”, by stworzyć nowy przepływ z zaznaczonym wyzwalaczem. Utworzenie flow automatycznie uruchamia edytor przepływu, w którym zaczniemy pracę z procesem.

Po uruchomieniu edytora przepływu możemy przejść do konfiguracji wyzwalacza, klikając w kafelek z jego nazwą „Po przesłaniu nowej odpowiedzi”.

Wyzwalacz w każdym procesie będzie pierwszym klockiem, od którego zaczyna się proces.

Kliknięcie w kafelek wyzwalacza otworzy lewy panel konfiguracyjny.
Znaleźć tam możemy wiele parametrów i ustawień, lecz w przypadku akcji wyzwalającej „Po przesłaniu nowej odpowiedzi” jedyne co należy uzupełnić to „Identyfikator formularza”, który to możemy wybrać z listy wpisując nazwę jaką nadaliśmy tworząc ankietę na platformie Forms. Pole to jest obowiązkowe, oznaczone czerwoną gwiazdką. Niewybranie formularza uniemożliwi zapisanie przepływu, czyli naszej automatyzacji, przez to nie będzie możliwości przetestowania pracy procesu.

Jednakże zachowanie naszych dotychczasowych zmian, nie uda się, jeśli mamy tylko wskazane co ma wybudzać nasze flow, edytor będzie komunikował błąd. Potrzebne jest też działanie, które ma się wykonać, by uznać zadanie za zakończone z sukcesem.

Kolejny krok, dodawanie akcji

Teraz, gdy wyzwalacz jest już w pełni skonfigurowany, możemy przejść do tego, co ma się wydarzyć, gdy otrzymamy odpowiedź do ankiety Forms.

W naszym rozwiązaniu chcemy zapisywać każdego zgłaszającego się uczestnika do osobnego pliku Excel.
Jest to możliwe dzięki temu, że Power Automate, łącząc się do podanego przez nas formularza Forms, ma dostęp do wszystkich zadanych tam pytań.
Narzędzie rozdziela otrzymaną ankietę na pojedyncze pytania, dając nam odpowiedź w postaci osobnego pola (zmiennej), o nazwie takiej samej, jak nazwa pytania zadanego w przesłanym formularzu.

Jednak nie dostajemy wszystkiego na tacy. Pierwsza akcja (wyzwalacz) nie dostarcza nam wypełnionego formularza, a jedynie identyfikator, który możemy wykorzystać, by pobrać szczegóły odpowiedzi.

W tym celu klikamy plus w kółku i z wyszukiwarki wszystkich dostępnych akcji wyszukujemy tej, dotyczącej aplikacji Forms. Dlatego w wyszukiwarkę wpisujemy „Forms”.

Jak sama nazwa nam wskazuje, by otrzymać kompletną odpowiedz użytkownika ankiety, należy skożystać z akcji „Pobierz szczegóły odpowiedzi”.

Konfiguracja tej akcji znów wymaga, by podać Identyfikator formularza, który wybrać możemy z listy podając nazwę ankiety z aplikacji Forms.

Natomiast dodatkowo znjduje się tu kolejny parametr z gwiazdką, czyli również wymagany by flow wykonał swoją pracę prawidłowo. Identyfikator odpowiedzi, to wskazanie konkretnej odpowiedzi uczestnika. Dzięki temu akcja pobiera szczegóły tylko tej jednej, wybranej odpowiedzi, a nie wszystkich. W naszym flow identyfikator ten jest automatycznie pobierany z wyzwalacza i przekazywany do tej akcji za pomocą zmiennych, które powstały w wyniku zakończenia poprzednich kroków przepływu. W naszym przypadku drugi klocek flow „Pobierz szczegóły odpowiedzi” wykorzystać może zmienne wytworzone przez pierwszy klocek „Po przesłaniu nowej odpowiedzi”.

Aby wybrać zmienną pasującą do pola, wpierw należy klikną w pole i pojawi się niebieska kapsułka z błyskawicą u gry i „fx” na dole (pojawić się może po lewej, choć najczęściej po prawej stronie wybranego przez nas pola). Zmienne wywołujemy klikając w błyskawicę, na górze niebieskiej kapsułki.

Po kliknięciu otworzy się okno wyszukiwarki, lecz jedyną zmienną, którą obecnie mamy dostępną jest tożsamy z nazwą pola „Identyfikator odpowiedzi”, więc klikamy w niego, by go wybrać.

Tak skonfigurowana akcja zwróci nam komplet odpowiedzi użytkownika. A dzięki zmiennej, nie musimy znać ID konkretnej wypełnionej ankiety, ponieważ za każdym razem Power Automate pobierze to które wybudziło przepływ, czyli najnowsza otrzymana odpowiedź.

Nasza praca z ankietami dobiegła końca, teraz czas zająć się wizualizacją wyników za pomocą Excela.

Wyniki ankiet w Excelu

Za każdym razem, gdy wpadnie nowe zgłoszenie za pomocą ankiet Forms, nasz automat będzie tworzył dokument Excel z danymi z ankiety. Potrzebny nam jest szablon takiego pliku, na podstawie którego generować będziemy każde ze zgłoszeń. Plik opisany został na początku artykułu i gotowy szablon dostępny jest tam do pobrania.

Początkiem naszych działań z danymi w tabelach będzie utworzenie pliku dla wypełnionego formularza. Nasz plik źródłowy, czyli szablon musi znajdować się w chmurze. Dobrą praktyką, którą teraz zastosujemy jest umieścić plik w bibliotece witryny SharePoint dotyczącej danego procesu (np. zgłoszenia uczestników szkoleń na witrynie „Szkolenia”, zgłoszenia awarii na witrynie działu IT, zgłoszenia incydentów RODO na witrynie Inspektora Danych Osobowych).
W tym przypadku umieszczam pobrany plik w folderze „Zgłoszenia” w bibliotece „Dokumenty witryny” na witrynie „Szkolenia”.
Oczywiście jeśli nie posiadasz produktu Sharepoint Online, to wykorzystać możesz osobistą przestrzeń chmurową, czyli OneDrive, jednak zwróć uwagę czy chcesz udostępniać wytworzone pliki i komu, by nie doszło do wycieku wrażliwych danych lub nie mieć problemu, że nowe osoby z automatu nie otrzymują dostępu do tych zasobów. Jeśli wybierasz OneDrive to zamiast akcji SharePoint wybieraj te o tej samej nazwie, lecz z logo OneDrive przy nazwie akcji (zwróć uwagę, że akcja też będzie znajdować się w grupie nazwanej OneDrive, a nie SharePoint).

Znów za pomocą plusa w kółku na ekranie edytora dodajemy nową akcję „Skopiuj plik”.
Jak widać, już po wpisaniu „plik” wyświetlają się dwie grupy akcji „OneDrive dla Firm” (w osobistym koncie Outlookowym będzie po prostu „OneDrive”) oraz „SharePoint”

Wybieramy „Skopiuj plik i przechodzimy do konfiguracji.

Pierwszym polem do skonfigurowania jest adres witryny, na której umieściliśmy plik.
W tym przypadku zgłoszenia chcę trzymać na witrynie szkoleniowej więc wpisałem nazwę istniejącej witryny działu „Szkolenia”.

Kolejnym krokiem jest wskazanie samego pliku, a dzięki wybraniu witryny, teraz wyszukiwania folderu zostały zawężone i wyświetlają się tylko foldery tej witryny.

W tym przypadku plik umieściłem w bibliotece „Dokumenty witryny”, lecz w związku z tym, że jest to domyślna biblioteka, która powstała automatycznie po stworzeniu witryny, to Microsoft zapisał ją w bazie pod angielską nazwą „Shared Documents” i taką nazwę szukamy na liście.

Jeśli tak jak w moim przypadku szablon umieszczasz w pod folderze „Zgłoszenia”, to zamiast kliknąć w nazwę biblioteki, kliknij w strzałkę po prawej stronie, by zobaczyć pod foldery i wybrać właściwy, znów klikając strzałkę po prawej stronie nazwy folderu. W ten sposób powinniśmy dotrzeć do miejsca z nazwą naszego pliku, którą należy kliknąć, by go wybrać.

Analogicznie powtarzamy wybór witryny, na której znaleźć się ma nasz wynikowy plik (może być ta sama witryna), oraz wskazujemy folder, który również może być tym samym z którego zaczytujemy szablon.

Jeśli posiadać będziesz więcej szablonów, np. do różnych typów formularzy, to zalecane jest stworzenie biblioteki/folderu właśnie pod szablony, tak by nie mieszały się z wynikowymi plikami, a dostęp do nich był ograniczony np. tylko do odczytu.

Ostatnim wymaganym parametrem akcji jest określenie co ma się stać, gdy plik o takiej samej nazwie już istnieje.

Do wyboru mamy:

  1. Skopiowanie, ale z nową nazwą – dopisywany jest kolejny numer kopii.
  2. Zakończenie akcji z błędem – przepływ zakończy się i nie wykonają się kolejne akcje.
  3. Zamiana – poprzedni plik zostanie zastąpiony nowym

W naszym wypadku należy wybrać opcję (1), a jeśli jest taka potrzeba, to rozwijając flow można dodać akcję zmiany nazwy pliku na taki który identyfikuje tą odpowiedź np. „Imię i nazwisko – nazwa kursu – data”.

Posiadając tak skonfigurowaną akcję kopiowania, możemy przejść do uzupełniania stworzonego pliku.

By dodać kafelek uzupełniający tabelę z danymi w pliku Excel wystarczy wpisać „excel” w wyszukiwarce akcji.

W związku z tym, że akcji aplikacji Excel jest bardzo dużo to nie wszystkie nam się pojawią w oknie wyszukiwania. Dlatego, by zobaczyć pełną listę możliwych zadań, należy kliknąć „Zobacz więcej” na prawo od nazwy grupy akcji.

Dodajemy znalezioną akcje o nazwie „Dodaj nowy wiersz do tabeli” by uzupełnić tabele z danymi, które wcześniej przygotowaliśmy w naszym szablonie.
Zaczynamy znów od wskazania lokalizacji (nazwy witryny) naszego wynikowego pliku Excel, biblioteki dokumentów oraz folderu, w którym się znajduje.

W tym 3 polu, prócz nazwy folderu znaleźć się musi nazwa pliku, lecz nie jesteśmy w stanie jej podać, gdy plik jeszcze nie powstał. Na szczęście w takiej sytuacji z pomocą przychodzą nam zmienne z poprzednich akcji. Ale najpierw nazwa folderu – jeśli szablon umieściliśmy tam, gdzie kopiować będziemy pliki wynikowe to wystarczy z menu wyboru wskazać plik szablonu, tak jak robiliśmy to w akcji kopiowania pliku, następnie wystarczy usunąć nazwę szablonu wraz z rozszerzeniem pliku, czyli „.xlsx” i w ten sposób dotrzemy do prawidłowo zapisanego folderu. Jeśli jednak ma być to inny folder to należy wskazać jego nazwę zaczynając od ukośnika „/Nazwa folderu/” (Pamiętaj, by sprawdzić, czy dobrze wskazujesz nazwę biblioteki, w której znajduje się folder z plikiem).
Teraz wskażemy nazwę pliku przy użyciu zmiennej. Gdy jesteśmy w polu „Plik” to po prawej lub lewej stronie wyświetlać się powinna kapsułka z błyskawicą na górze, jeśli jej nie ma to kliknij w inne pole a następnie z powrotem w pole „Plik”. Po kliknięciu błyskawicy pojawić się może już wiele zmiennych, pogrupowanych w sekcje o nazwach akcji, zakończonych przed bieżącym krokiem. Nas interesuje akcja, która wykonała się przed chwilą, czyli „Skopiuj plik”, która zwraca nam nazwę nowopowstałego pliku w zmiennej „body/Name”.

W ten sposób za każdym razem wskazywany jest aktualny plik Excel, który chcemy uzupełnić.

Niestety, ale kolejne pole musimy uzupełnić ręcznie, zwracając uwagę na poprawność zapisu, ponieważ plik, który automatyzacja ma uzupełniać jeszcze nie istnieje, więc Power Automate nie potrafi wylistować zawartych w nim tabel.  Najłatwiej będzie skopiować nazwę tabeli z pliku Excel, pobranego na etapie przygotowań.
Będąc już w otwartym arkuszu, klikamy w pole, które chcemy uzupełnić – w tym przypadku „DataZgłoszenia” znajdujące się obok miejscowości.
W tym momencie powinna się otworzyć zakładka „Tabela”, a po lewej stronie wstążki z narzędziami programu Excel, znajduje się „Nazwa tabeli”.

Ostatnim polem, które obowiązkowo należy uzupełnić, by wprowadzić dane do naszego pliku jest pole wiersz. Musi ono mieć strukturę JSON, czyli zawierać klamry {}, a w ich wnętrzu znajdować się musi nazwa pola oraz wartość, którą do tego pola wprowadzamy.

W naszym arkuszu wyłączyliśmy nagłówki, by wyświetlały się czyste dane, lecz wystarczy włączyć na chwilę opcję „Wiersz nagłówka”, by skopiować nazwę pola.
Nasze pole „Wiersz” powinno wyglądać jak poniżej, pozostaje tylko wstawić właściwą zmienną:

{

„Data zgłoszenia”: „Zmienna”

}

W tym wypadku jako datę zgłoszenia przyjmujemy datę wysłania formularza forms, więc szukamy zmiennej „Submission time” z akcji „Pobierz szczegóły odpowiedzi”.
Po podstawieniu zmiennej, nasza akcja jest w pełni skonfigurowana i wygląda tak:

W ten sam sposób musimy uzupełnić pozostałe pola pliku Excel, ponieważ każde z tych pól to osobna tabela.
Jednak by nie rozpoczynać wszystkiego od zera, Microsoft wyszedł naprzeciw i pozwala na kopiowanie dodanych do obiegu akcji.

Aby tego dokonać należy kliknąć prawym przyciskiem myszy na akcję, a następnie wybrać „Kopiuj akcję”.

A kolejnym krokiem jest kliknięcie prawym przyciskiem myszy na plusik w kółku, który dotychczas służył nam do dodawania nowych akcji. Następnie wybieramy „Wklej akcję”.

W ten sposób otrzymaliśmy identyczną akcję do tej z poprzedniego kroku.

Teraz jedyne co musimy zrobić to uzupełnić nazwę nowej tabeli do wypełnienia oraz nazwę pól wraz z wartościami. Miejsce przechowywania pliku, czyli Witryna, Biblioteka, Folder, a nawet nazwa pliku się nie zmienia, stąd zostawiamy je bez modyfikacji.

Kolejna tabela to „Uczestnik” i tym razem zawiera dwa pola – Imię oraz Nazwisko, stąd nasza struktura JSON będzie się różniła od poprzedniej:
{

„Imie”: „Zmienna z imieniem”,

„Nazwisko”: „Zmienna z nazwiskiem”

}

Jak zauważyć można, pola są rozdzielone przecinkiem. Teraz pora podstawić faktyczne imię i nazwisko uczestnika, wybierając je za pomocą błyskawicy ze zmiennymi akcji „Pobierz szczegóły odpowiedzi”. Wystarczy w wyszukiwarce zmiennych wpisać nazwę zmiennej, czyli „Imie” dla pierwszego pola i „Nazwisko” dla drugiego.

Gotowa akcja wygląda następująco:

W ten sam sposób należy uzupełnić pozostałe tabele w Excelu:
– Termin
– Kurs

Teraz zaczyna się etap oczekiwany przez wszystkich. Nie jest ważne, czy docierasz do tego momentu po godzinie, czy po ośmiu, satysfakcja z uruchomienia i przetestowania automatyzacji zawsze jest tak samo wielka.

Ale zanim ogłosimy sukces, nie można zapomnieć, by zapisać naszej pracy.
Dlatego w prawym górnym rogu edytora przepływu szukamy przycisku „Zapisz”.

Gdy proces ten zakończy się powodzeniem, to poniżej nazwy naszego flow pojawi się zielony komunikat:

I zgodnie z zaleceniami klikamy przycisk „Przetestuj”, znajdujący się obok „Zapisz”.

Otworzy się menu boczne, gdzie mamy dostępną opcję „Ręcznie”, którą wybieramy i na dole klikamy niebieski przycisk „Przetestuj”.

Teraz nic się nie zadzieję, dopóki nie dostarczymy danych do naszego procesu. W tym celu musimy wypełnić ankietę Forms podpiętą do tej automatyzacji.
Zweryfikuj czy szablon Excel jest zamknięty (Na komputerze jak i w dowolne karcie przeglądarki) – Otwarty arkusz może spowodować, że automatyzacja się nie powiedzie.

Po uzupełnieniu formularza i przesłaniu go, możemy przejść do ekranu edytora Power Automate. Zauważyć można, że tryb edycji został zablokowany i mamy jedynie podgląd aktualnego wywołania (aktualnie przesłanej ankiety).

Jeśli wszystko zakończyło się z sukcesem to przy klockach akcji pojawić się powinny zielone kółka z ptaszkiem w środku.

Jeśli zamiast tego jest szare kółko, które się kręci, to jeszcze musimy poczekać, ponieważ proces dalej trwa.
A w przypadku, gdy pojawi się czerwone kółko z X wewnątrz, to oznacza, że nasza praca z obiegiem jeszcze się nie zakończyła i musimy rozwiązać występujące problemy.
Pod nazwą naszego flow pojawi się wtedy czerwony komunikat, który możemy przekazać Copilotowi do wyjaśnienia, a następnie możemy kliknąć edytuj w celu modyfikacji przepływu.

Mimo sukcesu naszego automatu, warto zawsze zweryfikować efekty. W tym celu przechodzimy do folderu z wynikowym plikiem i widzimy, czy powstał nowy poza szablonem.

Pamiętamy, że każdy kolejny plik będzie miał wyższy numer dopisany do nazwy.

Otwieramy wytworzonego Excela i widzimy, że dane podstawiły się prawidłowo.
Dane z ankiety zostały przypisane do odpowiednich pól:

Taki arkusz teraz można przekonwertować na PDF lub wydrukować.

Teraz każde nowe zgłoszenie potrzeby szkoleniowej będzie generowało wniosek zgodnie z naszym wzorcem.

Podsumowanie

Automatyzacja procesów z wykorzystaniem Microsoft Forms, Excel i Power Automate to ogromne ułatwienie w codziennej pracy. Dzięki odpowiedniemu przygotowaniu formularzy, szablonów oraz przepływów, możemy znacząco skrócić czas obsługi zgłoszeń, wyeliminować błędy wynikające z ręcznego wprowadzania danych i zapewnić spójność informacji w całej organizacji.

Jak widać wdrożenie takiego rozwiązania nie wymaga zaawansowanej wiedzy programistycznej – wystarczy podstawowa znajomość narzędzi Microsoft 365 i chęć usprawnienia procesów. Co więcej, automatyzacja jest skalowalna: od prostych ankiet po rozbudowane systemy raportowania i integracji z innymi aplikacjami.

Podobne artykuły

Wszystkie artykuły