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 kilka wskazówek dotyczących projektowania tabel, które
mogą okazać się przydatne zarówno przy mniejszych, jak i większych strukturach.
Musisz wiedzieć, że projektowanie baz danych nie jest prostym zadaniem i bardzo często
sprawia problem nawet doświadczonym programistom.
Tak się składa, że sam posiadam dość duże doświadczenie w projektowaniu nawet
złożonych aplikacji i na tej podstawie zebrałem kilka wskazówek, które
zdecydowanie pomogą Ci przy projektowaniu Twoich baz.
W tym wszystkim prawdopodobnie najbardziej złożonym zadaniem jest zaprojektowanie
struktury w taki sposób, aby jednocześnie nie doprowadzić do
sytuacji, w której mamy zbyt wiele tabel lub sytuacji, w której mamy ich zbyt mało.
Przykładowo mamy tutaj tabelę zawierającą informacje na temat użytkowników.
Oczywiście zwykle mielibyśmy tutaj kilka dodatkowych kolumn, natomiast mi zależy na
tym, aby pokazać Ci drugą tabelę, w której mamy listę aktywnych użytkowników.
Coś takiego jest dość prostym, ale
jednocześnie bardzo obrazowym przykładem sytuacji, w której mamy zbyt wiele tabel
do przechowywania stosunkowo prostych informacji.
Otóż jak się pewnie domyślasz, całą drugą
tabelę active users możemy tak naprawdę zastąpić polem typu check box, po prostu
oznaczając tych użytkowników, którzy są rzeczywiście aktywni.
W ten sposób nie tylko doprowadzamy do sytuacji, w której nie mamy dodatkowej
tabeli, ale również, a w zasadzie przede wszystkim nie mamy powtórzonych danych.
No bo wyobraź sobie teraz prostą sytuację,
w której Grzegorz zmienia swój adres e-mail.
Coś takiego może łatwo doprowadzić do sytuacji, w której ten adres zostanie
zmieniony w tej kolumnie, ale już możemy pominąć go np.
w tej tabeli lub też dodamy sobie pracy
polegającej na tym, aby zaktualizować jego adres e-mail we wszystkich kolumnach.
W tej konkretnej sytuacji po prostu
zmieniamy go w jednym miejscu i mamy pewność, że wszystkie informacje powiązane
z tym kontem faktycznie dotyczą tego konkretnego adresu e-mail.
Zatem pierwszą wskazówką, którą mam tutaj
dla Ciebie jest zastanowienie się nad tym, czy tworzenie dodatkowych tabel nie można
zastąpić utworzeniem po prostu dodatkowej kolumny.
Informacje przechowywane w dodatkowych kolumnach są zdecydowanie łatwiejsze w
zarządzaniu niż zarządzanie dodatkową tabelą. Drugą
wskazówką, którą dla Ciebie przygotowałem
jest sytuacja, w której rzeczywiście mamy dodatkową tabelę, ale jak widzisz, jest
ona powiązana z jednym konkretnym miesiącem.
Oznacza to, że w sytuacji, gdy będziemy
mieć kolejny miesiąc, będziemy kopiować całą tą tabelę, być może też z całą
strukturą, następnie zamieniać jej nazwę i uzupełniać poszczególne pola.
Coś takiego jest oczywistym przykładem
sytuacji, której zdecydowanie chcemy uniknąć.
Z tego powodu musimy zastanowić się, w
jaki sposób zorganizować te dane tak, aby mogły być przechowywane w jednej tabeli,
ale jednocześnie reprezentowały dane, o które nam chodzi.
Jeżeli przez chwilę się zastanowimy, to
zauważymy, że jedyna informacja, która różni tę tabelę to oczywiście miesiąc.
W związku z tym potrzebujemy tylko
informacji na temat tego, którego miesiąca dotyczy dany rekord.
Oczywiście moglibyśmy dodać tutaj pole
typu single line tekst i wpisać poszczególne miesiące ręcznie.
Jednocześnie moglibyśmy zrobić to automatycznie, wykorzystując formułę, a
następnie funkcję DateTime format, do której przekażemy datę utworzenia rekordu
oraz format w postaci mm, mm i w efekcie otrzymamy tutaj angielską nazwę miesiąca.
No i teraz w sytuacji gdybyśmy chcieli nawet rozdzielić dane z poszczególnych miesięcy,
moglibyśmy wykorzystać po prostu opcję grupowania ich.
Efekt został tutaj osiągnięty, a my
jednocześnie otrzymaliśmy możliwość usunięcia tej dodatkowej tabeli.
No ale teraz znowu mamy tutaj sytuację, w
której dane użytkowników są powtórzone analogicznie jak mieliśmy to w tabeli
active Users, którą swoją drogą możemy teraz usunąć.
Jeżeli przez chwilę zastanowimy się co
możemy z tym zrobić, to oczywiście możemy tutaj utworzyć
kolumnę Link to another record, która będzie kierowała do użytkowników i
jednocześnie pozwoli nam na to, aby nie powtarzać tutaj danych.
Dodatkowo dzięki takiemu wiązaniu nie tylko unikamy sytuacji, w której mamy
powtórzone adresy e-mail, ale również zyskaliśmy możliwość powiązania danych na
temat sesji użytkownika w danym miesiącu z jego faktycznym kontem w naszym serwisie.
No i to jest sytuacja, w której rzeczywiście już potrzebujemy tej
dodatkowej tabeli, ponieważ zastąpienie jej kolumnami będzie mało efektywne.
No i jednocześnie mielibyśmy wtedy do czynienia z bardzo złą praktyką, polegającą
na tym, że faktycznie musielibyśmy tworzyć tym razem nie dodatkowe tabele, ale
dodatkowe kolumny, co również oczywiście utrudniłoby automatyzację.
To, o co moglibyśmy tutaj jeszcze zadbać o
ustawienie odpowiedniej głównej kolumny, którą w tym przypadku mogę ustawić na
formułę wskazującą na identyfikator rekordu.
Żadna inna informacja, którą tutaj mamy,
według mnie nie jest lepszym kandydatem dla tego pola.
I w ten sposób doszliśmy do sytuacji, w
której nasza baza danych zdecydowanie została uproszczona.
Natomiast mam z nią jeszcze jeden problem
polegający na tym, że kolumna sessions uzupełniana jest ręcznie.
Oczywiście tutaj moglibyśmy wykorzystać
pole typu rollup do tego, aby pobrać informacje z tabeli Login History.
W praktyce jednak okazuje się, że musimy
dokonać tutaj kolejnych zmian, polegających chociażby na tym, że
informacja na temat miesiąca, w którym logował się użytkownik, powinna być
generowana w tabeli Login History, ponieważ dokładnie to
tutaj mamy datę poszczególnego logowania.
No i teraz skoro ta informacja znajduje się w
tym miejscu, to rzeczywiście możemy wykorzystać ją do grupowania.
Następnie w kolumnie Active Users powinniśmy powiązać poszczególne
aktywności użytkowników z tabelą login history.
W tym celu w tym polu umieścimy sobie wartość kolumny Users 2, dzięki czemu
będziemy mieć tutaj jako główne klucz adresy e-mail.
I w tym momencie tworząc powiązanie pomiędzy tymi tabelami będziemy tutaj
mogli uzupełnić co prawda ręcznie, ale jednak adresy e-mail użytkowników.
I tym samym zyskamy tutaj możliwość
utworzenia po prostu kolumny typu count, która będzie liczyć nam powiązania.
W efekcie doprowadziliśmy do sytuacji, w której mamy dynamiczne dane w naszej
tabeli i w rezultacie za każdym razem aktualizowane są one na bieżąco.
Tutaj jeszcze zwracam tylko uwagę na fakt, że jako identyfikator poszczególnych
rekordów wykorzystujemy adres e-mail, co sprawia, że te dane są tutaj powtórzone.
Natomiast nie ma z tym problemu, ponieważ jeżeli w jakimkolwiek miejscu zmieni się
identyfikator rekordu, to jak widzisz wszystkie powiązania zostały tutaj
zaktualizowane, więc nie ma z tym najmniejszego problemu.
No i teraz ostatnią tabelą, którą tutaj mamy jest tabela Stats, która tak naprawdę
przechowuje informacje na temat aktywnych i nieaktywnych użytkowników.
Tutaj wykonanie tego zadania pozostawiam
Ci już bardziej jako pracę domową do tego, aby zastanowić się w jaki sposób możemy
policzyć aktywnych i nieaktywnych użytkowników.
Zakładając na przykład, że aktywnym
użytkownikiem jest taki, który logował się przynajmniej 2 razy, a nie aktywnym
osoby, które nie logowały się lub
blokowały się tylko raz, ostatecznie zbliżając się już do końca tej lekcji,
chciałbym podkreślić tutaj tylko fakt, że
w przy projektowaniu tabel może stosować się zasadę Alberta Einsteina, która mówi o
tym, aby tabele Airtable były tak proste jak to tylko możliwe, ale nie prostsze.
Ja do tej zasady dorzucam jeszcze fakt, że wszystkie chwyty są dozwolone.
Niejednokrotnie zdarzają mi się sytuacje, w której sięgam wręcz po zewnętrzne
narzędzia do tego, aby wykonać jakieś operacje na danych w Airtable.
Przykładowo w Airtable brakuje tutaj formuły count if, która umożliwia liczenie
rekordów w zależności od spełnionego warunku.
Natomiast taka formuła jest już jak
najbardziej dostępna w przypadku Google Sheets.
Z tego powodu często zdarza mi się po
prostu sięgnąć po Integromat lub też nawet z pomocą Integromatu przenieść dane do
Google Sheets i tam wykonywać konkretne obliczenia.
Poza tym w przypadku z projektowania nieco bardziej złożonych tabel, bądź też
udokumentowania struktury baz danych, które już posiadasz, możesz wykorzystać
narzędzia bądź też zwykłą kartkę papieru do tego, aby narysować strukturę tabel
oraz tego, w jaki sposób dane wewnątrz nich wchodzą w interakcje między sobą.
Takie struktury noszą nazwę diagramów UML,
które są wykorzystywane przez programistów, ale i nie tylko, do
projektowania i reprezentacji struktury danych.
Ja osobiście nie korzystam z tego typu narzędzi, ale tylko chciałem poinformować
Cię o ich istnieniu, ponieważ być może okażą się dla Ciebie przydatne.
W tej chwili nie pozostaje mi już nic innego jak po prostu podziękować Ci za
uwagę i zaprosić Cię do kolejnych materiałów.
Cześć!