od Podstaw
3 godz. 47 min · Airtable · Biznes i Automatyzacje
Adam GospodarczykW kursie dowiesz się o najważniejszych funkcjach Airtable, stworzysz swoje pierwsze bazy a także opanujesz interfejs, widoki i inne podstawowe funkcje. Zobaczysz, jak wiele potrafi Airtable w porównaniu do Excela czy Google Sheets, a jednocześnie - jak proste i szybkie jest w codziennej pracy.
To niesamowite, jak wiele można osiągnąć wykorzystując prostą funkcję filtrowania danych w ramach widoku, której nie ma w arkuszach kalkulacyjnych. Możesz w ten sposób łatwo stworzyć ścieżki użytkowników, zawężać wyniki i przeglądać te, które na danym etapie pipeline'u są najbardziej istotne. W kursie nauczysz się pracować z widokami i zarządzać nimi w intuicyjny sposób. Wśród widoków dostępne są też kalendarze, wykresy Gantt'a, Galerie oraz bardzo przydatny widok Kanban, który pozwoli Ci zrezygnować z Trello.
Kolejną świetną opcją w Airtable są formularze, które pozwalają wypełniać Twój arkusz kalkulacyjny dowolnej osobie. To tak, jak Google Forms połączone z arkuszem Google Sheets, ale dużo prostsze i dające większe możliwości dopasowania do potrzeb użytkowników. Ponieważ formularze tworzysz w ramach widoku, pozwalają one łatwo zawęzić ilość pól do uzupełnienia na przykład do poszczególnych ról użytkowników. Możesz w ten sposób wypełniać CRM, zbierać dane, ankietować użytkowników i wiele więcej!
Prawdziwy potencjał Airtable drzemie w tym, że pod spodem jest to relacyjna baza danych, która automatycznie wystawia swoje własne API, dostępne pod konkretnym URL. Możesz korzystać z bardziej zaawansowanych funkcji, w tym automatyzacji np. z Zapier, które pozwolą Ci nadpisywać, odbierać i edytować dowolne dane. W kursie pokażemy Ci jak tworzyć takie proste, ale też bardziej złożone automatyzacje!
Airtable posiada też swoje własne integracje i pluginy w formie automatyzacji. Pozwolą Ci one na przykład wysyłać maile bezpośrednio z arkusza kalkulacyjnego, ustawiać powiadomienia, modyfikować rekordy i reagować na ich zmiany. Możesz używać nawet własnego skryptu w JS aby obsługiwać takie scenariusze. Te zaawansowane funkcje Airtable także odkryjesz w trakcie naszego kursu!
Kurs jest dla wszystkich, którzy chcą efektywnie zarządzać danymi i już korzystają z Excela lub Google Sheets, ale chcą osiągnąć znacznie więcej, w przyjaznym i szybkim interfejsie. Możliwości Airtable doceni każda osoba, która organizuje pracę, zajmuje się marketingiem, planowaniem, finansami czy buduje swoje własne aplikacje i strony WWW.
Cześć! W tej lekcji pokażę Ci, w jaki sposób
możesz wykorzystać dane, które przechowujesz w Airtable do tego, aby
zaprezentować je w formie takiej małej strony raportowej, która ułatwi Ci np.
komunikację z zespołem, bądź w ogóle
monitorowanie statystyk z wielu różnych tabel Airtable jednocześnie.
Jak widzisz, przygotowałem tutaj na potrzeby ćwiczenia taką prostą tabelę
zawierającą podstawowe informacje, które będziemy chcieli wyświetlić na stronie.
Pierwsza strategia, która pozwoli nam wykorzystać te dane opiera się o technikę,
którą już znamy, wykorzystującą webhooki, a mianowicie skonfigurujemy sobie tutaj
nowy Webhook, na którego adres wystarczy przejść, aby zobaczyć dane raportowe.
Zatem tutaj scenariusz będzie naprawdę prosty i będzie w dużej mierze sprowadzał
się do tego, aby pobrać informacje z Airtable.
Oczywiście w Twoim przypadku może być tak, że wykorzystasz wiele różnych baz danych Airtable,
oraz nawet zewnętrzne zródła, takie jak narzędzia analityczne czy Twoja
własna aplikacja do tego, aby przygotować swój własny panel raportowy.
W tym miejscu chciałbym jednak zwrócić Twoją uwagę na pewien fakt.
Mianowicie mamy tutaj kilka rekordów i
wymyśliłem sobie tak, że będziemy chcieli wyświetlić je wszystkie.
W związku z tym musimy wykorzystać text
aggregator do tego, aby zebrać je do jednej struktury HTML.
Aby to zrobić wystarczy wybrać moduł Text
aggregator, a następnie jako moduł źródłowy ustawić Airtable.
I tutaj możemy już zdefiniować dowolną strukturę, jaka nas tylko interesuje.
W moim przypadku będzie to struktura LI,
czyli znacznik listy nie numerowanej znany z HTML'a.
W tym przypadku do wyświetlenia rekordów wykorzystam zarówno ich nazwę oraz
wartość, a dodatkowo nazwa będzie umieszczona w znaczniku a href.
Dzięki temu po kliknięciu w nazwę
zostaniemy przeniesieni od razu do rekordu Airtable.
I jak zapewne pamiętasz, do tego, aby
przygotować link kierujący bezpośrednio do Airtable, musimy skopiować całe adres znajdując
się bezpośrednio w bazie, a następnie po ukośnik podać identyfikator rekordu.
Dzięki temu zbudujemy sobie odnośnik bezpośrednio do niego.
No to teraz zapisuję zmiane, a następnie
ustawiam WebHook response, w taki sposób, aby została tutaj zwrócona struktura HTML.
W tym celu muszę upewnić się, że nagłówek Content type jest ustawiony na text html
oraz dodatkowa opcja Charset ustawiona jest na UTF 8.
Dzięki temu będziemy mieć tutaj wsparcie dla polskich znaków.
No i teraz jeżeli chodzi o dane, które
zostaną tutaj zwrócone, to oczywiście wykorzystamy wygenerowany tekst, przy czym
chcielibyśmy opakować go dodatkową strukturą HTML.
Akurat poznawaniem HTML'a nie będziemy zajmować się w tym odcinku i z tego powodu
przygotowałem sobie wcześniej naprawdę prostą strukturę
do tego, aby tylko wyświetlić te dane.
Natomiast jeżeli będzie znać zarówno HTML
i CSS, możesz jak widzisz umieścić tutaj po prostu cały dokument HTML i po prostu
podstawić odpowiednie dane i po prostu dynamicznie podstawiać odpowiednie dane.
W rezultacie, jeżeli teraz kopiujemy sobie
adres tego Webhooka, a następnie zapiszemy oraz aktywujemy nasz scenariusz.
No to zaraz po przejściu na ten adres zostanie wyświetlony raport zawierający
informacje pochodzące bezpośrednio z Airtable.
Jeżeli teraz zmodyfikuję drugą wartość, a
następnie ponownie wczytamy stronę, to wartość druga została tutaj zaktualizowana.
Dodatkowo jak widzisz ich kolejność
została zamieniona, ponieważ są posortowane według daty dodania.
Aczkolwiek jeżeli chcielibyśmy to zmienić to nie ma z tym żadnego problemu, ponieważ
module serch records możemy po prostu posortować je np.
po nazwie.
I tutaj tylko mamy dwie opcje do
dyspozycji, czyli sortowanie rosnące oraz malejące.
W tym przypadku zależy mi na posortowaniu
alfabetycznym, więc wybieram opcję Ascendin.
Teraz po zapisaniu zmian oraz wczytaniu
danych ponownie wszystko powinno trafić na swoje miejsce.
Muszę przyznać, że budowanie bardzo prostych paneli raportowych właśnie w ten sposób jest
niesamowicie proste i jednocześnie przydatne.
I taką funkcję wykorzystuję praktycznie na
każdym kroku do tego, aby łatwo podglądać statystyki moich projektów.
Jednocześnie może zdarzyć się tak, że być może będziesz potrzebować nieco bardziej
złożonej struktury raportów i jednocześnie dołożyć do nich nieco więcej dynamiki,
bądź też po prostu umieścić pod swoją domeną.
W takiej sytuacji kolejnym najprostszym
sposobem, jaki znam jest wykorzystanie WebFlow.
Konkretnie wystarczy, że utworzę sobie
nowy projekt, a następnie skorzystać z opcji CMS Collection.
Mianowicie wystarczy tutaj stworzyć
kolekcję dla poszczególnych danych, a następnie określić ich strukturę.
W naszym przypadku poza nazwą będzie nas
interesowała jeszcze wartość i na tym struktura danych się zakończy.
Zatem po utworzeniu takiej kolekcji
będziemy po prostu musieli połączyć się z tym projektem z poziomu Integromatu, a następnie
przenieść do niego dane pochodzące z Airtable.
Zatem w tym przypadku nie będzie nam potrzebne generowanie kodu HTML, tylko w
zamian połączymy się z WebFlow do tego, aby utworzyć nowy element kolekcji, bądź
też bardziej zaktualizować istniejące. W naszym przypadku elementy jeszcze nie
istnieją, więc w pierwszej kolejności będziemy je tworzyć.
Tutaj wystarczy, że utworzysz połączenie
ze swoim projektem i połączysz się z odpowiednią stroną oraz kolekcją.
W naszym przypadku po prostu będziemy po prostu przekazywać wartość oraz nazwę.
Pozostałe wartości pozostawiamy bez zmian, przy czym tutaj na końcu dbamy jeszcze
o to, aby zmiany zostały opublikowane.
No i w tym momencie też nie będzie nam potrzebna odpowiedź z naszego Webhooka,
ponieważ dane będą widoczne na stronie WebFlow.
Zatem jeżeli teraz zapiszemy nasz scenariusz, a następnie wywołamy Webhook, który
swoją drogą nie jest nam już potrzebny, ponieważ równie dobrze moglibyśmy po
prostu wywoływać ten scenariusz co określony czas.
Dzięki temu nasze raporty będą aktualizowane na bieżąco.
I teraz jeżeli przejdziemy sobie na stronę, to
oczywiście nic nie zobaczymy, ponieważ nie wyświetlamy w żaden sposób tych danych.
Ale jeżeli tylko na naszej stronie
umieścimy sobie listę pochodzącą z kolekcji.
W tym momencie musimy tylko wskazać, o jakie elementy nam chodzi.
Zatem z pewnością będzie tutaj paragraf zawierający informacje o nazwie naszego
rekordu oraz drugi zawierającej informację o jego wartości.
W rezultacie otrzymaliśmy to, o co nam
chodzi, przy czym musimy jeszcze zmienić tutaj kolor fontu na jakiś ciemniejszy.
W tym momencie nasze dane są już tutaj widoczne, aczkolwiek proponuję abyśmy
umieścili je jeszcze w kontenerze, a tamu kontenerowi ustawimy margines wewnętrzny.
I teraz załóżmy, że nasze dane wyświetlają się tak jak byśmy tego chcieli, aczkolwiek
jeszcze na Collection item ustawię wyświetlanie jako display flex.
Dzięki temu wystarczy teraz zamiana kolejności oraz ewentualnie dodanie
kolejnego elementu zawierającego po prostu myślnik.
W tym momencie możemy opublikować stronę.
I jak się pewnie domyślasz, wszystkie dane
zostaną wyświetlone w sposób, o które nam chodzi.
I faktycznie, jeżeli teraz odświeżamy
stronę, to nasze dane zostaną tutaj wyświetlone, a w sytuacji, gdy ponownie
coś zmienimy oraz tym razem ręcznie wykonamy scenariusz, to nasz scenariusz
nie zadziała tak jak byśmy tego chcieli, ponieważ pojawią się tutaj nowe dane.
Z tego powodu oczywiście zależy nam na tym, aby aktualizować istniejące rekordy i
dlatego powinniśmy zrobić tak, że w pierwszej kolejności utworzymy sobie
wszystkie dane w kolekcji, które chcemy wyświetlać, a następnie identyfikatory
poszczególnych elementów zapiszemy w Airtable.
Dzięki temu będziemy mogli sprawdzić, czy
dany element istnieje i w zależności od tego albo go utworzyć, albo zaktualizować.
Zatem wygląda to mniej więcej tak, że w pierwszej kolejności aktualizujemy rekord,
który dodaliśmy do WebFlow, a konkretnie zależy nam na podaniu tutaj Item ID.
Od tej pory, jeżeli raz jeszcze utworzymy ten scenariusz, nasze dane zostaną w
Airtable odpowiednio zaktualizowane, co też dokładnie się stało.
Natomiast teraz scenariusz automatyzacji
powinien wyglądać nieco inaczej, ponieważ w pierwszej kolejności powinniśmy
sprawdzić, czy dany wpis w Airtable posiada WebFlow ID.
Jeżeli nie posiada, to utworzymy nowy element kolekcji i tak w zasadzie będzie
to się sprowadzało do wykonania tej ścieżki.
W przeciwnym razie będzie nam zależało na tym, aby w pierwszej kolejności odnaleźć
element kolekcji o podanym identyfikatorze, a następnie w zależności
od tego albo go utworzyć, albo zaktualizować.
W tym momencie, jeżeli masz już wybrany site oraz kolekcję, możesz przełączyć się
na tryb manualny, a następnie po prostu uzupełnić identyfikator WebFlow.
No i teraz mogą wydarzyć się tutaj dwa
scenariusze, dlatego wykorzystamy ponownie router.
W pierwszym scenariuszu element zostanie
odnaleziony, to znaczy, że jego identyfikator istnieje, a w przeciwnym
razie element nie zostanie znaleziony i będziemy musieli go utworzyć.
Dodatkowo jeszcze tutaj, w tym miejscu
muszę upewnić się, że element WebFlow ID tutaj istnieje, więc będziemy mogli pójść dalej.
No i teraz oczywiście, gdy element został
odnaleziony, po prostu aktualizujemy jego wartość.
No i tutaj jeszcze dynamicznie podajemy jego
identyfikator, a następnie zaktualizowane wartości.
W tym momencie mamy obciążoną kolejną ścieżkę i zależy nam jeszcze na ostatniej,
która w zasadzie będzie wyglądała dokładnie tak jak ta na górze.
Zatem wklejamy ją w tym miejscu, a na
końcu jeszcze upewniam się, że filtr, który mamy podpięty jest poprawny.
Czyli identyfikator WebFlow tutaj nie istnieje.
No to teraz nasz scenariusz jest gotowy, więc możemy go przetestować, przy czym
jeszcze wcześniej wyczyszczę sobie całą kolekcję znajdującą się obecnie w WebFlow.
Przechodzę więc teraz w panelu do
odpowiedniego okna i tutaj tylko muszę przeładować stronę.
Po zaznaczeniu rekordów możemy je z
powodzeniem usunąć, ponieważ i tak znajdują się w Airtable.
I jeszcze raz wykonać nasz scenariusz.
Po wykonaniu scenariusza mamy jakiś błąd
mówiący o tym, że mamy jakiś problem ze slugiem.
Prawdopodobnie wynika to z faktu, że rzeczywiście sluga tutaj nie podajemy.
Natomiast usunięcie rekordów jeszcze nie
obowiązuje, ponieważ nie opublikowałem strony.
W momencie, gdy to zrobię i zmiany zostaną
zastosowane, nasz scenariusz powinien wykonać się poprawnie.
Zmiany zostały opublikowane no i teraz możemy
raz jeszcze wykonać scenariusz i wszystkie rekordy powinny tym razem zostać utworzone.
No i faktycznie to się stało.
Jeżeli teraz odświeżamy sobie stronę będziemy
mieli tutaj trzy wpisy i teraz możemy je zaktualizować.
I po ponownym wykonaniu scenariusza tym
razem zostanie wykonana druga ścieżka i nasze wpisy zostaną zaktualizowane.
Nasz panel raportowy działa tak,
jakbyśmy tego chcieli, więc w ten sposób zbliżyliśmy się już do końca tej lekcji.
Na sam koniec dodam jeszcze małą informację dla programistów, która
być może w jakiś sytuacjach okaże się przydatna.
Mianowicie z poziomu Integromatu możemy połączyć się z GitHubem, a następnie
aktualizować pliki znajdujące się w repozytorium.
Oczywiście tak długo. Jeżeli pracujemy z naprawdę prostymi
plikami tekstowymi, taka modyfikacja będzie miała tutaj sporo sensu, tym
bardziej jeżeli wykorzystamy sobie Netlify do tego, aby hostować tą stronę.
W ten sposób będziemy mieć nie tylko
bezpłatny hosting, ale również bezpłatną aktualizację naszej strony.
Muszę przyznać, że pod kątem możliwości to
rozwiązanie jest bardziej ograniczone niż WebFlow, ale jednocześnie jest całkowicie
bezpłatne i są sytuacje, w którym kontrola nad repozytorium okaże się tutaj
krytyczna, czego akurat nie zapewni nam WebFlow.
Ze względu na to, że tutaj będzie wymagana jest znajomość np.
Gita, nie będę pokazywał tego scenariusza, bo
myślę, że jeżeli posiadasz tą wiedzę to i tak świetnie sobie z tym poradzisz.
Zatem teraz kończąc lekcję dziękuję Ci za
uwagę i zapraszam Cię do kolejnych materiałów.