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.
Proponuję abyśmy w tej lekcji
wykorzystali dotychczasową wiedzę na temat Airtable oraz Integromatu, ale i nie tylko.
Do tego, aby zautomatyzować bloga easycart.
W związku z tym, że pojawiły się już na
nim jakieś artykuły, w pierwszej kolejności musimy wykorzystać narzędzie do
scrapowania danych do tego, aby umieścić je w Airtable.
Tutaj od razu dodam, że jeżeli web scraping nie jest Ci jeszcze znany, zachęcam Cię
do zatrzymania tego filmu i zobaczenia warsztatu na temat przygotowania
automatyzacji cookie Monster dostępnej na tej oto stronie.
Mając tą wiedzę jesteśmy w stanie wykorzystać narzędzia Simple Scraper oraz
wiedzę na temat Integromatu oraz Airtable do tego, aby dosłownie w ciągu kilku chwil
pobrać informacje na temat naszych artykułów.
Pierwszym krokiem będzie uruchomienie rozszerzenia Simple Scraper, a następnie
wybranie właściwości, które nas interesują.
Z pewnością będzie to tytuł artykułu,
następnie wstęp do niego i on dostępny jest tutaj.
No i na samym końcu będzie nas interesował sam link do artykułu.
Tutaj jak widzisz bardzo istotne jest to,
aby zaznaczać odpowiednie fragmenty i od razu też na podstawie podświetlenia
określać, czy rzeczywiście wszystkie elementy zostały zaznaczone.
W momencie gdy tak się stanie wybieram
view results do tego, aby zobaczyć co nam się tutaj pobrało.
Rzeczywiście wszystkie dane są tutaj
dostępne, więc w jakiś sposób muszę je teraz przekazać do integromatu?
Aby to zrobić wykorzystam webhooki oraz
fakt, że mam tutaj wygenerowany obiekt JSON.
Wystarczy, że po prostu skopiuję.
Następnie utworzymy nowy scenariusz
zaczynający się od webhooka i ten webhook wykorzystamy do tego, aby przejąć dane
pochodzące z Simple Scrapera i dodać je do Airtable.
No to teraz skopiuję ten adres i przechodzę do Insomni,
z poziomu której wykonamy sobie zapytanie.
Tutaj będzie mi potrzebny jeszcze sam
obiekt JSON pochodzący bezpośrednio z Simple Scrapera.
Nasze zapytanie jest gotowe, więc jeszcze aktywuje nasz scenariusz.
No i teraz nic nie stoi na przeszkodzie, aby wykonać zapytanie.
Dane zostały tutaj dostarczone, a ja mogę
połączyć się z Airtable, aby utworzyć tutaj kolejne rekordy.
Na tym etapie wystarczy po prostu
przypisać odpowiednie właściwości do odpowiednich kolumn.
I tak naprawdę na ten moment widzę, że zabrakło mi pola URL.
Pole zostało dodane i aby uzyskać o nim
informacje w integromacie, muszę po prostu raz jeszcze wczytać ten moduł.
URL jest już dla nas dostępny, więc wystarczy, że powiąże to pole oraz
na tym etapie mogę po prostu zapisać ten
scenariusz, a następnie uruchomić Webhook.
No i w tym momencie jestem gotowy do tego, aby raz jeszcze wykonać to zapytanie i
jeżeli za chwilę wrócimy do Airtable powinny pojawiać się tutaj artykuły.
Rzeczywiście tak dokładnie się dzieje i w zasadzie jedyne co mnie teraz interesuje
to uzupełnienie tych dwóch dodatkowych kolumn.
Problem jednak polega na tym, że z poziomu listy artykułów nie są one dostępne.
Są one za to dostępne dopiero po przejściu na konkretny artykuł.
Ale dobra wiadomość jest taka, że
struktura tej strony jest dokładnie taka sama dla każdego artykułu.
No to skoro sama struktura jest taka sama, to wystarczy ponownie uruchomić Simple
Scraper i tylko wybrać tutaj okładkę, oraz samą treść.
Problem jednak polega na tym, że jeżeli zaznaczę treść tego artykułu, to tutaj na
dole zostanie zaznaczona również sekcja pozostałe artykuły.
Wynika to prawdopodobnie z budowy tej
strony, ale ostatecznie nie mam z tym problemu, ponieważ mogę wybrać tutaj opcję
Only this do tego, aby zaznaczyć tylko tą pierwszą sekcję.
Zatem zapisuję zmiany i sprawdzam teraz wyniki.
Wygląda na to, że rzeczywiście otrzymaliśmy tutaj zawartość oraz okładkę.
Natomiast, natomiast szczerze mówiąc mam z tym mały problem.
Mianowicie po pierwsze mam tutaj
informację tylko o jednym artykule, a dodatkowo nawet gdybym miał tu informacje
na temat wszystkich artykułów, no to w jaki sposób powiąże konkretne
zawartości okładki z odpowiadającymi im artykułami?
Okazuje się, że w tym celu możemy po prostu skopiować adresy URL wszystkich
artykułów, a następnie na podstawie tego przepisu teraz zapiszę
po prostu wykorzystamy Simplescraper do tego, aby przeszedł przez wszystkie te adresy.
Zatem zapisuję tutaj teraz ustawienia i ta
konfiguracja zapisała się teraz tutaj po lewej stronie.
W tym momencie wystarczy, że przejdę do
zakładki Crawl, a następnie wkleję wszystkie adresy do naszych artykułów.
Teraz wystarczy tylko uruchomić tą
automatyzację, no i po chwili powinniśmy mieć wyniki.
Wygląda na to, że automatyzacja została
wykonana i w zakładce Results mamy wszystkie informacje, a nawet kilka
dodatkowych, które dotyczą naszych artykułów.
Zatem tutaj ponownie skopiujemy sobie całą
zawartość pliku JSON i przekażemy go do Insomni.
Jeżeli teraz wrócimy sobie do naszej automatyzacji i na razie ją wyłączymy, a
następnie uruchomimy tylko ten pierwszy moduł, no to po wykonaniu zapytania możemy
podejrzeć czy rzeczywiście wszystko poszło tutaj ok.
Wygląda na to, że mamy informacje na temat naszego pierwszego artykułu i znajduje się
tutaj zarówno jego zawartość, jak i link do okładki oraz link do samego artykułu.
Także nasza automatyzacja w tym momencie będzie wyglądała nieco inaczej.
Mianowicie będziemy musieli w pierwszej kolejności odnaleźć rekord na podstawie
adresu URL, a dopiero potem go zaktualizować.
Także wybieram odpowiednią bazę oraz
tabelę i ustawiam formułę w następujący sposób.
Wybieram kolumnę URL, ponieważ dokładnie
tutaj przechowywany jest adres do artykułu i upewniam się, że jej wartość ustawiona
jest na wartość adresu URL przekazanego razem z Webhookiem.
Następnie interesuje mnie tutaj wzmocnienie tylko jednego wyniku
i w następnym kroku chcę zaktualizować rekord, który został odnaleziony.
Ponownie łączę się z odpowiednią bazą oraz tabelą no i to co nas tutaj interesuje to
przekazanie identyfikatora oraz zawartości tekstowej, no i samego obrazka.
Wygląda na to, że tak przygotowana automatyzacja zadziała nam poprawnie, więc
ponownie ją zapisuję oraz aktywuje i raz jeszcze wykonuje zapytanie.
Zapytanie zostało wysłane i mogę teraz
wrócić do Airtable i zobaczyć co tutaj tutaj dokładnie się dzieje.
Wygląda na to, że wszystkie informacje zostały zapisane tutaj poprawnie.
Natomiast jedna rzecz mnie tutaj niepokoi.
Mianowicie w przypadku artykułu 10
sposobów na zoptymalizowanie procesu zakupowego mam tutaj rozpoczętą treść od
liczby i szczerze mówiąc jest to dość nienaturalne.
Natomiast jeżeli przejdziemy sobie do tego
artykułu, to zobaczymy, że rzeczywiście mamy tutaj po prostu listę dziesięciu
aktywności, które możemy podjąć w celu optymalizacji procesu zakupowego.
Zatem wygląda na to, że wszystko się tutaj zgadza.
Oczywiście ten konkretny przykład teoretycznie można byłoby wykonać ręcznie
i prawdopodobnie zajęłoby to porównywalną ilość czasu.
Natomiast jednocześnie trzeba przyznać, że w momencie, gdyby tych artykułów było
odpowiednio więcej, no to problem nie byłby już taki oczywisty do rozwiązania.
Z tego powodu, jak widzisz, wykorzystanie
automatyzacji oraz wszystkich poznanych technik oraz narzędzi pozwolił nam na
zorganizowanie nawet jednorazowych automatyzacji w taki sposób,
aby dane pobrały się dla nas praktycznie automatycznie.
Oczywiście tutaj chciałbym zwrócić jeszcze uwagę na pewną rzecz.
Mianowicie treść tych artykułów została tutaj zinterpretowana jako zwykły tekst.
Straciliśmy tutaj możliwość formatowania, pogrubienia oraz linkowania.
No i właśnie w takich sytuacjach musimy albo iść na kompromis, albo poszukać bardziej
zaawansowanych narzędzi, które pozwolą nam pobrać kod HTML ze strony.
Dla przykładu pokażę Ci teraz taki ogólny flow, które można tutaj wykorzystać.
Mianowicie chodzi o wykorzystanie modułu HTTP Make a request do tego, aby wykonać
zapytanie typu GET na adres artykułu i w wyniku takiego działania otrzymamy całą
zawartość tekstową, a konkretnie kod HTML tej strony.
Rzeczywiście taki kod się tutaj znajduje i
gdzieś wewnątrz tych znaczników znajduje się zawartość naszego artykułu.
Aby ją wyciągnąć z poziomu integromatu,
możemy wykorzystać wyrażenie regularne, które pobierze nam wszystkie znaki
znajdujące się wewnątrz określonego elementu HTML.
Ten konkretny element HTML pobrałem w taki sposób, że przechodząc do strony, kliknąłem
po prostu prawym przyciskiem myszy i wybrałem inspect lub też zbadaj element.
Dzięki temu zostały uruchomione narzędzia developerskie Google.
Wewnątrz tutaj mogę wybrać konkretnie interesujący mnie fragment.
Tutaj rzeczywiście widzę, że chodzi o div o klasie Long Content Center,
także dokładnie tą informację przekazałem w tym miejscu.
Dodatkowo zaznaczyłem tutaj właśnie z pomocą wyrażeń regularnych, że interesuje
mnie pobranie dowolnego znaku znajdującego się pomiędzy początkiem i
końcem znacznika div zawierającego wspomnianą klasę.
No i teraz skoro mam tutaj już zawartość HTML, muszę ją przetransformować do
składni markdown, która jest interpretowana przez Airtable.
W tym przypadku oczywiście mógłbym
wykorzystać tutaj dynamiczną zawartość wygenerowaną przez poprzedni moduł.
I tak w zasadzie zrobimy.
A następnie rezultat, który zostanie
zwrócony tutaj mogę przekazać bezpośrednio do Airtable.
Jeżeli teraz wykonamy sobie ten scenariusz, to
zostaną pobrane informacje na temat naszego jednego, konkretnego artykułu.
I tutaj już widzimy, że rzeczywiście
pojawiła się tutaj odpowiednia składnia i zachowaliśmy pełne formatowanie.
Oczywiście pamiętaj proszę o tym, że to co pokazałem już na samym końcu jest dość
zaawansowanym przykładem wykorzystania automatyzacji, która jednocześnie wymaga
trochę wiedzy programistycznej oraz też trochę kombinowania związanego chociażby
z wyrażeniami regularnymi czy obsługą znaków specjalnych.
Tak czy inaczej na ten moment nasze zadanie zostało spełnione i
wykorzystaliśmy automatyzację do tego, aby przygotować automatyzację
i tym samym sprawić, że wszystkie dane na temat naszych artykułów z bloga eastcart
mogą już zostać wykorzystane w automatyzacji np.
newslettera czy chociażby w procesie Content reuse.
W tym momencie dziękuję Ci za uwagę i zapraszam Cię do kolejnych materiałów.