Twórz Własne Automatyzacje
3 godz. 14 min · Make · Biznes i Automatyzacje
Adam GospodarczykKorzystając z różnych narzędzi, na przykład do obsługi mailingu, masz do dyspozycji na ogół kilka wbudowanych integracji - przykładowo połączenie z kalendarzem czy bramką płatności. Wyobraź sobie, że takie narzędzie możesz połączyć praktycznie z dowolnym innym, nawet jeśli nie ma go na liście. To właśnie potencjał Make, które umożliwi takie automatyzacje.
Jeśli znasz Zapier, Make to podobna koncepcja, ale daje dużo bardziej zaawansowane możliwości, jest dużo tańsza (lub darmowa) a dodatkowo, ma naszym zdaniem bardziej przyjazny i czytelny interfejs zwłaszcza przy tworzeniu rozgałęzionych scenariuszy. Tworzenie automatyzacji z Make to czysta przyjemność i zdrowa porcja dopaminy!
Co najważniejsze, Make umożliwia tworzenie automatyzacji bez użycia ani jednej linii kodu! To jak programowanie 2.0, gdzie rezultaty widzisz i testujesz w prostym, wizualnym edytorze. To najłatwiejszy sposób aby zacząć przygodę z programowaniem i nowoczesnym podejściem do technologii no-code i low-code.
Mimo, że Make jest natywnym środowiskiem no-code, osoby, które nieco lepiej rozumieją zasady działania protokołu HTTP i API i mają podstawy programowania w JS, otrzymują zupełnie nowe możliwości tworzenia oprogramowania, w sposób wizualny i prostszy niż kiedykolwiek. Jeśli osoby początkujące z Make stają się programistami, programiści stają się superbohaterami!
Wyjątkowe w Make jest podejście do tworzenia automatyzacji wizualnie, gdzie bardzo czytelne jest całe flow scenariusza i to, jak przepływają w nim dane. Zaawansowane możliwości jak stosowanie filtrów czy funkcji sprawia, że w tak prostym interfejsie w zasadzie nie ma zadań niemożliwych!
Z dowolnego narzędzia możesz wysłać dane w postaci Webhooka do Make, które zostaną natychmiastowo odebrane. Następnie możesz łatwo przekazać je w dowolne miejsce i do dowolnego narzędzia - na przykład Airtable, z którego często korzystamy aby gromadzić dane, HubSpot'a, Asany czy wysłać powiadomienie SMS, e-mail, Slack. Całość zajmie Ci kilka minut.
Ten kurs jest przeznaczony dla każdej osoby, która chce pracować wydajniej i zatrudnić roboty (automatyzacje), które wykonają za nią powtarzalne zadania. Dzięki temu, zwiększysz efektywność swojej pracy oraz zostaniesz bohaterem automatyzacji w swojej firmie. Osoby, które przerobiły kurs HTTP i API, a także programiści, mogą wycisnąć z tego kursu jeszcze więcej, na dobre zmieniając swoje podejście do automatyzacji. Polecamy wcześniejsze przerobienie przynajmniej kursu HTTP i API, aby lepiej zrozumieć omawiane zagadnienia.
Cześć! W tej lekcji dowiesz się wszystkiego, co
musisz wiedzieć na temat modułu Tools i dostępnych w nim akcji.
Omówimy sobie tutaj najważniejsze z nich oraz pokażę Ci kilka przykładów zastosowania.
Wyjątkiem będzie tutaj tylko transformer dotyczący enkodowania tekstu.
Ze względu na to, że enkodowanie jest tematem zaawansowanym, który znacznie
wykracza poza zakres tej lekcji czy nawet całego programu.
Zatem zacznijmy od pierwszej akcji o nazwie Basic trigger.
Według opisu możemy z jego pomocą
generować bundle danych o własnej, ustalonej strukturze.
Taki moduł może posłużyć nam w przypadku bardzo specyficznych automatyzacji do
tego, aby rozpocząć je określonymi przez nas danymi.
Czyli przykładowo mogę tutaj zapisać swoje
imię, a następnie dodać drugi element zawierający imię Grzegorza.
I teraz jeżeli zapiszę dane, a następnie
wykonam ten scenariusz, to zwróć uwagę, że zostały tutaj zwrócone dwa pakiety danych
zawierające obiekty przechowujące informacje o naszych imionach.
Taki moduł, tak jak powiedziałem, przyda Ci się w sytuacji, w której automatyzacja
musi rozpocząć się od twardo zdefiniowanych przez Ciebie danych.
Kolejnym modułem, który może Ci się przydać jest moduł inkrementujący wartości.
Inkrementacja to po prostu proces zwiększania wartości.
No i tutaj w ramach ustawień możesz
zdefiniować tylko kiedy taka wartość ma zostać zresetowana.
Możesz tutaj ustawić, że taka wartość nigdy nie będzie zresetowana i będzie
zwiększana o 1 tak długo, aż nie usuniesz tego modułu i np.
dodasz ponownie.
Następnie mamy opcję resetowania jej za każdym razem, gdy wykonuje się scenariusz.
Czyli inaczej mówiąc jeżeli go sobie teraz uruchomimy, a następnie zakończy się jego
działanie, no to funkcja inkrementująca zostanie w tym momencie zresetowana i mogę
z resztą Ci to nawet udowodnić poprzez fakt, że jeżeli teraz wyślemy
zapytanie to będziemy mieć tutaj jedynkę i w momencie gdy uruchomimy ten scenariusz
ponownie również będziemy mieć tutaj jedynkę.
Zatem mamy potwierdzenie, że wartość została tutaj zresetowane, ale jednocześnie do
dyspozycji mamy jeszcze jedną opcję resetowania tej wartości po każdym cyklu.
Pytanie teraz czym jest cykl?
Okazuje się, że jego definicja nie jest
wcale taka oczywista i można się tutaj łatwo pomylić.
Mianowicie chodzi tutaj o sytuację, w której mamy np.
moduł taki jak Airtable Watch Records, którego
zadaniem jest obserwowanie rekordów z określonej przez nas bazy.
I tutaj w ramach tego modułu możemy zdefiniować limit przetwarzanych danych.
Jeżeli np.
ustawimy go na 5, a następnie włączymy nasłuchiwanie tego scenariusza i np.
uruchamianie co minutę, to jeżeli w ciągu tej minuty pojawi się
tutaj 5 nowych rekordów, to scenariusz zostanie wykonany raz,
ale zostanie zrealizowanych 5 cykli po jednym dla każdego odnalezionego rekordu.
Także jeżeli chodzi o cykle, to miej na uwadze fakt, że jest to termin powiązany
bezpośrednio z przetwarzaniem danych co określony czas.
Zwykle ilość tych danych określamy w ramach limitu dostępnego np.
w Airtable, Google Sheets czy np.
modułach do przeszukiwania maili.
Zatem jeżeli z jakiegoś powodu przyjdzie Ci inkrementować wartości, to pamiętaj, że
ten moduł rozpoczyna liczenie od jednego i możesz go zresetować np.
po każdym cyklu.
Tutaj nie jestem pewien tylko czy przed chwilą się nie pomyliłem.
Oczywiście sytuacja resetująca go za każdym uruchomieniem scenariusza.
Sprawi, że w momencie gdy będziemy mieć
tutaj 5 rekordów, to rzeczywiście jego wartość zostanie zwiększona.
Jeżeli jednak będziemy resetować go po każdym cyklu, no to oczywiście za każdym
przetworzeniem kolejnego rekordu będzie tutaj dochodziło do zresetowania.
W temacie tej akcji to byłoby na tyle.
I następna w kolejce jest akcja Sleep.
Jak sama nazwa wskazuje, pozwala ona uśpić
scenariusz na określony czas i to przydaje się w sytuacjach, gdy np.
wykonujemy jakąś akcję asynchroniczną, czyli oczekujemy na wykonanie czegoś i
chcemy wstrzymać działanie naszego scenariusza na określony czas.
Oczywiście nie jest to najlepsza strategia
na to, aby radzić sobie z zapytaniami asynchronicznymi, natomiast nie zmienia to
faktu, że w wielu przypadkach funkcja sleep jak najbardziej się tutaj sprawdzi.
Jeżeli chodzi o jej konfigurację, to w zasadzie nie mam nic do powiedzenia, no
może poza faktem, że musisz pamiętać, że jeżeli np. korzystasz z modułu
router, no to jeżeli uruchomisz funkcję sleep w tym miejscu
to scenariusz faktycznie zostanie zatrzymany i nie będzie sytuacji, w której
wykona się kolejna ścieżka bez zakończenia tej poprzedniej.
Idąc dalej poza akcją sleep mamy 4 akcje
umożliwiające nam pobieranie oraz ustawianie zmiennych.
Coś takiego może nam się przydać w wielu
różnych sytuacjach, natomiast pokażę Ci jedną z ważniejszych, która pozwoli Ci
zyskać niesamowitą kontrolę nad scenariuszami.
Jeżeli chodzi o jej konfigurację, jest ona niesamowicie prosta, ponieważ wystarczy
podać nazwę zmiennej, która jak widzisz może być dynamiczna.
Następnie musimy ustawić czas życia takiej zmiennej i w większości przypadkach będzie
nam chodziło o jeden cykl no i ostatecznie ustawiamy jej wartość.
Jak się pewnie domyślasz, jeżeli wykonamy sobie teraz nasz scenariusz, zostanie ustawiona
zmienna o nazwie name zawierająca wartość Adam.
No i rzeczywiście tak się stało i w
efekcie możemy teraz wykorzystywać tą zmienną w kolejnych modułach.
I tak jak widzisz mam tutaj moduł Airtable i nic nie stoi na przeszkodzie, aby
wykorzystać tutaj zmienną, którą utworzyłem przed chwilą.
Tworzenie takiej zmiennej może przydać Ci się np.
w sytuacji, gdy będzie potrzeba zastosowania jakiejś funkcji np.
wygenerowanie losowego ciągu znaków, który
później będzie wykorzystywany w wielu różnych miejscach, bądź np.
ustalenie jakiejś spójnej daty.
To oczywiście daje ogromną kontrolę nad
scenariuszem, ale powiedziałem, że ta akcja pozwoli Ci na jeszcze większą.
Mianowicie w sytuacji, gdy będziesz wykorzystywać moduł router
to tak jak już wiemy poszczególne ścieżki będą wykonywać się niezależnie i mało
tego, jeżeli przykładowo pobralibyśmy tutaj rekord Airtable,
to można byłoby się spodziewać, że jeżeli ten moduł zostanie wykonany w tej ścieżce,
to będziemy mieć dostęp do niego również w pozostałych ścieżkach.
Problem jednak polega na tym, że tak nie jest.
Tzn. Że w sytuacji gdybym chciała np.
wykorzystać tytuł odcinka pobranego w tym module, musiałbym skopiować ten moduł i
pobrać informacje na temat wpisu raz jeszcze.
Alternatywnie w takiej sytuacji dobrą
praktyką byłoby pobranie informacji na temat wpisu przed naszym routerem.
Wtedy niezależnie od tego ile byśmy mieli
tutaj scenariuszy, informacja z tego modułu byłaby dostępna w każdym z nich.
Natomiast czasem może zdarzyć się tak, że
rzeczywiście umieszczenie tego modułu wcześniej nie będzie możliwe, a
jednocześnie będziemy chcieli wykorzystać informacje pochodzące np.
stąd w pozostałych ścieżkach.
I właśnie w tym miejscu do gry wchodzi akcja umożliwiająca nam zapisanie
zmiennej, którą potem możemy pobrać modułem Get variable.
I teraz, aby pobrać taką zmienną, musimy
oczywiście odwołać się do jej identyfikatora.
W naszym przypadku będzie to identyfikator name.
No to teraz możemy wykonać nasz scenariusz
i zobaczyć jaka informacja pojawi się w tym module.
Zwróć uwagę, że rzeczywiście w tym miejscu
została ustalona zmienna o nazwie name, a w tym miejscu mogliśmy ją pobrać i mamy
tutaj dostęp do tytułu naszego filmu czy też zawartości zmiennej.
Gdyby tego było mało, to nic nie stoi na
przeszkodzie, aby wykorzystać tutaj moduł Set multiple variables.
Działa dokładnie na takiej samej zasadzie
jak ten poprzedni, z tą różnicą, że umożliwia nam ustawienie wielu zmiennych i
analogicznie działa też moduł Get multiple variable.
Zatem w temacie ustawiania oraz pobierania zmiennych to byłoby na tyle.
Następnie do dyspozycji mamy agregatory tablic tekstu oraz wartości numerycznych.
Jeżeli chodzi o agregatory, mówiliśmy już sobie o nich w poprzednich lekcjach, więc nie
będę się tutaj zbytnio nad nimi zatrzymywał, ale muszę podkreślić, że
moduł agregacji tekstu jest niesamowicie użyteczny chociażby w sytuacji, gdy
pobieramy wiele informacji z Airtable, które chcemy połączyć np.
kodem HTML, Wybierając tutaj odpowiednie separatory w postaci np.
kolejnego wiersza bądź np.
znacznika łamania linii, jesteśmy w stanie
wygenerować sobie fajną strukturę HTML, którą możemy umieścić np.
bezpośrednio w newsletterze.
Swoją drogą tym również będziemy się jeszcze zajmować. Jeżeli chodzi o nasze narzędzia,
do omówienia zostały nam jeszcze transformatory.
Tutaj tak jak powiedziałem, enkodowania nie będziemy dotykać.
Sam Switch omówiliśmy sobie już w części
podstawowej, ponieważ wtedy był nam potrzebny.
No i ostatecznie mamy jeszcze akcję Compose a string.
Szczerze mówiąc działa ona bardzo podobnie do akcji umożliwiającej ustawienie
wartości zmiennej, ale w tym przypadku nie zadziała już ten trik dotyczący
wykorzystania tej wartości w pozostałych ścieżkach routera.
Zatem i tak w większości przypadków przy
tworzeniu jakiejś wartości lepiej wykorzystać akcję Set variable.
Natomiast faktycznie w sytuacji, gdy
potrzebujesz wygenerować prosty ciąg znaków wykorzystując jakieś funkcje
dostępne tutaj, to akcja compose a string może okazać się przydatna.
Zatem wygląda na to, że doszliśmy do końca tej lekcji i jednocześnie na temat modułu
Tools wiesz już w zasadzie wszystko czego potrzebujesz.
Tak jak powiedziałem, najbardziej
przydatna jest funkcja sleep możliwość ustawienia zmiennych, szczególnie w
przypadku wykorzystania routera oraz akcja text aggregator umożliwiająca np.
generowanie struktur HTML.
No i na samym końcu mamy jeszcze switcha, który przydaje się niesamowicie,
szczególnie w sytuacji, gdy wykorzystamy tutaj jakąś funkcję losującą.
Mianowicie w efekcie jej działania
otrzymujemy losową liczbę zawartą w określonym przez nas zakresie.
W tym miejscu umieszczamy wartość
maksymalną a w tym i w tym wartości minimalne.
Dzięki temu przykładowo jeżeli ustawili byśmy tutaj jedynki.
Natomiast tutaj wpisali dziesiątkę, to za
każdym razem, gdy wykonamy ten moduł otrzymamy losową liczbę całkowitą,
zawartą pomiędzy jedynką a dziesiątką lub też będącą jedynką lub dziesiątką.
Coś takiego może okazać się szczególnie przydatne w sytuacji, gdy np.
tworzymy posty na potrzeby mediów
społecznościowych i potrzebujemy dodać jakiejś losowości.
Przykładowo tutaj możemy przywitać się w ten sposób dla dwójki możemy przywitać się
inaczej i dla kolejnych wartości ustawić kolejne powitania.
Dzięki temu możemy w ten sposób dodać
losowości do naszych treści i tym samym polepszyć odbiór całej automatyzacji.
W tym momencie faktycznie jeżeli chodzi o
moduł Tools i dostępne w nim akcje to już byłoby na tyle.
Dziękuję Ci za uwagę i zapraszam Cię do kolejnej lekcji.