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 przeprowadzę Cię przez proces
projektowania własnego modułu w Integromacie czy też własnej aplikacji, która będzie
wykorzystywać przygotowane przez nas scenariusze.
Tak jak powiedziałem, tego typu
wykorzystanie własnych modułów w Integromacie pozwoli Ci na lepsze organizowanie
automatyzacji poprzez wykorzystanie takich pojedynczych scenariuszy, które będą
odpowiedzialne za realizowanie konkretnych akcji.
Czyli zamiast na przestrzeni scenariuszy
powtarzać wykonanie zestawu akcji, które mamy tutaj zdefiniowane.
Będziemy mogli odwołać się do modułu i przekazać do niego odpowiednie parametry.
W rezultacie otrzymamy z niego odpowiedź,
która będzie tak naprawdę odpowiedzią zwróconą przez ten scenariusz.
Zatem w przypadku takich scenariuszy
musimy tak naprawdę zadbać wyłącznie o to, aby rozpoczynały się od webhook'a i
tym samym mogły przyjmować określone przez nas dane.
A następnie taki scenariusz musi kończyć
się webhook'iem, a konkretnie odpowiedzią, która zostanie wysłana w formacie JSON.
Coś takiego robiliśmy już wielokrotnie,
więc jak zapewne pamiętasz, musimy tutaj ustawić odpowiednie nagłówki
sygnalizujące, że będziemy odpowiadać tutaj obiektem JSON, a następnie
musimy przekazać sam obiekt JSON, który w tym przypadku będzie zawierał
adres URL do screenshot'a wygenerowanego przez EasyBanner.
Jeżeli teraz uruchomię sobie ten moduł, za chwilę uzyskam dostęp do tej właściwości i
rzeczywiście będę mógł ją przekazać do naszego obiektu.
Jeżeli teraz skopiuję sobie adres naszego webhook'a, a następnie uruchomię
scenariusz i wywołam go z poziomu Isomni, no to jak się pewnie domyślasz nasz scenariusz
wykona się, a my w odpowiedzi otrzymamy link kierujący nas do obrazka
zawierającego zrzut ekranu strony zautomatyzowani.
Oczywiście nam będzie zależało na tym, aby móc na ten webhook przekazać dodatkowy obiekt JSON,
który będzie zawierał adres strony, której screenshot chcemy wykonać.
Zatem jeżeli raz jeszcze wykonam ten webhook,
a następnie wrócę do naszego scenariusza, no to jak się pewnie domyślasz
otrzymamy tutaj adres URL, który będziemy mogli przekazać do EasyBanner.
A w rezultacie otrzymamy tutaj zrzut ekranu tej konkretnej strony.
Także doszliśmy tutaj do miejsca, w którym nasz scenariusz przyjmuje dynamiczne dane,
robi coś z nimi, a następnie odsyła nam rezultat.
I dokładnie w ten sam sposób musi zachowywać się każdy scenariusz, który
projektujesz na potrzeby wykorzystania we własnej aplikacji Integromat'u.
Teraz będziemy mogli zaprojektować tą
aplikację i zrobić to w taki sposób, aby wymagała od nas podania adresu URL oraz w
odpowiedzi zwracała adres do zrzutu ekranu.
No to, aby stworzyć aplikację pamiętaj o
przejściu do zakładki My Apps, a następnie wybraniu opcji Create a new App.
Tutaj musimy podać jej nazwę i załóżmy, że będzie to Screenshot Artist.
Jeżeli chodzi o jej etykietę, będziemy
mogli tutaj dodać spację i jeżeli chodzi o opis zostawimy go pusty.
Następnie możemy tutaj podać kolor, który
będzie wykorzystywany m.in. na liście modułów, a następnie możemy ustawić
język oraz kraje, w których ta aplikacja miałaby być dostępna.
W naszym przypadku jednak nie ma to
żadnego znaczenia, ponieważ aplikacja będzie przeznaczona tylko dla nas.
Dalszym krokiem będzie wgranie tutaj
logotypów i logotyp możemy sobie przygotować np.
w Figmie ustawiając rozmiar obrazka na 512/512
a następnie możemy tutaj podać screenshot Artist.
W tym momencie możemy wyeksportować ten plik i wgrać go do Integromat'u.
Tutaj tylko dodam, że możesz przygotować dwie wersje logotypu i ta pierwsza różni
się od drugiej tym, że w jej przypadku jakiekolwiek kolory, które się na niej
znajdują zostaną zamienione na kolor biały.
Natomiast poniżej możemy umieścić kolorowe logo, w przypadku którego takich
ograniczeń już nie ma. W naszym przypadku w związku z tym, że eksportowałem grafikę,
która nie posiada tła, nawet po przekonwertowaniu kolorów, wszystko będzie w porządku.
Tutaj jeszcze przy próbie zapisania tego
modułu zauważyłem, że tak naprawdę musimy tutaj wykorzystać małe litery.
Po poprawieniu tej nazwy możemy zapisać
nasz moduł i już po chwili będzie dostępny tutaj na naszej liście. Tutaj
jeżeli chodzi o podstawowe ustawienia
naszego modułu to będzie adres naszego webhook'a.
Następnie nasze zadanie będzie polegało na tym, aby utworzyć nowy moduł, który w tym
przypadku będzie akcją typu create, ponieważ tak naprawdę tutaj tworzymy coś
nowego i w tym przypadku jest to zrzut ekranu.
Następnie musimy podać etykietę oraz opis
i na tym etapie nasz moduł jest utworzony.
I mało tego, jeżeli teraz przejdziemy do
tworzenia nowego scenariusza, to na liście modułów jest on już tutaj dostępny, a
wewnątrz jego oczywiście dostępna jest nasza akcja.
No i tutaj widzimy, że ta akcja wymaga od
nas podania jakiś parametrów, natomiast tak naprawdę ich nie potrzebujemy, a one
same pojawiły się tutaj dlatego, że domyślnie Inegromat dodaje takie dwa pola.
Nam jednak one nie będą potrzebne, ponieważ tak naprawdę będzie nas
interesował parametr URL, który chcemy przekazać na nasz webhook.
I tutaj po wprowadzeniu zmian pamiętaj proszę, aby wcisnąć tą dyskietkę, aby
zapisać zmiany i w momencie gdy wszystko się tutaj zgadza zmiany zostaną zatwierdzone.
Jeżeli teraz odświeżamy sobie nasz scenariusz,
to zobaczymy, że wewnątrz naszej akcji zniknęły te dwa pola, które mieliśmy
wcześniej i faktycznie pojawił się tutaj adres URL.
Jeżeli teraz uzupełnimy to pole, a następnie spróbujemy wykonać
ten moduł, to oczywiście otrzymamy błąd
informujący nas o tym, że podana strona nie istnieje.
Wynika to z faktu, że oczywiście w tym miejscu mamy tutaj błędny adres URL.
W naszym przypadku umieszczamy tutaj slash.
Ze względu na to, że w podstawowych
ustawieniach tego modułu podaliśmy tutaj adres naszego webhook'a.
Jeżeli teraz zadbamy tylko o to, aby jako
payload naszego zapytania przekazać parametr URL i możemy się do niego odwołać
jak widzisz wykorzystując obiekt zawierający informacje o parametrach, informacja na
temat adresu e-mail nie jest nam już tutaj potrzebna.
I oczywiście jeszcze tutaj upewniamy się, że mamy zapytanie typu POST.
Jeżeli teraz zapiszę zmiany, a następnie
odświeżę nasz scenariusz, to tym razem jego wykonanie powinno się powieść.
Tak się jednak nie stało ze względu na to,
że nasz poprzedni scenariusz zwrócił wartość tekstową zamiast obiektu.
To jest oczywiście prawdą ze względu na to, że w ogóle go nie aktywowaliśmy.
Jeżeli to teraz zrobię, a następnie wrócę do mojego scenariusza i ponownie wykonam
ten moduł, to tym razem już wszystko pójdzie w porządku.
Okazuje się, że już po chwili rzeczywiście otrzymaliśmy tutaj odpowiedź w postaci
adresu URL zawierający zrzuty ekranu strony zautomatyzowani.pl.
Oznacza to mniej więcej tyle, że jesteśmy
w stanie już wykorzystywać ten moduł, kiedy tylko potrzebujemy.
Oczywiście też nic nie stoi na
przeszkodzie, aby dodać do niego kolejne parametry w postaci np.
wartości liczbowej zawierającej informacje
na temat szerokości wykonanego zrzutu ekranu oraz jego wysokości.
Dodatkowo chcemy ułatwić sobie tutaj
pracę, więc ustawiamy szerokość na 1920 oraz domyślną wysokość na 1080.
I teraz po zapisaniu zmian i swoją drogą
nie musiałem wciskać dyskietki tylko wybrałem skrót klawiszowy Command S.
Do tego aby zapisać zmiany, to tak naprawdę
nasze nowe parametry będą już widoczne w naszym module.
Różnica jednak będzie polegała na tym, że jeżeli uruchomimy sobie rozszerzenie Inegromat'u
to zobaczymy, że w momencie wykonywania tego modułu tak naprawdę przekazujemy
tutaj wyłącznie informacje na temat adresu URL.
Dzieje się tak dlatego, że nie zdefiniowaliśmy w zakładce komunikacji
dodatkowych parametrów dotyczących szerokości oraz oczywiście wysokości.
I teraz po aktualizacji naszego modułu
możemy wykonać go raz jeszcze i tym razem zobaczymy, że faktycznie nasz
payload zawiera nie tylko adres URL, ale
również przekazane wartości dotyczące wysokości oraz szerokości zrzutu ekranu.
No i teraz tak naprawdę nasz moduł jest tutaj już w pełni gotowy.
Natomiast teraz warto zadać sobie pytanie
co się stanie w sytuacji, gdy podamy tutaj błędny adres URL.
W takiej sytuacji EasyBanner zwraca błąd
informujący nas o tym, że podany adres URL nie jest poprawny.
Jednak w tej sytuacji otrzymaliśmy tutaj po prostu błąd 500 i żadnej dodatkowej
informacji na temat tego, z jakim błędem mamy do czynienia.
Problem, jaki tutaj mamy leży w
scenariuszu, który wykorzystywany jest przez nasz moduł.
Mianowicie musimy tutaj dodać error handler
którego zadaniem będzie zwrócenie odpowiedniego statusu odpowiedzi.
Mianowicie tutaj ponownie wykorzystujemy opcję webhook response.
Z tą różnicą, że tutaj będziemy definiować
jakiego rodzaju błąd zostanie zwrócony do naszego modułu.
Teraz tylko testowo uruchomię nasz scenariusz, a następnie wykonam nasz
moduł, aby uruchomić ten błąd i zobaczymy, że faktycznie mamy tutaj do czynienia z
błędem, który zawiera tutaj konkretną informację.
Jeżeli teraz przekażemy sobie odpowiedni kod statusu i w tym przypadku będzie to
status bad request, czyli błędne zapytania, będziemy w stanie dodatkowo
zwrócić tutaj obiekt JSON zawierający właściwość error, którego
wartość zostanie ustawiona na wiadomość zawierającą informację o błędzie.
No i tutaj jeszcze musimy oczywiście ustawić odpowiedni nagłówek content type
wskazujący na to, że wysyłamy obiekt JSON.
I teraz, po zapisaniu tych zmian oraz zapisaniu scenariusza oraz wykonaniu raz
jeszcze naszego modułu otrzymamy tutaj informacja o błędzie 400.
Natomiast nie posiadamy tutaj żadnej szczegółowe informacje na temat błędu.
Wynika to z faktu, że do głównych ustawień
naszego modułu możemy w zakładce Base dodać strukturę obiektu odpowiedzi.
W naszym przypadku ta odpowiedź będzie zawierała dwie właściwości.
Pierwszą z nich będzie output
ustawiona na zmienną body, zamkniętą oczywiście w cudzysłowie, a następnie
będziemy mieć tutaj właściwość error, która będzie ustawiona na obiekt
zawierający właściwość message ustawioną na body.error.
Ustawiając to w ten sposób, jeżeli teraz
wykonamy ponownie nasz moduł, przy czym pamiętamy o odświeżeniu naszego
scenariusza, to okaże się, że otrzymaliśmy jasną informację na temat tego, jaki błąd
tutaj wystąpił i w tym przypadku jest to niewłaściwy adres URL.
oczywiście przypominam o tym, że tutaj również możemy dodać error handler i w
jakiś sposób zareagować na to, co ma się wydarzyć z naszym scenariuszem.
Na koniec dnia jednak doszliśmy do
sytuacji, w której nasz moduł działa i posiadamy tutaj odpowiednie właściwości,
które możemy wykorzystać i jednocześnie zyskaliśmy ogromną elastyczność w
kontekście organizacji naszych scenariuszy.
Przypominam, że jeżeli jesteś programistą
lub przynajmniej dobrze orientujesz się w temacie pracy z API.
To nic nie stoi na przeszkodzie, aby tworzyć
właśnie takie moduły w Integromacie, które opierają się o istniejące API.
Oczywiście w tym wszystkim, bez względu na
to, czy programujesz czy też nie, zachęcam Cię do tego, aby zapoznać się z
dokumentacją Integromat'u dotyczącą tworzenia własnych aplikacji.
Przykładowo to co może Cię zainteresować to możliwość dodawania listy parametrów.
Tak jak widzisz, możemy tutaj skonfigurować nasz moduł tak, żeby zamiast
pytać nas o konkretne wartości umożliwiał nam wybieranie ich z listy.
Wystarczy tutaj ustawić właściwość type na select, a następnie podać właściwość
option wskazującą na albo tablicę, albo tak zwany parametr RPC.
Jeżeli chodzi o RPC to również mamy tutaj
informację pochodzącą z dokumentacji o tym, w jaki sposób możemy je tworzyć.
Konkretnie wystarczy, że przejdziemy do głównych ustawień naszej aplikacji, a
następnie w zakładce zdalnych procedur utworzymy nową.
Której wystarczy nadać nazwę etykiety oraz ewentualnie połączenie, natomiast tutaj
musimy podać adres URL, z którego będziemy pobierać dane oraz upewnić się, że
struktura odpowiedzi jest dokładnie taka jak zwracamy z naszego modułu, czyli w tym
przypadku nasz obiekt odpowiedzi musi zawierać właściwość users, natomiast
pojedynczy obiekt użytkownika powinien zawierać właściwość name oraz id.
Ale oczywiście to wszystko możemy dostosować do naszych potrzeb.
Ostatecznie sam wykorzystałem takie zdalne procedury do tego, aby pobierać informacje
na temat użytkowników bezpośrednio z mojej aplikacji.
No i teraz, aby skorzystać z takiej
procedury wystarczy wykorzystać jej nazwę i zapisać ją w następujący sposób.
Tutaj tylko chciałbym podkreślić, że wykorzystanie takich procedur jest
raczej tematem zaawansowanym, ale tylko sygnalizuję Ci ich obecność.
Najczęściej przy konfiguracji własnych modułów będziesz przechodzić przez
konfigurację, którą pokazałem Ci do tej pory.
W tym momencie więc chyba nie pozostaje mi nic innego jak zachęcić Cię do tego, aby
skonfigurować własny moduł w Integromacie oraz zaprosić do pozostałych materiałów.